mrt_advRel_d2q9 Subroutine

public subroutine mrt_advRel_d2q9(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Advection relaxation routine for the D2Q9 MRT model f( x+c, t+1 ) = f(x,t) - M^(-1)S( m - meq )

This subroutine interface must match the abstract interface definition kernel in scheme/mus_scheme_type_module.f90 in order to be callable via compute function pointer.

Arguments

TypeIntentOptionalAttributesName
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

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

current layout

type(mus_param_type), intent(in) :: params

global parameters

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

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields


Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iElem
real(kind=rk), private :: f1
real(kind=rk), private :: f2
real(kind=rk), private :: f3
real(kind=rk), private :: f4
real(kind=rk), private :: f5
real(kind=rk), private :: f6
real(kind=rk), private :: f7
real(kind=rk), private :: f8
real(kind=rk), private :: f9
real(kind=rk), private :: fneq1
real(kind=rk), private :: fneq2
real(kind=rk), private :: fneq3
real(kind=rk), private :: fneq4
real(kind=rk), private :: fneq5
real(kind=rk), private :: fneq6
real(kind=rk), private :: fneq7
real(kind=rk), private :: fneq8
real(kind=rk), private :: fneq9
real(kind=rk), private :: mom2
real(kind=rk), private :: mom3
real(kind=rk), private :: mom5
real(kind=rk), private :: mom7
real(kind=rk), private :: mom8
real(kind=rk), private :: mom9
real(kind=rk), private :: meq2
real(kind=rk), private :: meq3
real(kind=rk), private :: meq8
real(kind=rk), private :: meq9
real(kind=rk), private :: mneq2
real(kind=rk), private :: mneq3
real(kind=rk), private :: mneq5
real(kind=rk), private :: mneq7
real(kind=rk), private :: mneq8
real(kind=rk), private :: mneq9
real(kind=rk), private :: s_mrt(9)
real(kind=rk), private :: omegaBulk
real(kind=rk), private :: rho
real(kind=rk), private :: ux
real(kind=rk), private :: uy
real(kind=rk), private :: u2
real(kind=rk), private :: v2
integer, private :: dens_pos
integer, private :: vel_pos(2)
integer, private :: elemOff