base_case_t Derived Type

type, public, abstract :: base_case_t


Inherits

type~~base_case_t~~InheritsGraph type~base_case_t base_case_t type~solver_t solver_t type~base_case_t->type~solver_t solver type~allocator_t allocator_t type~solver_t->type~allocator_t host_allocator type~base_backend_t base_backend_t type~solver_t->type~base_backend_t backend type~dirps_t dirps_t type~solver_t->type~dirps_t xdirps, ydirps, zdirps type~field_t field_t type~solver_t->type~field_t u, v, w type~mesh_t mesh_t type~solver_t->type~mesh_t mesh type~time_intg_t time_intg_t type~solver_t->type~time_intg_t time_integrator type~vector_calculus_t vector_calculus_t type~solver_t->type~vector_calculus_t vector_calculus type~allocator_t->type~field_t first type~allocator_t->type~mesh_t mesh type~base_backend_t->type~allocator_t allocator type~base_backend_t->type~mesh_t mesh type~poisson_fft_t poisson_fft_t type~base_backend_t->type~poisson_fft_t poisson_fft type~tdsops_t tdsops_t type~dirps_t->type~tdsops_t der1st, der1st_sym, der2nd, der2nd_sym, stagder_v2p, stagder_p2v, interpl_v2p, interpl_p2v type~field_t->type~field_t next type~geo_t geo_t type~mesh_t->type~geo_t geo type~grid_t grid_t type~mesh_t->type~grid_t grid type~par_t par_t type~mesh_t->type~par_t par type~time_intg_t->type~allocator_t allocator type~time_intg_t->type~base_backend_t backend type~flist_t flist_t type~time_intg_t->type~flist_t olds, curr, deriv type~vector_calculus_t->type~base_backend_t backend type~flist_t->type~field_t ptr

Inherited by

type~~base_case_t~~InheritedByGraph type~base_case_t base_case_t type~case_channel_t case_channel_t type~case_channel_t->type~base_case_t type~case_generic_t case_generic_t type~case_generic_t->type~base_case_t type~case_tgv_t case_tgv_t type~case_tgv_t->type~base_case_t

Components

Type Visibility Attributes Name Initial
class(solver_t), public, allocatable :: solver

Type-Bound Procedures

procedure(boundary_conditions), public, deferred :: boundary_conditions

  • subroutine boundary_conditions(self) Prototype

    Applies case-specific boundary coinditions

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self

procedure(initial_conditions), public, deferred :: initial_conditions

  • subroutine initial_conditions(self) Prototype

    Sets case-specific initial conditions

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self

procedure(forcings), public, deferred :: forcings

  • subroutine forcings(self, du, dv, dw, iter) Prototype

    Applies case-specific or model realated forcings after transeq

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    class(field_t), intent(inout) :: du
    class(field_t), intent(inout) :: dv
    class(field_t), intent(inout) :: dw
    integer, intent(in) :: iter

procedure(pre_correction), public, deferred :: pre_correction

  • subroutine pre_correction(self, u, v, w) Prototype

    Applies case-specific pre-correction to the velocity fields before pressure correction

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    class(field_t), intent(inout) :: u
    class(field_t), intent(inout) :: v
    class(field_t), intent(inout) :: w

procedure(postprocess), public, deferred :: postprocess

  • subroutine postprocess(self, iter, t) Prototype

    Triggers case-specific postprocessings at user specified intervals

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    integer, intent(in) :: iter
    real(kind=dp), intent(in) :: t

procedure, public :: case_init

  • public subroutine case_init(self, backend, mesh, host_allocator)

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    class(base_backend_t), intent(inout), target :: backend
    type(mesh_t), intent(inout), target :: mesh
    type(allocator_t), intent(inout), target :: host_allocator

procedure, public :: set_init

  • public subroutine set_init(self, field, field_func)

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    class(field_t), intent(inout) :: field
    public pure function field_func(coords) result(r)
    Arguments
    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: coords(3)
    Return Value real(kind=dp)

procedure, public :: run

  • public subroutine run(self)

    Runs the solver forwards in time from t=t_0 to t=T, performing postprocessing/IO and reporting diagnostics.

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t), intent(inout) :: self

procedure, public :: print_enstrophy

  • public subroutine print_enstrophy(self, u, v, w)

    Reports the enstrophy

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t), intent(in) :: self
    class(field_t), intent(in) :: u
    class(field_t), intent(in) :: v
    class(field_t), intent(in) :: w

procedure, public :: print_div_max_mean

  • public subroutine print_div_max_mean(self, u, v, w)

    Reports the div(u) at cell centres

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t), intent(in) :: self
    class(field_t), intent(in) :: u
    class(field_t), intent(in) :: v
    class(field_t), intent(in) :: w