solver_obj Derived Type

type, public, abstract :: solver_obj

Base solver object


Inherits

type~~solver_obj~~InheritsGraph type~solver_obj solver_obj type~parallel_obj parallel_obj type~solver_obj->type~parallel_obj parallel type~parser_obj parser_obj type~solver_obj->type~parser_obj parser type~timer_obj timer_obj type~solver_obj->type~timer_obj timer MPI_Datatype MPI_Datatype type~parallel_obj->MPI_Datatype REAL_SP, REAL_DP, REAL_WP, COMPLEX_SP, COMPLEX_DP, COMPLEX_WP, INTEGER, INT8, LOGICAL MPI_Info MPI_Info type~parallel_obj->MPI_Info mpi_info type~communicators communicators type~parallel_obj->type~communicators comm type~patch patch type~parallel_obj->type~patch rank type~entry_obj entry_obj type~parser_obj->type~entry_obj entries type~timer_obj->type~parser_obj parser MPI_Comm MPI_Comm type~communicators->MPI_Comm w, g

Inherited by

type~~solver_obj~~InheritedByGraph type~solver_obj solver_obj type~cdifs_obj cdifs_obj type~cdifs_obj->type~solver_obj type~grans_obj grans_obj type~grans_obj->type~solver_obj

Components

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

Name of this solver

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

  • subroutine solver_advance(this) Prototype

    Advance solution from t to t+dt

    Arguments

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

    A LEAP solver

procedure(solver_finalize), public, deferred :: Finalize

  • subroutine solver_finalize(this) Prototype

    Finalize solver

    Arguments

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

    A LEAP solver

procedure(solver_initialize), public, deferred :: Initialize

  • subroutine solver_initialize(this, timer, parallel, parser) Prototype

    Initialize 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

procedure(solver_monitor), public, deferred :: Monitor

  • subroutine solver_monitor(this) Prototype

    Compute and write monitored values

    Arguments

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

    A LEAP solver

procedure(solver_prepare), public, deferred :: PrepareSolver

  • subroutine solver_prepare(this) Prototype

    Prepare data before run

    Arguments

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

    A LEAP solver

procedure(solver_inicond), public, deferred :: SetInitialConditions

  • subroutine solver_inicond(this) Prototype

    Set initial conditions at n=0

    Arguments

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

    A LEAP solver

procedure(solver_output), public, deferred :: WriteOutputData

  • subroutine solver_output(this) Prototype

    Write single precision data needed for visualizations

    Arguments

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

    A LEAP solver

procedure(solver_restart), public, deferred :: WriteRestartData

  • subroutine solver_restart(this) Prototype

    Write simulation data to disk required for restarts

    Arguments

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

    A LEAP solver