461 {
462 using V = typename CELL::value_t;
463 using DESCRIPTOR = typename CELL::descriptor_t;
464
465 V phi = cell.template getFieldComponent<descriptors::STATISTIC>(0);
467 V laplacePhi = 0;
468
469 for (int iPop=0; iPop < DESCRIPTOR::q; ++iPop) {
473 }
474 auto w =
parameters.template get<descriptors::INTERFACE_WIDTH>();
475
476
481 V u[DESCRIPTOR::d] {};
482 cell.computeU(u);
483 V gradPhiSqr = 0;
484 for (int iD=0; iD < DESCRIPTOR::d; ++iD) {
485 gradPhiSqr += gradPhi[iD]*gradPhi[iD];
486 phiU[iD] = phi*u[iD];
487 }
488 if (gradPhiSqr >= 1e-28) {
490 }
491
492 old_phiU = cell.template getField<descriptors::OLD_PHIU>();
493 cell.template setField<descriptors::OLD_PHIU>(phiU);
494 V lambda = 4*phi*(1.-phi)/w;
496 cell.template setField<descriptors::FORCE>(forceAC);
497 }
constexpr T invCs2() any_platform
constexpr T t(unsigned iPop, tag::CUM) any_platform
constexpr int c(unsigned iPop, unsigned iDim) any_platform
Vector(T &&t, Ts &&... ts) -> Vector< std::remove_cvref_t< T >, 1+sizeof...(Ts)>
meta::list< descriptors::INTERFACE_WIDTH > parameters