mus_pdf_module Module

Definitions for the main state and neighbor arrays



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

Type Visibility Attributes Name Initial
integer, public :: nElems_fluid

number of local fluid elements

integer, public :: nElems_halo

number of halo elements (from remote processes)

integer, public :: nElems_ghostFromCoarser

number of ghost elements (from other levels)

integer, public :: nElems_ghostFromFiner

number of ghost elements (from other levels)

integer, public :: nElems_ghost

number of ghost elements (from other levels)

integer, public :: nElems_local

number of local elements (fluid+halos+ghost)

integer, public :: nElems_solve

fluid elements + ghostFromCoarser elements (elements for solver). PDF and auxFied are interpolated for ghostFromFiner and there is no need to do collision on these elements.

integer, public :: nElems_computed

fluid elements + ghostFromCoarse + ghostFromFiner

integer, public :: nSize

number of elements padded to 4

integer, public :: nNow = 1

which buffer to use for current time step

integer, public :: nNext = 2

which buffer to use for next time step

integer, public, 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), public, 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), public, 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

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

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

Type IntentOptional Attributes Name
type(pdf_data_type), intent(inout) :: me

public subroutine allocate_momBuf(me, nVals)

Arguments

Type IntentOptional Attributes Name
type(pdf_data_type), intent(inout) :: me
integer, intent(in) :: nVals