Hi,

I am trying to understand

static Smagorinsky model implemented in Palabos. As described in the documentation:

Quote

**In the Palabos implementation, the strain-rate is computed from the stress tensor \Pi.**

I could understand this from the relationship between the stress tensor and strain rate: Pi

^{neq}=-2c

_{s}^{2}*rho*tau*S.

However, when I look at the file

*/complexDynamics/smagorinskyDynamics.hh: *, I could not understand how the function

**computeOmega** calculates the omega_{total} where the code is

Language: C++

static T computeOmega(T omega0, T preFactor, T rhoBar, Array<T,SymmetricTensor<T,Descriptor>::n> const& PiNeq)
{
T PiNeqNormSqr = SymmetricTensor<T,Descriptor>::tensorNormSqr(PiNeq);
T PiNeqNorm = std::sqrt(PiNeqNormSqr);
T alpha = preFactor * Descriptor<T>::invRho(rhoBar);
T linearTerm = alpha*PiNeqNorm;
T squareTerm = (T)2*alpha*alpha*PiNeqNormSqr;
// In the following formula, the square-root appearing in the explicit form of
// omega is developed to second-order.
return omega0*(1-linearTerm+squareTerm);
}

.

This calculation seems to be a different form compared to the one in the paper by Hou, et al. (1994)

^{[1]} or the one by Krafczyk 2003

^{[2]}. If so, what is the benefits of this form?

Could anyone help explain this or provide any reference?

Thank you in advance.

With best,

Song

[1] Hou, et al. 1994, "A lattice Boltzmann subgrid model for high Reynolds number flows"

[2] Krafczyk 2003 "LARGE-EDDY SIMULATIONS WITH A MULTIPLE-RELAXATION-TIME LBE MODEL"