| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | FFT_BC_000 | = | 0 | |
| integer, | public, | parameter | :: | FFT_BC_010 | = | 10 | |
| integer, | public, | parameter | :: | FFT_BC_100 | = | 100 | |
| integer, | public, | parameter | :: | FFT_BC_110 | = | 110 | |
| integer, | public, | parameter | :: | FFT_BC_UNSUPPORTED | = | -1 |
Completely initialise the mesh object. Upon initialisation the mesh object can be read-only and shouldn't be edited Takes as argument global information about the mesh like its length, number of cells and decomposition in each direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in), | dimension(3) | :: | dims_global | ||
| integer, | intent(in), | dimension(3) | :: | nproc_dir | ||
| real(kind=dp), | intent(in), | dimension(3) | :: | L_global | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_x | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_y | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_z | ||
| character(len=*), | intent(in), | optional, | dimension(3) | :: | stretching | |
| real(kind=dp), | intent(in), | optional, | dimension(3) | :: | beta | |
| logical, | intent(in), | optional | :: | use_2decomp |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(geo_t), | public, | allocatable | :: | geo | |||
| class(grid_t), | public, | allocatable | :: | grid | |||
| class(par_t), | public, | allocatable | :: | par |
| public function mesh_init (dims_global, nproc_dir, L_global, BC_x, BC_y, BC_z, stretching, beta, use_2decomp) | Completely initialise the mesh object. Upon initialisation the mesh object can be read-only and shouldn't be edited Takes as argument global information about the mesh like its length, number of cells and decomposition in each direction |
| procedure, public :: get_dims | |
| procedure, public :: get_global_dims | |
| procedure, public :: get_n_dir | |
| procedure, public :: get_n_phi | |
| generic, public :: get_n => get_n_dir, get_n_phi | |
| procedure, public :: get_coordinates |
Completely initialise the mesh object. Upon initialisation the mesh object can be read-only and shouldn't be edited Takes as argument global information about the mesh like its length, number of cells and decomposition in each direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in), | dimension(3) | :: | dims_global | ||
| integer, | intent(in), | dimension(3) | :: | nproc_dir | ||
| real(kind=dp), | intent(in), | dimension(3) | :: | L_global | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_x | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_y | ||
| character(len=*), | intent(in), | dimension(2) | :: | BC_z | ||
| character(len=*), | intent(in), | optional, | dimension(3) | :: | stretching | |
| real(kind=dp), | intent(in), | optional, | dimension(3) | :: | beta | |
| logical, | intent(in), | optional | :: | use_2decomp |
Getter for local domain dimensions
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mesh_t), | intent(in) | :: | self | |||
| integer, | intent(in) | :: | data_loc |
Getter for local domain dimensions
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mesh_t), | intent(in) | :: | self | |||
| integer, | intent(in) | :: | data_loc |
Getter for domain dimensions
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | data_loc | |||
| integer, | intent(in), | dimension(3) | :: | vert_dims | ||
| integer, | intent(in), | dimension(3) | :: | cell_dims |
Getter for the main dimension a field oriented along dir with data on data_loc
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mesh_t), | intent(in) | :: | self | |||
| integer, | intent(in) | :: | dir | |||
| integer, | intent(in) | :: | data_loc |
Get the coordinates of a vertex with i, j, k local cartesian indices Avoid calling this in hot loops
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mesh_t), | intent(in) | :: | self | |||
| integer, | intent(in) | :: | i | |||
| integer, | intent(in) | :: | j | |||
| integer, | intent(in) | :: | k | |||
| integer, | intent(in), | optional | :: | data_loc_op |
Global number of cells per direction: a periodic direction has as many cells as vertices, any other has one less. Shared by mesh_init and callers with only the global vertex dims (no mesh_t).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | vert_dims(3) | |||
| logical, | intent(in) | :: | periodic(3) |
Parse the BC strings of the three directions. A direction is periodic only if both ends are 'periodic'. bc_code is the FFT_BC_* class of the resulting periodicity, or FFT_BC_UNSUPPORTED. Shared by mesh_init and callers with only BC strings (no mesh_t, e.g. static memory estimation).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | bc_x(2) | |||
| character(len=*), | intent(in) | :: | bc_y(2) | |||
| character(len=*), | intent(in) | :: | bc_z(2) | |||
| logical, | intent(out) | :: | periodic(3) | |||
| integer, | intent(out) | :: | bc_code | |||
| integer, | intent(out), | optional | :: | bcs_global(3,2) |