Cumulant kernel based on Geier2017 and optimized. Just omega(2) is given in input. 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. omega(6:10) = 1._rk
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 | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | :: | 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 |