deriveEquilIncomp_FromMacro Subroutine

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

This routine computes equilbrium from density and velocity

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.


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



real(kind=rk), private :: fEq(layout%fStencil%QQ)
real(kind=rk), private :: vel(3)
real(kind=rk), private :: usq
real(kind=rk), private :: ucx
integer, private :: QQ
integer, private :: iElem
integer, private :: iDir