cumulant_d3q27_extended_generic Subroutine

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

Cumulant based on Geier2017 paper. With all modifications and limiters. All omegas are given in input. When omega(N) = -1 means adjusted in this routine. omega(2)=-1 means omega2=omegaBulk. Limiters read from input. lim(N)=10^10 means unlimited. lim(N) is for omega(N+2). Just omega(3:5) are limited as in the paper.

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.


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


proc~~cumulant_d3q27_extended_generic~~CallsGraph proc~cumulant_d3q27_extended_generic cumulant_d3q27_extended_generic proc~weights_from_layout weights_from_layout proc~cumulant_d3q27_extended_generic->proc~weights_from_layout proc~weights_ijg weights_ijg proc~cumulant_d3q27_extended_generic->proc~weights_ijg proc~kum_i_bg kum_i_bg proc~cumulant_d3q27_extended_generic->proc~kum_i_bg proc~kpc_ij_g kpc_ij_g proc~cumulant_d3q27_extended_generic->proc~kpc_ij_g proc~kum_ij_g kum_ij_g proc~cumulant_d3q27_extended_generic->proc~kum_ij_g proc~kpc_i_bg kpc_i_bg proc~cumulant_d3q27_extended_generic->proc~kpc_i_bg proc~kpc_ijk kpc_ijk proc~cumulant_d3q27_extended_generic->proc~kpc_ijk proc~weights_ibg weights_ibg proc~cumulant_d3q27_extended_generic->proc~weights_ibg proc~weights_abg weights_abg proc~cumulant_d3q27_extended_generic->proc~weights_abg proc~kum_abg kum_abg proc~cumulant_d3q27_extended_generic->proc~kum_abg



integer, private :: iElem
integer, private :: ii
integer, private :: jj
integer, private :: kk
integer, private :: nScalars
real(kind=rk), private :: ux
real(kind=rk), private :: uy
real(kind=rk), private :: uz
real(kind=rk), private :: rho
real(kind=rk), private :: inv_rho
real(kind=rk), private :: inv_rho_sq
real(kind=rk), private :: delta_rho
real(kind=rk), private :: A
real(kind=rk), private :: B
real(kind=rk), private :: dxu
real(kind=rk), private :: dyv
real(kind=rk), private :: dzw
real(kind=rk), private :: Dxvyu
real(kind=rk), private :: Dxwzu
real(kind=rk), private :: Dywzv
real(kind=rk), private :: AA
real(kind=rk), private :: BB
real(kind=rk), private :: CC
real(kind=rk), private :: par_omega1
real(kind=rk), private :: f(-1:1,-1:1,-1:1)
real(kind=rk), private :: w(-1:1,-1:1,-1:1)
real(kind=rk), private :: w_i_bg(-1:1,0:2,0:2)
real(kind=rk), private :: w_abg(0:2,0:2,0:2)
real(kind=rk), private :: w_ij_g(-1:1,-1:1,0:2)
real(kind=rk), private :: k_i_bg(-1:1,0:2,0:2)
real(kind=rk), private :: k_ij_g(-1:1,-1:1,0:2)
real(kind=rk), private :: k(0:2,0:2,0:2)
real(kind=rk), private :: c(0:2,0:2,0:2)
real(kind=rk), private :: omega(10)
real(kind=rk), private :: omega_diff
integer, private :: dens_pos
integer, private :: vel_pos(3)
integer, private :: elemOff
type(mus_gradData_type), private, pointer:: gradData

gradient data

type(mus_varSys_data_type), private, pointer:: fPtr
type(mus_scheme_type), private, pointer:: scheme
real(kind=rk), private :: gradXXU(3,1)
real(kind=rk), private :: inv_omega1
real(kind=rk), private :: omega_lim
real(kind=rk), private :: omega_lim_vec(3)
real(kind=rk), private :: comp_omega1
real(kind=rk), private :: par_omega1_2