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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=dp), | public, | dimension(3) | :: | d | |||
real(kind=dp), | public, | dimension(3) | :: | L |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | nrank | ||||
integer, | public | :: | nproc | ||||
integer, | public, | dimension(3) | :: | nrank_dir | |||
integer, | public, | dimension(3) | :: | nproc_dir | |||
integer, | public, | dimension(3) | :: | n_offset | |||
integer, | public, | dimension(3) | :: | pnext | |||
integer, | public, | dimension(3) | :: | pprev |
procedure, public :: is_root |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | dimension(3, 2) | :: | BCs_global | |||
integer, | public, | dimension(3, 2) | :: | BCs | |||
type(geo_t), | public, | allocatable | :: | geo | |||
type(parallel_t), | public, | allocatable | :: | par |
public function mesh_init (dims_global, nproc_dir, L_global, BC_x, BC_y, BC_z) | 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_SZ => get_sz | |
procedure, public :: get_dims | |
procedure, public :: get_global_dims | |
procedure, public :: get_n_groups_dir | |
procedure, public :: get_n_groups_phi | |
generic, public :: get_n_groups => get_n_groups_dir, get_n_groups_phi | |
procedure, public :: get_field_dims_dir | |
procedure, public :: get_field_dims_phi | |
procedure, public :: get_field_dims_phi_dataloc | |
generic, public :: get_field_dims => get_field_dims_dir, get_field_dims_phi, get_field_dims_phi_dataloc | |
procedure, public :: get_n_dir | |
procedure, public :: get_n_phi | |
generic, public :: get_n => get_n_dir, get_n_phi | |
procedure, public :: get_padded_dims_phi | |
procedure, public :: get_padded_dims_dir | |
generic, public :: get_padded_dims => get_padded_dims_dir, get_padded_dims_phi | |
procedure, public :: get_coordinates | |
procedure, public :: set_sz | |
procedure, public :: set_padded_dims |
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 |
Getter for parameter SZ
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(in) | :: | self |
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 padded dimensions with structure in dir
direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(in) | :: | self | |||
integer, | intent(in) | :: | dir |
Getter for the number of groups for fields in direction dir
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(in) | :: | self | |||
integer, | intent(in) | :: | dir |
Getter for the dimensions of an array directed along dir
where data would be located on data_loc
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(in) | :: | self | |||
integer, | intent(in) | :: | dir | |||
integer, | intent(in) | :: | data_loc |
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 physical location of a cell center with i,j,k local indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(in) | :: | self | |||
integer, | intent(in) | :: | i | |||
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | k |
Returns whether or not the current rank is the root rank
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(parallel_t), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(inout) | :: | self | |||
integer, | intent(in), | dimension(3) | :: | vert_dims |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(inout) | :: | self | |||
integer, | intent(in) | :: | sz |
Supports 1D, 2D, and 3D domain decomposition.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mesh_t), | intent(inout) | :: | mesh |