Hi,

I am trying to understand static Smagorinsky model implemented in Palabos. As described in the documentation:

I could understand this from the relationship between the stress tensor and strain rate: Pi[sup]neq[/sup]=-2c[sub]s[/sub][sup]2[/sup]*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

[code=“cpp”]

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::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)[sup][1][/sup] or the one by Krafczyk 2003[sup][2][/sup]. 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"
```