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 | |||
| integer, | intent(in) | :: | iter |
Applies case-specific pre-correction to the velocity fields before pressure correction
| Type | Intent | Optional | 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 |
Triggers case-specific postprocessings at user specified intervals
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_case_t) | :: | self | ||||
| integer, | intent(in) | :: | iter | |||
| real(kind=dp), | intent(in) | :: | t |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(solver_t), | public, | allocatable | :: | solver | |||
| type(io_manager_t), | public | :: | checkpoint_mgr |
| procedure(boundary_conditions), public, deferred :: boundary_conditions | |
| procedure(initial_conditions), public, deferred :: initial_conditions | |
| procedure(forcings), public, deferred :: forcings | |
| procedure(pre_correction), public, deferred :: pre_correction | |
| procedure(postprocess), public, deferred :: postprocess | |
| procedure, public :: case_init | |
| procedure, public :: case_finalise | |
| 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 |
| 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 |