bgk_advRel_forcing Subroutine

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

Advection relaxation routine for the BGK model.

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 :: iDir
integer, private :: QQ
integer, private :: nScalars
real(kind=rk), private :: pdfTmp(layout%fStencil%QQ)
real(kind=rk), private :: rho
real(kind=rk), private :: force(layout%fStencil%QQ)
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