bgk_advRel_d3q19 Subroutine

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

Advection relaxation routine for the D3Q19 model with BGK.

The number of floating point operation in this routine is 160 roughly.

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
integer, private :: nScalars
real(kind=rk), private :: fN00
real(kind=rk), private :: f0N0
real(kind=rk), private :: f00N
real(kind=rk), private :: f100
real(kind=rk), private :: f010
real(kind=rk), private :: f001
real(kind=rk), private :: f0NN
real(kind=rk), private :: f0N1
real(kind=rk), private :: f01N
real(kind=rk), private :: f011
real(kind=rk), private :: fN0N
real(kind=rk), private :: f10N
real(kind=rk), private :: fN01
real(kind=rk), private :: f101
real(kind=rk), private :: fNN0
real(kind=rk), private :: fN10
real(kind=rk), private :: f1N0
real(kind=rk), private :: f110
real(kind=rk), private :: f000
real(kind=rk), private :: rho
real(kind=rk), private :: u_x
real(kind=rk), private :: u_y
real(kind=rk), private :: u_z
real(kind=rk), private :: usq
real(kind=rk), private :: usqn
real(kind=rk), private :: usqn_o1
real(kind=rk), private :: usqn_o2
real(kind=rk), private :: omega_2
real(kind=rk), private :: cmpl_o
real(kind=rk), private :: omega
real(kind=rk), private :: coeff_1
real(kind=rk), private :: coeff_2
real(kind=rk), private :: ui1
real(kind=rk), private :: ui3
real(kind=rk), private :: ui10
real(kind=rk), private :: ui11
real(kind=rk), private :: ui12
real(kind=rk), private :: ui13
real(kind=rk), private :: fac_1
real(kind=rk), private :: fac_2
real(kind=rk), private :: fac_3
real(kind=rk), private :: fac_4
real(kind=rk), private :: fac_9
real(kind=rk), private :: fac_10
real(kind=rk), private :: fac_11
real(kind=rk), private :: fac_12
real(kind=rk), private :: fac_13
real(kind=rk), private :: sum1_1
real(kind=rk), private :: sum1_2
real(kind=rk), private :: sum2_1
real(kind=rk), private :: sum2_2
real(kind=rk), private :: sum3_1
real(kind=rk), private :: sum3_2
real(kind=rk), private :: sum4_1
real(kind=rk), private :: sum4_2
real(kind=rk), private :: sum9_1
real(kind=rk), private :: sum9_2
real(kind=rk), private :: sum10_1
real(kind=rk), private :: sum10_2
real(kind=rk), private :: sum11_1
real(kind=rk), private :: sum11_2
real(kind=rk), private :: sum12_1
real(kind=rk), private :: sum12_2
real(kind=rk), private :: sum13_1
real(kind=rk), private :: sum13_2
integer, private :: dens_pos
integer, private :: vel_pos(3)
integer, private :: elemOff