mesh_t Derived Type

type, public :: mesh_t


Components

Type Visibility Attributes Name Initial
type(geo_t), public, allocatable :: geo
type(parallel_t), public, allocatable :: par

Constructor

public interface mesh_t

  • public function mesh_init(dims_global, nproc_dir, L_global, BC_x, BC_y, BC_z) result(mesh)

    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

    Arguments

    Type IntentOptional 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

    Return Value type(mesh_t)


Type-Bound Procedures

procedure, public :: get_SZ => get_sz

  • public pure function get_sz(self) result(sz)

    Getter for parameter SZ

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self

    Return Value integer

procedure, public :: get_dims

  • public pure function get_dims(self, data_loc) result(dims)

    Getter for local domain dimensions

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

procedure, public :: get_global_dims

  • public pure function get_global_dims(self, data_loc) result(dims)

    Getter for local domain dimensions

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

procedure, public :: get_n_groups_dir

  • public pure function get_n_groups_dir(self, dir) result(n_groups)

    Getter for the number of groups for fields in direction dir

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir

    Return Value integer

procedure, public :: get_n_groups_phi

  • public pure function get_n_groups_phi(self, phi) result(n_groups)

    Getter for the number of groups for fields phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer

generic, public :: get_n_groups => get_n_groups_dir, get_n_groups_phi

  • public pure function get_n_groups_dir(self, dir) result(n_groups)

    Getter for the number of groups for fields in direction dir

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir

    Return Value integer

  • public pure function get_n_groups_phi(self, phi) result(n_groups)

    Getter for the number of groups for fields phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer

procedure, public :: get_field_dims_dir

  • public pure function get_field_dims_dir(self, dir, data_loc) result(dims)

    Getter for the dimensions of an array directed along dir where data would be located on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

procedure, public :: get_field_dims_phi

  • public pure function get_field_dims_phi(self, phi) result(dims)

    Getter for the dimensions of field phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer, dimension(3)

procedure, public :: get_field_dims_phi_dataloc

  • public pure function get_field_dims_phi_dataloc(self, phi, data_loc) result(dims)

    Getter for the dimensions of field phi where data is located on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

generic, public :: get_field_dims => get_field_dims_dir, get_field_dims_phi, get_field_dims_phi_dataloc

  • public pure function get_field_dims_dir(self, dir, data_loc) result(dims)

    Getter for the dimensions of an array directed along dir where data would be located on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

  • public pure function get_field_dims_phi(self, phi) result(dims)

    Getter for the dimensions of field phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer, dimension(3)

  • public pure function get_field_dims_phi_dataloc(self, phi, data_loc) result(dims)

    Getter for the dimensions of field phi where data is located on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi
    integer, intent(in) :: data_loc

    Return Value integer, dimension(3)

procedure, public :: get_n_dir

  • public pure function get_n_dir(self, dir, data_loc) result(n)

    Getter for the main dimension a field oriented along dir with data on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir
    integer, intent(in) :: data_loc

    Return Value integer

procedure, public :: get_n_phi

  • public pure function get_n_phi(self, phi) result(n)

    Getter for the main dimension of field phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer

generic, public :: get_n => get_n_dir, get_n_phi

  • public pure function get_n_dir(self, dir, data_loc) result(n)

    Getter for the main dimension a field oriented along dir with data on data_loc

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir
    integer, intent(in) :: data_loc

    Return Value integer

  • public pure function get_n_phi(self, phi) result(n)

    Getter for the main dimension of field phi

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer

procedure, public :: get_padded_dims_phi

  • public pure function get_padded_dims_phi(self, phi) result(dims_padded)

    Getter for padded dimensions for field phi Gets the field direction from the field itself

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer, dimension(3)

procedure, public :: get_padded_dims_dir

  • public pure function get_padded_dims_dir(self, dir) result(dims_padded)

    Getter for padded dimensions with structure in dir direction

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir

    Return Value integer, dimension(3)

generic, public :: get_padded_dims => get_padded_dims_dir, get_padded_dims_phi

  • public pure function get_padded_dims_dir(self, dir) result(dims_padded)

    Getter for padded dimensions with structure in dir direction

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: dir

    Return Value integer, dimension(3)

  • public pure function get_padded_dims_phi(self, phi) result(dims_padded)

    Getter for padded dimensions for field phi Gets the field direction from the field itself

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    class(field_t), intent(in) :: phi

    Return Value integer, dimension(3)

procedure, public :: get_coordinates

  • public pure function get_coordinates(self, i, j, k) result(xloc)

    Get the physical location of a cell center with i,j,k local indices

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(in) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j
    integer, intent(in) :: k

    Return Value real(kind=dp), dimension(3)

procedure, public :: set_sz

  • public subroutine set_sz(self, sz)

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(inout) :: self
    integer, intent(in) :: sz

procedure, public :: set_padded_dims

  • public subroutine set_padded_dims(self, vert_dims)

    Arguments

    Type IntentOptional Attributes Name
    class(mesh_t), intent(inout) :: self
    integer, intent(in), dimension(3) :: vert_dims