Update state with source variable "force". Force term used here is from: "Discrete lattice effects on the forcing term in the lattice Boltzmann method", Zhaoli Guo, Chugung Zheng and Baochang Shi. In the paper, use force term is referred as Method 2 as: Force must be defined as body force per unit volume KM: If this force formula is used then velocity needs to be computed as u = \sum c_i f_i + \vec{F}/2
Simuilar to derive routine but it updates the state whereas derive is used for tracking.
This subroutine's interface must match the abstract interface definition proc_apply_source in derived/mus_source_type_module.f90 in order to be callable via applySrc function pointer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mus_source_op_type), | intent(in) | :: | fun | Description of method to apply source terms |
||
real(kind=rk), | intent(in) | :: | inState(:) | input pdf vector |
||
real(kind=rk), | intent(inout) | :: | outState(:) | output pdf vector |
||
integer, | intent(in) | :: | neigh(:) | connectivity Array corresponding to state vector |
||
real(kind=rk), | intent(in) | :: | auxField(:) | auxField array |
||
integer, | intent(in) | :: | nPdfSize | number of elements in state Array |
||
integer, | intent(in) | :: | iLevel | current level |
||
type(tem_varSys_type), | intent(in) | :: | varSys | variable system |
||
type(tem_time_type), | intent(in) | :: | time | Point in time at which to evaluate the variable. |
||
type(mus_convertFac_type), | intent(in) | :: | phyConvFac | Physics conversion factor for current level |
||
type(mus_derVarPos_type), | intent(in) | :: | derVarPos(:) | position of derived quantities in varsys |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(mus_varSys_data_type), | private, | pointer | :: | fPtr | |||
type(mus_scheme_type), | private, | pointer | :: | scheme | |||
real(kind=rk), | private | :: | forceField(fun%elemLvl(iLevel)%nElems*3) | ||||
real(kind=rk), | private | :: | G(3) | ||||
real(kind=rk), | private | :: | velocity(3) | ||||
real(kind=rk), | private | :: | ucx | ||||
real(kind=rk), | private | :: | uMinusCX(3) | ||||
real(kind=rk), | private | :: | forceTerm | ||||
integer, | private | :: | nElems | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | iDir | ||||
integer, | private | :: | |||||
integer, | private | :: | nScalars | ||||
integer, | private | :: | posInTotal | ||||
integer, | private | :: | statePos | ||||
integer, | private | :: | elemOff | ||||
integer, | private | :: | vel_pos(3) | ||||
real(kind=rk), | private | :: | omega | ||||
real(kind=rk), | private | :: | omega_fac |