deriveEquil_FromMacro_IsothermAcEq Subroutine

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

This routine computes equilbrium from density and velocity This must comply with interface in 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.


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 :: rho
real(kind=rk), private :: u_x
real(kind=rk), private :: u_y
real(kind=rk), private :: u_z
integer, private :: QQ
integer, private :: iElem
type(mus_varSys_data_type), private, pointer:: fPtr
type(mus_scheme_type), private, pointer:: scheme