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~base_backend_t base_backend_t type~base_backend_t->type~mesh_t mesh type~ibm_t ibm_t type~ibm_t->type~mesh_t mesh type~ibm_t->type~base_backend_t backend type~solver_t solver_t type~solver_t->type~mesh_t mesh type~solver_t->type~base_backend_t backend type~solver_t->type~ibm_t ibm 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_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~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_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_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_coordinates

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

    Get the coordinates of a vertex with i, j, k local cartesian indices Avoid calling this in hot loops

    Arguments

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

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