mus_moments_module Module

This module deals with the calculation of moments from pdfs


Uses

  • module~~mus_moments_module~~UsesGraph module~mus_moments_module mus_moments_module module~tem_aux_module tem_aux_module module~mus_moments_module->module~tem_aux_module module~tem_matrix_module tem_matrix_module module~mus_moments_module->module~tem_matrix_module module~env_module env_module module~mus_moments_module->module~env_module module~mus_moments_type_module mus_moments_type_module module~mus_moments_module->module~mus_moments_type_module module~tem_debug_module tem_debug_module module~mus_moments_module->module~tem_debug_module module~mus_scheme_header_module mus_scheme_header_module module~mus_moments_module->module~mus_scheme_header_module module~tem_math_module tem_math_module module~mus_moments_module->module~tem_math_module module~tem_logging_module tem_logging_module module~mus_moments_module->module~tem_logging_module module~mus_mrtinit_module mus_mrtInit_module module~mus_moments_module->module~mus_mrtinit_module module~mus_moments_type_module->module~tem_matrix_module module~mus_moments_type_module->module~env_module module~mus_scheme_header_module->module~tem_aux_module module~mus_scheme_header_module->module~env_module module~mus_scheme_header_module->module~tem_logging_module module~tem_tools_module tem_tools_module module~mus_scheme_header_module->module~tem_tools_module module~aot_out_module aot_out_module module~mus_scheme_header_module->module~aot_out_module module~aot_table_module aot_table_module module~mus_scheme_header_module->module~aot_table_module module~aotus_module aotus_module module~mus_scheme_header_module->module~aotus_module module~mus_mrtinit_module->module~env_module module~tem_param_module tem_param_module module~mus_mrtinit_module->module~tem_param_module

Used by

  • module~~mus_moments_module~~UsedByGraph module~mus_moments_module mus_moments_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_moments_module module~mus_config_module mus_config_module module~mus_config_module->module~mus_scheme_module module~mus_tools_module mus_tools_module module~mus_config_module->module~mus_tools_module module~mus_tools_module->module~mus_scheme_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_scheme_module module~mus_hvs_config_module->module~mus_config_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_scheme_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_tracking_module mus_tracking_module module~mus_dynloadbal_module->module~mus_tracking_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_scheme_module program~mus_harvesting->module~mus_hvs_config_module module~mus_hvs_aux_module mus_hvs_aux_module program~mus_harvesting->module~mus_hvs_aux_module program~musubi musubi program~musubi->module~mus_config_module module~mus_aux_module mus_aux_module program~musubi->module~mus_aux_module module~mus_tracking_module->module~mus_tools_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_hvs_aux_module->module~mus_tracking_module module~mus_aux_module->module~mus_tools_module module~mus_aux_module->module~mus_tracking_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_aux_module

Contents


Functions

public pure function get_moment(QQ, cxDir, expX, pdf) result(mom)

Calculate the moment of a centain order The moment of a distribution is defined as:\n The fucntion argument expX is array of size 3, which contains the values of \f$p, q, r\f$

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ
integer, intent(in) :: cxDir(3,QQ)
integer, intent(in) :: expX(3)
real(kind=rk), intent(in) :: pdf(QQ)

distribution value

Return Value real(kind=rk)

public pure function get_momentVector(QQ, cxDir, expX) result(mom)

get the moment vector to calculate the moment from the pdf

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ
integer, intent(in) :: cxDir(3,QQ)
integer, intent(in) :: expX(3)

exponents of the moments

Return Value real(kind=rk), (QQ)

moment vector

private pure function mus_iMomVector(cxDir, expX, QQ) result(iMom)

The integer moment vector for a given cxDir and order.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: cxDir(:,:)

discrete velocity

integer, intent(in) :: expX(3)

order in each direction

integer, intent(in) :: QQ

number of velocity channels (include rest)

Return Value integer, (QQ)


Subroutines

public subroutine mus_init_moments(me, QQ, cxDir, label, schemeHeader)

Initialize the moment space

Arguments

Type IntentOptional Attributes Name
type(mus_moment_type), intent(inout) :: me
integer, intent(in) :: QQ
integer, intent(in) :: cxDir(3,QQ)
character(len=labelLen) :: label
type(mus_scheme_header_type), intent(in) :: schemeHeader

identifier of the scheme

public subroutine set_momentIndices(nDims, iPress, iVelMin, iVelMax, iSMin, iSMax)

set indices for accessing the pressure, velocity and the shear from a 1d vector

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nDims

number of dimensions

integer, intent(out) :: iPress

index for the pressure / density

integer, intent(out) :: iVelMin

starting index for velocity

integer, intent(out) :: iVelMax

ending index for velocity

integer, intent(out) :: iSMin

starting index for shear

integer, intent(out) :: iSMax

ending index for shear

public subroutine mus_dump_moments(me, outUnit)

Dump moments matrix: toPDF and toMoment

Arguments

Type IntentOptional Attributes Name
type(mus_moment_type), intent(in) :: me
integer, intent(in) :: outUnit

private subroutine init_transformation_matrix_fluid(QQ, cxDir, label, me, toMoment, toPdf)

Initialize Moments transformation matrix for LBM compressible and incompressible fluid model. This matrix must be consistent with the relaxation matrix used in compute kernel and interpolation routines

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ
integer, intent(in) :: cxDir(3,QQ)
character(len=labelLen) :: label
type(mus_moment_type), intent(inout) :: me
real(kind=rk), intent(inout) :: toMoment(me%toMoments%nEntries(1),me%toMoments%nEntries(2))
real(kind=rk), intent(inout) :: toPdf(me%toPDF%nEntries(1),me%toPDF%nEntries(2))

private subroutine init_transformation_matrix_MS(QQ, cxDir, label, me, toMoment, toPdf)

Intialize the moment transformation matrix for multispecies. This matrix must be consistent with relaxation matrix used for multispecies MRT collision routines

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: QQ
integer, intent(in) :: cxDir(3,QQ)
character(len=labelLen) :: label
type(mus_moment_type), intent(inout) :: me
real(kind=rk), intent(inout) :: toMoment(me%toMoments%nEntries(1),me%toMoments%nEntries(2))
real(kind=rk), intent(inout) :: toPdf(me%toPDF%nEntries(1),me%toPDF%nEntries(2))