bgk_improved_advRel_d3q27 Subroutine

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

Improved BGK model (with Galilean correction term) taken from Martin Geier cumulent paper 2015 Geier, M., Schönherr, M., Pasquali, A., & Krafczyk, M. (2015). The cumulant lattice Boltzmann equation in three dimensions : Theory and validation. Computers and Mathematics with Applications.

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 :: f(-1:1,-1:1,-1:1)
real(kind=rk), private :: u
real(kind=rk), private :: v
real(kind=rk), private :: w
real(kind=rk), private :: u2
real(kind=rk), private :: v2
real(kind=rk), private :: w2
real(kind=rk), private :: rho
real(kind=rk), private :: rho_omg
real(kind=rk), private :: inv_rho
real(kind=rk), private :: omega
real(kind=rk), private :: cmpl_o
real(kind=rk), private :: fac
real(kind=rk), private :: sumX1
real(kind=rk), private :: sumXN
real(kind=rk), private :: X0
real(kind=rk), private :: X1
real(kind=rk), private :: XN
real(kind=rk), private :: sumY1
real(kind=rk), private :: sumYN
real(kind=rk), private :: Y0
real(kind=rk), private :: Y1
real(kind=rk), private :: YN
real(kind=rk), private :: sumZ1
real(kind=rk), private :: sumZN
real(kind=rk), private :: Z0
real(kind=rk), private :: Z1
real(kind=rk), private :: ZN
real(kind=rk), private :: m200
real(kind=rk), private :: m020
real(kind=rk), private :: m002
real(kind=rk), private :: Gx
real(kind=rk), private :: Gy
real(kind=rk), private :: Gz
real(kind=rk), private :: x0y0
real(kind=rk), private :: x0y1
real(kind=rk), private :: x0yn
real(kind=rk), private :: x1y0
real(kind=rk), private :: xny0
real(kind=rk), private :: x1y1
real(kind=rk), private :: x1yn
real(kind=rk), private :: xny1
real(kind=rk), private :: xnyn
integer, private :: dens_pos
integer, private :: vel_pos(3)
integer, private :: elemOff