| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_backend_t), | intent(inout), | target | :: | backend | ||
| type(mesh_t), | intent(inout), | target | :: | mesh | ||
| type(allocator_t), | intent(inout), | target | :: | host_allocator |
solver class defines the Incompact3D algorithm at a very high level.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=dp), | public | :: | dt | ||||
| real(kind=dp), | public | :: | nu | ||||
| real(kind=dp), | public, | dimension(:), allocatable | :: | nu_species | |||
| integer, | public | :: | n_iters | ||||
| integer, | public | :: | n_output | ||||
| integer, | public | :: | current_iter | = | 0 | ||
| integer, | public | :: | ngrid | ||||
| integer, | public | :: | nvars | = | 3 | ||
| integer, | public | :: | nspecies | = | 0 | ||
| class(field_t), | public, | pointer | :: | u | |||
| class(field_t), | public, | pointer | :: | v | |||
| class(field_t), | public, | pointer | :: | w | |||
| class(field_t), | public, | pointer | :: | pressure | => | null() |
Pressure on CELL grid (DIR_Z) |
| class(field_t), | public, | pointer | :: | pressure_vert | => | null() |
Pressure on VERT grid (DIR_X) |
| logical, | public | :: | keep_pressure | = | .false. |
If true, persist pressure for output |
|
| type(flist_t), | public, | dimension(:), pointer | :: | species | => | null() | |
| class(base_backend_t), | public, | pointer | :: | backend | |||
| type(mesh_t), | public, | pointer | :: | mesh | |||
| type(time_intg_t), | public | :: | time_integrator | ||||
| type(allocator_t), | public, | pointer | :: | host_allocator | |||
| type(dirps_t), | public, | pointer | :: | xdirps | |||
| type(dirps_t), | public, | pointer | :: | ydirps | |||
| type(dirps_t), | public, | pointer | :: | zdirps | |||
| type(vector_calculus_t), | public | :: | vector_calculus | ||||
| type(ibm_t), | public | :: | ibm | ||||
| logical, | public | :: | ibm_on | ||||
| procedure(poisson_solver), | public, | pointer | :: | poisson | => | null() | |
| procedure(transport_equation), | public, | pointer | :: | transeq | => | null() |
| public function init (backend, mesh, host_allocator) |
| procedure, public :: transeq_species | |
| procedure, public :: pressure_correction | |
| procedure, public :: compute_pressure_vert | |
| procedure, public :: rescale_pressure | |
| procedure, public :: divergence_v2p | |
| procedure, public :: gradient_p2v | |
| procedure, public :: curl |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 | ||
|---|---|---|---|---|---|---|
| type(dirps_t), | intent(inout) | :: | dirps | |||
| class(base_backend_t), | intent(in) | :: | backend | |||
| type(mesh_t), | intent(in) | :: | mesh | |||
| character(len=*), | intent(in) | :: | der1st_scheme | |||
| character(len=*), | intent(in) | :: | der2nd_scheme | |||
| character(len=*), | intent(in) | :: | interpl_scheme | |||
| character(len=*), | intent(in) | :: | stagder_scheme |
Skew-symmetric form of convection-diffusion terms in the incompressible Navier-Stokes momemtum equations, excluding pressure terms. Inputs from velocity grid and outputs to velocity grid.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t) | :: | self | ||||
| type(flist_t), | intent(inout) | :: | rhs(:) | |||
| type(flist_t), | intent(inout) | :: | variables(:) |
Wrapper for curl
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t) | :: | self | ||||
| class(field_t), | intent(inout) | :: | o_i_hat |
Vector components of the output vector field Omega |
||
| class(field_t), | intent(inout) | :: | o_j_hat |
Vector components of the output vector field Omega |
||
| class(field_t), | intent(inout) | :: | o_k_hat |
Vector components of the output vector field Omega |
||
| class(field_t), | intent(in) | :: | u | |||
| class(field_t), | intent(in) | :: | v | |||
| class(field_t), | intent(in) | :: | w |
Interpolates the pressure field from CELL (DIR_Z) to VERT (DIR_X) for snapshot output. Must be called after pressure_correction.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t) | :: | self |
Rescale pseudo-pressure to physical (kinematic) pressure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t) | :: | self | ||||
| class(field_t), | intent(inout) | :: | pressure |