38 static T
equilibrium(
int iPop, T rho,
const T u[DESCRIPTOR::d])
41 const T invCs =
util::sqrt(descriptors::invCs2<T,L>());
44 for (
int iD=0; iD < DESCRIPTOR::d; ++iD) {
50 descriptors::c<L>(iPop,iD)/sqt3*invCs);
52 return rho*descriptors::t<T,L>(iPop)*prod-descriptors::t<T,L>(iPop);
60 T uSqr = util::normSqr<T,L::d>(u);
62 for (
int iD=0; iD < DESCRIPTOR::d; ++iD) {
63 cu += descriptors::c<L>(iPop,iD)*u[iD];
66 return rho * descriptors::t<T,L>(iPop) * (1.0 +
67 cu*descriptors::invCs2<T,L>() - 0.5 * uSqr*descriptors::invCs2<T,L>() + 0.5*
util::pow(descriptors::invCs2<T,L>(),2)*cu*cu
69 + 0.125*uSqr*uSqr*
util::pow(descriptors::invCs2<T,L>(),2) - 0.25*cu*cu*uSqr*
util::pow(descriptors::invCs2<T,L>(),3)
70 +
util::pow(cu,4)*
util::pow(descriptors::invCs2<T,L>(),4)/24.0)-descriptors::t<T,L>(iPop);