mus_pdf_module Module

Definitions for the main state and neighbor arrays


Uses

  • module~~mus_pdf_module~~UsesGraph module~mus_pdf_module mus_pdf_module module~tem_logging_module tem_logging_module module~mus_pdf_module->module~tem_logging_module module~tem_debug_module tem_debug_module module~mus_pdf_module->module~tem_debug_module module~tem_construction_module tem_construction_module module~mus_pdf_module->module~tem_construction_module module~env_module env_module module~mus_pdf_module->module~env_module

Used by

  • module~~mus_pdf_module~~UsedByGraph module~mus_pdf_module mus_pdf_module module~mus_derquanmsliquid_module mus_derQuanMSLiquid_module module~mus_derquanmsliquid_module->module~mus_pdf_module module~mus_hvs_construction_module mus_hvs_construction_module module~mus_hvs_construction_module->module~mus_pdf_module module~mus_construction_module mus_construction_module module~mus_construction_module->module~mus_pdf_module module~mus_scheme_type_module mus_scheme_type_module module~mus_scheme_type_module->module~mus_pdf_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_pdf_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_pdf_module module~mus_source_module mus_source_module module~mus_source_module->module~mus_pdf_module module~mus_bc_header_module mus_bc_header_module module~mus_bc_header_module->module~mus_pdf_module module~mus_interpolate_tools_module mus_interpolate_tools_module module~mus_interpolate_tools_module->module~mus_pdf_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_pdf_module module~mus_derquan_module mus_derQuan_module module~mus_derquan_module->module~mus_pdf_module module~mus_debug_tools_module mus_debug_tools_module module~mus_debug_tools_module->module~mus_pdf_module module~mus_fluid_module mus_fluid_module module~mus_fluid_module->module~mus_pdf_module module~mus_interpolate_quadratic_module mus_interpolate_quadratic_module module~mus_interpolate_quadratic_module->module~mus_pdf_module module~mus_ibm_module mus_IBM_module module~mus_ibm_module->module~mus_pdf_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_derquanisothermaceq_module->module~mus_pdf_module module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_pdf_module module~mus_bc_general_module mus_bc_general_module module~mus_bc_general_module->module~mus_pdf_module module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_derquanincomp_module->module~mus_pdf_module

Contents


Derived Types

type, public :: pdf_data_type

This level-wise data type contains the PDF arrays which are fed into the kernel. The solver updates the state vector and finds the position of the neighbor vectors by looking it up in the neigh array

Components

TypeVisibilityAttributesNameInitial
integer, private :: nElems_fluid

number of local fluid elements

integer, private :: nElems_halo

number of halo elements (from remote processes)

integer, private :: nElems_ghostFromCoarser

number of ghost elements (from other levels)

integer, private :: nElems_ghostFromFiner

number of ghost elements (from other levels)

integer, private :: nElems_ghost

number of ghost elements (from other levels)

integer, private :: nElems_local

number of local elements (fluid+halos+ghost)

integer, private :: nElems_solve

fluid elements + ghost elements (elements for solver)

integer, private :: nSize

number of elements padded to 4

integer, private :: nNow =1

which buffer to use for current time step

integer, private :: nNext =2

which buffer to use for next time step

integer, private, allocatable, dimension(:):: neigh

Connectivity array Points to where to send respective pdfs Access in a neigh way Size: QQ * nSize allocated in routine: mus_pdf_allocate

real(kind=rk), private, allocatable, dimension(:):: bcBuffer

containing state vector values of elements which have a boundary It always uses AOS data layout allocated in routine: mus_pdf_allocate filled for each iteration in routine: fill_bcBuffer

real(kind=rk), private, allocatable:: momBuf(:,:)

Buffer storing the moments of all source from Coarser


Subroutines

public subroutine mus_calc_nElems(me, nFluids, nGhostFromCoarser, nGhostFromFiner, nHalos)

Compute nElems for different types

Arguments

TypeIntentOptionalAttributesName
type(pdf_data_type) :: me
integer, intent(in) :: nFluids
integer, intent(in) :: nGhostFromCoarser
integer, intent(in) :: nGhostFromFiner
integer, intent(in) :: nHalos

public subroutine mus_pdf_allocate(me, nScalars, QQ, nElems_bcBuffer, isPDF)

Arguments

TypeIntentOptionalAttributesName
type(pdf_data_type), intent(inout) :: me
integer, intent(in) :: nScalars
integer, intent(in) :: QQ
integer, intent(in) :: nElems_bcBuffer
logical, intent(in) :: isPDF

public subroutine mus_swap_Now_Next(me)

Arguments

TypeIntentOptionalAttributesName
type(pdf_data_type), intent(inout) :: me

public subroutine allocate_momBuf(me, nVals)

Arguments

TypeIntentOptionalAttributesName
type(pdf_data_type), intent(inout) :: me
integer, intent(in) :: nVals