public recursive subroutine deriveShearStress(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Calculate the deviatoric shear stress for Newtonian fluid
(exclude pressure) (no mixtures).\n
Shear Stress depends on variable: nonEquilibirium

The formula is
where is the stress
in the -direction on a face normal to the -axis,\n
is the non-equilibirium density.\n
For more information, please refer to:\n
Krueger T, Varnik F, Raabe D. Shear stress in lattice Boltzmann
simulations. Physical Review E. 2009;79(4):1-14.\n
Thus this variable is dependent on another variable: nonEquilibirium.

For multi-level mesh, Omega on finer level needs to be adjusted in order to
get the correct shearstress calculation.\n
First, we defines c as the dx ratio between finer and coarse level.\n
Then the viscosity on the different levels must satisfy:\n
This constrain leads to a relationship of omega on different levels:\n
For more information, please refer to:\n
Manuel H, Harald K, Joerg B, Sabine R. Aeroacoustic validation of the
lattice boltzmann method on non-uniform grids. ECCOMAS 2012

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.

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

Nodes of different colours represent the following:

Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.