m_mesh Module


Uses

  • module~~m_mesh~~UsesGraph module~m_mesh m_mesh iso_fortran_env iso_fortran_env module~m_mesh->iso_fortran_env module~m_common m_common module~m_mesh->module~m_common module~m_field m_field module~m_mesh->module~m_field module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content mpi mpi module~m_mesh->mpi module~m_common->mpi module~m_field->module~m_common module~m_mesh_content->module~m_common

Used by

  • module~~m_mesh~~UsedByGraph module~m_mesh m_mesh module~m_base_backend m_base_backend module~m_base_backend->module~m_mesh module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_base_case m_base_case module~m_base_case->module~m_mesh module~m_base_case->module~m_base_backend module~m_solver m_solver module~m_base_case->module~m_solver module~m_checkpoint_manager~2 m_checkpoint_manager module~m_base_case->module~m_checkpoint_manager~2 module~m_case_channel m_case_channel module~m_case_channel->module~m_mesh module~m_case_channel->module~m_base_backend module~m_case_channel->module~m_base_case module~m_case_channel->module~m_solver module~m_case_generic m_case_generic module~m_case_generic->module~m_mesh module~m_case_generic->module~m_base_backend module~m_case_generic->module~m_base_case module~m_case_generic->module~m_solver module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_mesh module~m_case_tgv->module~m_base_backend module~m_case_tgv->module~m_base_case module~m_case_tgv->module~m_solver module~m_cuda_allocator m_cuda_allocator module~m_cuda_allocator->module~m_mesh module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_mesh module~m_cuda_backend->module~m_base_backend module~m_cuda_backend->module~m_cuda_allocator module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_backend->module~m_cuda_poisson_fft module~m_cuda_poisson_fft->module~m_mesh module~m_cuda_poisson_fft->module~m_cuda_allocator module~m_cuda_poisson_fft->module~m_poisson_fft module~m_ibm m_ibm module~m_ibm->module~m_mesh module~m_ibm->module~m_base_backend module~m_omp_backend m_omp_backend module~m_omp_backend->module~m_mesh module~m_omp_backend->module~m_base_backend module~m_omp_poisson_fft m_omp_poisson_fft module~m_omp_poisson_fft->module~m_mesh module~m_omp_poisson_fft->module~m_poisson_fft module~m_poisson_fft->module~m_mesh module~m_solver->module~m_mesh module~m_solver->module~m_base_backend module~m_solver->module~m_ibm module~m_time_integrator m_time_integrator module~m_solver->module~m_time_integrator module~m_vector_calculus m_vector_calculus module~m_solver->module~m_vector_calculus program~xcompact xcompact program~xcompact->module~m_mesh program~xcompact->module~m_base_backend program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv program~xcompact->module~m_cuda_allocator program~xcompact->module~m_cuda_backend program~xcompact->module~m_omp_backend module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_solver module~m_checkpoint_manager_base m_checkpoint_manager_base module~m_checkpoint_manager_base->module~m_solver module~m_checkpoint_manager_impl m_checkpoint_manager_impl module~m_checkpoint_manager_impl->module~m_solver module~m_checkpoint_manager_impl->module~m_checkpoint_manager_base module~m_checkpoint_manager~2->module~m_solver module~m_checkpoint_manager~2->module~m_checkpoint_manager_impl module~m_time_integrator->module~m_base_backend module~m_vector_calculus->module~m_base_backend proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->module~m_omp_poisson_fft

Interfaces

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


Derived Types

type, public ::  mesh_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 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

Type-Bound Procedures

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

Functions

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

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)

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)

public pure function get_dims_dataloc(data_loc, vert_dims, cell_dims) result(dims)

Getter for domain dimensions

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: data_loc
integer, intent(in), dimension(3) :: vert_dims
integer, intent(in), dimension(3) :: cell_dims

Return Value integer, dimension(3)

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

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_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)


Subroutines

public subroutine decomposition_generic(grid, par)

Arguments

Type IntentOptional Attributes Name
class(grid_t), intent(inout) :: grid
class(par_t), intent(inout) :: par