mesh_t Derived Type

type, public :: mesh_t


Inherits

type~~mesh_t~~InheritsGraph type~mesh_t mesh_t type~geo_t geo_t type~mesh_t->type~geo_t geo type~grid_t grid_t type~mesh_t->type~grid_t grid type~par_t par_t type~mesh_t->type~par_t par

Inherited by

type~~mesh_t~~InheritedByGraph type~mesh_t mesh_t type~allocator_t allocator_t type~allocator_t->type~mesh_t mesh type~base_backend_t base_backend_t type~base_backend_t->type~mesh_t mesh type~base_backend_t->type~allocator_t allocator type~solver_t solver_t type~solver_t->type~mesh_t mesh type~solver_t->type~allocator_t host_allocator type~solver_t->type~base_backend_t backend type~time_intg_t time_intg_t type~solver_t->type~time_intg_t time_integrator type~vector_calculus_t vector_calculus_t type~solver_t->type~vector_calculus_t vector_calculus type~base_case_t base_case_t type~base_case_t->type~solver_t solver type~cuda_allocator_t cuda_allocator_t type~cuda_allocator_t->type~allocator_t type~cuda_backend_t cuda_backend_t type~cuda_backend_t->type~base_backend_t type~omp_backend_t omp_backend_t type~omp_backend_t->type~base_backend_t type~time_intg_t->type~allocator_t allocator type~time_intg_t->type~base_backend_t backend type~vector_calculus_t->type~base_backend_t backend type~case_channel_t case_channel_t type~case_channel_t->type~base_case_t type~case_generic_t case_generic_t type~case_generic_t->type~base_case_t type~case_tgv_t case_tgv_t type~case_tgv_t->type~base_case_t

Components

Type Visibility Attributes Name Initial
type(geo_t), public, allocatable :: geo
class(grid_t), public, allocatable :: grid
class(par_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, stretching, beta, use_2decomp) 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
    character(len=*), intent(in), optional, dimension(3) :: stretching
    real(kind=dp), intent(in), optional, dimension(3) :: beta
    logical, intent(in), optional :: use_2decomp

    Return Value class(mesh_t), allocatable


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 coordinates of a vertex 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