Calculate the equlibrium of a given element number with the given input state vector.
The equilibrium distribution function is:\n where is the weight in each direction,\n is the macroscopic value of density,\n is the speed of sound,\n is the lattice unit velocity in each direction,\n is the macroscopic value of velocity.
The interface has to comply to the abstract interface tem_varSys_proc_element.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tem_varSys_op_type), | intent(in) | :: | fun | Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables. |
||
type(tem_varSys_type), | intent(in) | :: | varSys | The variable system to obtain the variable from. |
||
integer, | intent(in) | :: | elempos(:) | Position of the TreeID of the element to get the variable for in the global treeID list. |
||
type(tem_time_type), | intent(in) | :: | time | Point in time at which to evaluate the variable. |
||
type(treelmesh_type), | intent(in) | :: | tree | global treelm mesh info |
||
integer, | intent(in) | :: | nElems | Number of values to obtain for this variable (vectorized access). |
||
integer, | intent(in) | :: | nDofs | Number of degrees of freedom within an element. |
||
real(kind=rk), | intent(out) | :: | res(:) | Resulting values for the requested variable. Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | statePos | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | iComp | ||||
integer, | private | :: | iLevel | ||||
integer, | private | :: | iField | ||||
integer, | private | :: | iDir | ||||
integer, | private | :: | nFields | ||||
integer, | private | :: | iFld | ||||
type(mus_varSys_data_type), | private, | pointer | :: | fPtr | |||
type(mus_scheme_type), | private, | pointer | :: | scheme | |||
integer, | private | :: | pdfPos | ||||
integer, | private | :: | varPos | ||||
integer, | private | :: | |||||
real(kind=rk), | private, | allocatable | :: | tmpPDF(:) | |||
real(kind=rk), | private | :: | massFraction(varSys%nStateVars) | ||||
real(kind=rk), | private | :: | mass_dens(varSys%nStateVars) | ||||
real(kind=rk), | private | :: | press(varSys%nStateVars) | ||||
real(kind=rk), | private | :: | lambda(varSys%nStateVars) | ||||
real(kind=rk), | private | :: | pressMix | ||||
real(kind=rk), | private | :: | densMix | ||||
real(kind=rk), | private | :: | molWeightMix | ||||
real(kind=rk), | private | :: | first_moments(3,varSys%nStateVars) | ||||
real(kind=rk), | private | :: | momentum(3,varSys%nStateVars) | ||||
real(kind=rk), | private, | dimension(varSys%nStateVars) | :: | molWeight | |||
real(kind=rk), | private, | dimension(varSys%nStateVars) | :: | phi | |||
real(kind=rk), | private | :: | resi_coeff(varSys%nStateVars,varSys%nStateVars) | ||||
real(kind=rk), | private | :: | chi(varSys%nStateVars,varSys%nStateVars) | ||||
integer, | private | :: | iFieldDia | ||||
integer, | private | :: | iFieldNonDia | ||||
real(kind=rk), | private | :: | matrixA(varSys%nStateVars,varSys%nStateVars) | ||||
real(kind=rk), | private | :: | invA(varSys%nStateVars,varSys%nStateVars) | ||||
real(kind=rk), | private | :: | fEq(fun%nComponents) | ||||
real(kind=rk), | private | :: | vel(3,varSys%nStateVars) | ||||
real(kind=rk), | private | :: | eqVel(3) | ||||
real(kind=rk), | private | :: | ucx | ||||
real(kind=rk), | private | :: | usq | ||||
real(kind=rk), | private | :: | weight0Inv | ||||
integer, | private | :: | nSize | ||||
integer, | private | :: | stateVarMap(varSys%nStateVars) |