Advection relaxation routine for the BGK model with an explicit calculation of all equilibrium quantities. Slow and simple. This routine should only be used for testing purposes
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.
Generic fetching step: Streaming for pull Local copy for push relaxation parameter
Pre-calculate velocitiy terms
Calculate equilibrium distribution functions fEq
Relaxation
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 | :: | iDir | ||||
integer, | private | :: | |||||
integer, | private | :: | nScalars | ||||
real(kind=rk), | private | :: | pdfTmp(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | ux(3) | ||||
real(kind=rk), | private | :: | rho | ||||
real(kind=rk), | private | :: | usq | ||||
real(kind=rk), | private | :: | ucx | ||||
real(kind=rk), | private | :: | eqState(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | omega | ||||
integer, | private | :: | dens_pos | ||||
integer, | private | :: | vel_pos(3) | ||||
integer, | private | :: | elemOff |