leapSolver Module

Module that defines the basic structure of a LEAP solver. This is intended to be a template for solvers defined in LEAP.



Uses

  • module~~leapsolver~~UsesGraph module~leapsolver leapSolver module~leapio leapIO module~leapsolver->module~leapio module~leapkinds leapKinds module~leapsolver->module~leapkinds module~leapparallel leapParallel module~leapsolver->module~leapparallel module~leapparser leapParser module~leapsolver->module~leapparser module~leaptimer leapTimer module~leapsolver->module~leaptimer module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio_hdf5 leapIO_hdf5 module~leapio->module~leapio_hdf5 module~leapio_silo leapIO_silo module~leapio->module~leapio_silo module~leapio_xdmf leapIO_xdmf module~leapio->module~leapio_xdmf iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leapparallel->module~leapkinds module~leapparallel->iso_fortran_env mpi_f08 mpi_f08 module~leapparallel->mpi_f08 module~leapparser->module~leapkinds module~leapparser->iso_fortran_env module~leapcli leapCli module~leapparser->module~leapcli module~leaptimer->module~leapkinds module~leaptimer->module~leapparallel module~leaptimer->module~leapparser module~leaputils leapUtils module~leaptimer->module~leaputils module~leapcli->module~leapkinds module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel module~leapio_h5hut->module~leapio_hdf5 module~leapio_hdf5->module~leapkinds module~leapio_hdf5->module~leapparallel module~leapio_hdf5->module~leaputils hdf5 hdf5 module~leapio_hdf5->hdf5 module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leapio_silo->mpi_f08 module~leapio_xdmf->module~leapkinds module~leapio_xdmf->module~leaputils module~leaputils->module~leapkinds

Used by

  • module~~leapsolver~~UsedByGraph module~leapsolver leapSolver module~cdifs cdifs module~cdifs->module~leapsolver module~grans grans module~grans->module~leapsolver program~main main program~main->module~leapsolver program~main->module~cdifs program~main->module~grans module~cdifs_advancesolution_smod cdifs_AdvanceSolution_smod module~cdifs_advancesolution_smod->module~cdifs module~cdifs_monitor_smod cdifs_Monitor_smod module~cdifs_monitor_smod->module~cdifs module~cdifs_preparesolver_smod cdifs_PrepareSolver_smod module~cdifs_preparesolver_smod->module~cdifs module~cdifs_writeoutputdata_smod cdifs_WriteOutputData_smod module~cdifs_writeoutputdata_smod->module~cdifs module~cdifs_writerestartdata_smod cdifs_WriteRestartData_smod module~cdifs_writerestartdata_smod->module~cdifs module~grans_advancesolution_smod grans_AdvanceSolution_smod module~grans_advancesolution_smod->module~grans module~grans_module_smod grans_module_smod module~grans_module_smod->module~grans module~grans_preparesolver_smod grans_PrepareSolver_smod module~grans_preparesolver_smod->module~grans module~grans_writeoutputdata_smod grans_WriteOutputData_smod module~grans_writeoutputdata_smod->module~grans module~grans_writerestartdata_smod grans_WriteRestartData_smod module~grans_writerestartdata_smod->module~grans

Abstract Interfaces

abstract interface

  • private impure subroutine solver_Advance(this)

    Advances solution from t to t+dt.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

abstract interface

  • private impure subroutine solver_Finalize(this)

    Finalizes solver and frees its associated memory.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

abstract interface

  • private impure subroutine solver_Initialize(this, timer, parallel, parser)

    Initializes the solver.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

    type(timer_obj), intent(in), target :: timer

    Timer utility

    type(parallel_obj), intent(in), target :: parallel

    Parallel machinery

    type(parser_obj), intent(in), target :: parser

    Parser for input file

abstract interface

  • private impure subroutine solver_LinkHDF5Object(this, hdf5)

    Links an HDF5 object to this solver.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this
    type(hdf5_obj), intent(in), target :: hdf5

    HDF5 Object

abstract interface

  • private impure subroutine solver_Monitor(this)

    Computes and write monitored values.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

abstract interface

  • private impure subroutine solver_Output(this)

    Writes single precision data needed for visualizations.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

abstract interface

  • private impure subroutine solver_Prepare(this)

    Prepares data before run.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver

abstract interface

  • private impure subroutine solver_Restart(this)

    Writes simulation data to disk required for restarts.

    Arguments

    Type IntentOptional Attributes Name
    class(solver_obj), intent(inout) :: this

    A LEAP solver


Derived Types

type, public, abstract ::  solver_obj

Base solver object

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: name

Solver's name.

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

type(parser_obj), public, pointer :: parser => null()

Associated parser

type(timer_obj), public, pointer :: timer => null()

Associated timer

Type-Bound Procedures

procedure(solver_Advance), public, deferred :: AdvanceSolution
procedure(solver_Finalize), public, deferred :: Finalize
procedure(solver_Initialize), public, deferred :: Initialize
procedure(solver_LinkHDF5Object), public, deferred :: LinkHDF5Object
procedure(solver_Monitor), public, deferred :: Monitor
procedure(solver_Prepare), public, deferred :: PrepareSolver
procedure(solver_Output), public, deferred :: WriteOutputData
procedure(solver_Restart), public, deferred :: WriteRestartData