deriveEquilMSGas_FromMacro Subroutine

public subroutine deriveEquilMSGas_FromMacro(density, velocity, iField, nElems, varSys, layout, res)

This routine computes equilbrium from density and velocity This must comply with mus_variable_module%derive_FromMacro

This subroutine's interface must match the abstract interface definition derive_FromMacro in derived/mus_derVarPos_module.f90 in order to be callable via equilFromMacro function pointer.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: density(:)

Array of density. Single species: dens_1, dens_2 .. dens_n multi-species: dens_1_sp1, dens_1_sp2, dens_2_sp1, dens_2_sp2 ... dens_n_sp1, dens_n_sp2

real(kind=rk), intent(in) :: velocity(:,:)

Array of velocity. Size: dimension 1: n*nFields. dimension 2: 3 (nComp) 1st dimension arrangement for multi-species is same as density

integer, intent(in) :: iField

Current field

integer, intent(in) :: nElems

number of elements

type(tem_varSys_type), intent(in) :: varSys

variable system which is required to access fieldProp information via variable method data c_ptr

type(mus_scheme_layout_type), intent(in) :: layout

scheme layout contains stencil definition and lattice weights

real(kind=rk), intent(out) :: res(:)

Output of this routine Dimension: n*nComponents of res


Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: fEq(layout%fStencil%QQ)
integer, private :: QQ
integer, private :: iElem
integer, private :: iDir
integer, private :: iFld
integer, private :: nFields
integer, private :: offset
type(mus_scheme_type), private, pointer:: scheme
type(mus_varSys_data_type), private, pointer:: fPtr
real(kind=rk), private :: resi_coeff(varSys%nStateVars)
real(kind=rk), private :: phi
real(kind=rk), private :: mass_dens(varSys%nStateVars)
real(kind=rk), private :: massFraction(varSys%nStateVars)
real(kind=rk), private :: totMass_densInv
real(kind=rk), private :: molWeightInv(varSys%nStateVars)
real(kind=rk), private :: vel(3,varSys%nStateVars)
real(kind=rk), private :: eqVel(3)
real(kind=rk), private :: ucx
real(kind=rk), private :: usq
real(kind=rk), private :: weight0Inv
real(kind=rk), private :: molWeightMix