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_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~mus_moments_type_module mus_moments_type_module module~mus_moments_module->module~mus_moments_type_module module~tem_matrix_module tem_matrix_module module~mus_moments_module->module~tem_matrix_module module~tem_logging_module tem_logging_module module~mus_moments_module->module~tem_logging_module module~tem_math_module tem_math_module module~mus_moments_module->module~tem_math_module module~env_module env_module module~mus_moments_module->module~env_module module~tem_aux_module tem_aux_module module~mus_moments_module->module~tem_aux_module module~mus_scheme_header_module->module~tem_logging_module module~mus_scheme_header_module->module~env_module module~mus_scheme_header_module->module~tem_aux_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_moments_type_module->module~tem_matrix_module module~mus_moments_type_module->module~env_module

Used by

  • module~~mus_moments_module~~UsedByGraph module~mus_moments_module mus_moments_module module~mus_interpolate_d2q9_module mus_interpolate_d2q9_module module~mus_interpolate_d2q9_module->module~mus_moments_module module~mus_derivedquantities_module2 mus_derivedQuantities_module2 module~mus_interpolate_d2q9_module->module~mus_derivedquantities_module2 module~mus_interpolate_compact_module mus_interpolate_compact_module module~mus_interpolate_compact_module->module~mus_moments_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_moments_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_moments_module module~mus_derivedquantities_module2->module~mus_moments_module module~mus_smagorinsky_module mus_Smagorinsky_module module~mus_smagorinsky_module->module~mus_derivedquantities_module2 module~mus_config_module mus_config_module module~mus_config_module->module~mus_scheme_module module~mus_wale_module mus_WALE_module module~mus_wale_module->module~mus_derivedquantities_module2 module~mus_program_module mus_program_module module~mus_program_module->module~mus_scheme_module module~mus_interpolate_d3q27_module mus_interpolate_d3q27_module module~mus_interpolate_d3q27_module->module~mus_derivedquantities_module2 module~mus_derquan_module mus_derQuan_module module~mus_derquan_module->module~mus_derivedquantities_module2 module~mus_bc_fluid_noneqexpol_module mus_bc_fluid_nonEqExpol_module module~mus_bc_fluid_noneqexpol_module->module~mus_derivedquantities_module2 module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_scheme_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_scheme_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_scheme_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_interpolate_verify_module module~mus_flow_module->module~mus_derivedquantities_module2 module~mus_ibm_module mus_IBM_module module~mus_ibm_module->module~mus_derivedquantities_module2 module~mus_interpolate_debug_module mus_interpolate_debug_module module~mus_interpolate_debug_module->module~mus_derivedquantities_module2 module~mus_tools_module mus_tools_module module~mus_tools_module->module~mus_scheme_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_derquanisothermaceq_module->module~mus_derivedquantities_module2 module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_derquanpoisson_module->module~mus_derivedquantities_module2 module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_derivedquantities_module2 module~mus_vreman_module mus_Vreman_module module~mus_vreman_module->module~mus_derivedquantities_module2 module~mus_operation_var_module mus_operation_var_module module~mus_operation_var_module->module~mus_derivedquantities_module2 module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_derquanincomp_module->module~mus_derivedquantities_module2

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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
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

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