derive_FromMacro Abstract Interface

abstract interface
private subroutine derive_FromMacro(density, velocity, iField, nElems, varSys, layout, res)


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

Array of density. Single species: dens_1, dens_2 .. dens_n multispecies: dens_1_sp1, dens_1_sp2, dens_2_sp1, dens_2_sp2 ... dens_n_sp1, dens_n_sp2 Access: (iElem-1)*nFields + iField

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

Array of velocity. Size: (3, nnFields) Access: ( iComp, (iElem-1)nFields + iField )

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


interface to derive equilibrium from macro. Mainly used in initial condition and boundary condition routines to avoid dublication of routines between different scheme kinds. In this interface, solver definition can be access via varSys%method%val(1)%method_data c_ptr