51 {
52 using V = typename CELLS::template value_t<names::NavierStokes>::value_t;
53 using DESCRIPTOR = typename CELLS::template value_t<names::NavierStokes>::descriptor_t;
54
55 auto& cellNSE = cells.template get<names::NavierStokes>();
56 auto& cellADE = cells.template get<names::Temperature>();
57
58 V enthalpy = cellADE.computeRho();
59 auto& dynamics = cellADE.getDynamics();
60
61
62
63
64
65
66
67 auto temperature = cellADE.template getFieldPointer<descriptors::TEMPERATURE>();
68
69
70
71 auto force = cellNSE.template getFieldPointer<descriptors::FORCE>();
72 auto forcePrefactor =
parameters.template get<FORCE_PREFACTOR>();
73 V temperatureDifference = cellADE.computeRho() -
parameters.template get<T0>();
74 for (unsigned iD = 0; iD < DESCRIPTOR::d; ++iD) {
75 force[iD] = forcePrefactor[iD] * temperatureDifference;
76 }
77
78 V u[DESCRIPTOR::d] { };
79 cellNSE.computeU(u);
80 cellADE.template setField<descriptors::VELOCITY>(u);
81 }
meta::list< FORCE_PREFACTOR, T0, CP_S, CP_L, T_S, T_L, L > parameters