Provides the base case for running a simulation. New cases are implemented by extending this to specify the initial and boundary conditions, forcing terms and case-specific postprocessing and analysis.
Applies case-specific boundary coinditions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base_case_t) | :: | self |
Sets case-specific initial conditions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base_case_t) | :: | self |
Applies case-specific or model realated forcings after transeq
Type | Intent | Optional | 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 |
Triggers case-specific postprocessings at user specified intervals
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base_case_t) | :: | self | ||||
integer, | intent(in) | :: | i | |||
real(kind=dp), | intent(in) | :: | t |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(solver_t), | public, | allocatable | :: | solver |
procedure(boundary_conditions), public, deferred :: boundary_conditions | |
procedure(initial_conditions), public, deferred :: initial_conditions | |
procedure(forcings), public, deferred :: forcings | |
procedure(postprocess), public, deferred :: postprocess | |
procedure, public :: case_init | |
procedure, public :: set_init | |
procedure, public :: run | |
procedure, public :: print_enstrophy | |
procedure, public :: print_div_max_mean |
Type | Intent | Optional | 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 |
Type | Intent | Optional | Attributes | Name | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
class(base_case_t) | :: | self | ||||||||||||||||||
class(field_t), | intent(inout) | :: | field | |||||||||||||||||
public pure function field_func(coords) result(r)Arguments
Return Value real(kind=dp) |
Reports the enstrophy
Type | Intent | Optional | 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 |
Reports the div(u) at cell centres
Type | Intent | Optional | 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 |
Runs the solver forwards in time from t=t_0 to t=T, performing postprocessing/IO and reporting diagnostics.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(base_case_t), | intent(inout) | :: | self |