m_mesh_content Module


Uses

  • module~~m_mesh_content~~UsesGraph module~m_mesh_content m_mesh_content module~m_common m_common module~m_mesh_content->module~m_common

Used by

  • module~~m_mesh_content~~UsedByGraph module~m_mesh_content m_mesh_content module~m_mesh m_mesh module~m_mesh->module~m_mesh_content proc~decomposition_2decomp m_decomp::decomposition_2decomp proc~decomposition_2decomp->module~m_mesh_content proc~decomposition_2decomp~2 m_decomp::decomposition_2decomp proc~decomposition_2decomp~2->module~m_mesh_content proc~decomposition_generic m_mesh::decomposition_generic proc~decomposition_generic->module~m_mesh_content module~m_allocator m_allocator module~m_allocator->module~m_mesh module~m_base_backend m_base_backend module~m_base_backend->module~m_mesh module~m_base_backend->module~m_allocator 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_allocator module~m_base_case->module~m_base_backend module~m_solver m_solver module~m_base_case->module~m_solver module~m_case_channel m_case_channel module~m_case_channel->module~m_mesh module~m_case_channel->module~m_allocator 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_allocator 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_allocator 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_allocator->module~m_allocator module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_mesh module~m_cuda_backend->module~m_allocator 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_omp_backend m_omp_backend module~m_omp_backend->module~m_mesh module~m_omp_backend->module~m_allocator module~m_omp_backend->module~m_base_backend module~m_ordering m_ordering module~m_omp_backend->module~m_ordering 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_ordering->module~m_mesh module~m_poisson_fft->module~m_mesh module~m_solver->module~m_mesh module~m_solver->module~m_allocator module~m_solver->module~m_base_backend 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_allocator 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_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_vector_calculus->module~m_allocator 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

Derived Types

type, public ::  geo_t

Stores geometry information

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: origin(3)

Origin: coordinates of vertex (1, 1, 1)

real(kind=dp), public :: d(3)

size of a cell in each direction for a uniform mesh

real(kind=dp), public :: L(3)

Global dimensions of the domain in each direction

real(kind=dp), public, allocatable, dimension(:, :) :: vert_coords

Global coordinates at vertices

real(kind=dp), public, allocatable, dimension(:, :) :: midp_coords

Global coordinates at midpoints

character(len=20), public, dimension(3) :: stretching

Stretching type

logical, public :: stretched(3)

Stretching

real(kind=dp), public :: beta(3)

Stretching parameter

real(kind=dp), public, allocatable, dimension(:, :) :: vert_ds

Stretching factors at vertices

real(kind=dp), public, allocatable, dimension(:, :) :: vert_ds2

Stretching factors at vertices

real(kind=dp), public, allocatable, dimension(:, :) :: vert_d2s

Stretching factors at vertices

real(kind=dp), public, allocatable, dimension(:, :) :: midp_ds

Stretching factors at midpoints

real(kind=dp), public, allocatable, dimension(:, :) :: midp_ds2

Stretching factors at midpoints

real(kind=dp), public, allocatable, dimension(:, :) :: midp_d2s

Stretching factors at midpoints

Type-Bound Procedures

procedure, public :: obtain_coordinates

type, public ::  grid_t

Stores grid information

Components

Type Visibility Attributes Name Initial
integer, public, dimension(3) :: global_vert_dims
integer, public, dimension(3) :: global_cell_dims
integer, public, dimension(3) :: vert_dims_padded
integer, public, dimension(3) :: vert_dims
integer, public, dimension(3) :: cell_dims
logical, public, dimension(3) :: periodic_BC
integer, public, dimension(3, 2) :: BCs_global
integer, public, dimension(3, 2) :: BCs

Type-Bound Procedures

procedure, public :: copy_cell2vert_dims
procedure, public :: copy_vert2cell_dims

type, public ::  par_t

Stores parallel domain related information

Components

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

Type-Bound Procedures

procedure, public :: is_root
procedure, public :: compute_rank_pos_from_global

Functions

public pure function is_root(self) result(is_root_rank)

Returns wether or not the current rank is the root rank

Arguments

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

Return Value logical


Subroutines

public pure subroutine compute_rank_pos_from_global(self, global_ranks)

From the global rank maps, fills in the rank position as well as the previous and next rank in the par structure

Arguments

Type IntentOptional Attributes Name
class(par_t), intent(inout) :: self
integer, intent(in), dimension(:, :, :) :: global_ranks

public pure subroutine copy_vert2cell_dims(self, par)

Copies vert_dims information to cell_dims taking periodicity into account

Arguments

Type IntentOptional Attributes Name
class(grid_t), intent(inout) :: self
type(par_t), intent(in) :: par

public pure subroutine copy_cell2vert_dims(self, par)

Copies cell_dims information to vert_dims taking periodicity into account

Arguments

Type IntentOptional Attributes Name
class(grid_t), intent(inout) :: self
type(par_t), intent(in) :: par

public subroutine obtain_coordinates(self, vert_dims, cell_dims, n_offset)

Obtains global coordinates for all the vertices and midpoints

Arguments

Type IntentOptional Attributes Name
class(geo_t) :: self
integer, intent(in) :: vert_dims(3)
integer, intent(in) :: cell_dims(3)
integer, intent(in) :: n_offset(3)