24#ifndef DYNAMICS_COLLISION_MODIFIERS_H
25#define DYNAMICS_COLLISION_MODIFIERS_H
35template <
typename PARAMETER,
typename COLLISION>
37 using parameters =
typename COLLISION::parameters::template include<PARAMETER>;
40 return "ParameterFromCell<" + COLLISION::getName() +
">";
43 template <
typename DESCRIPTOR,
typename MOMENTA,
typename EQUILIBRIUM>
47 template <CONCEPT(MinimalCell) CELL,
typename PARAMETERS,
typename V=
typename CELL::value_t>
50 cell.template getField<PARAMETER>());
57template <
typename COLLISION>
61template <
typename COLLISION>
63 using parameters =
typename COLLISION::parameters::template include<
68 return "OmegaFromCellTauEff<" + COLLISION::getName() +
">";
71 template <
typename DESCRIPTOR,
typename MOMENTA,
typename EQUILIBRIUM>
75 template <CONCEPT(MinimalCell) CELL,
typename PARAMETERS,
typename V=
typename CELL::value_t>
78 V{1} / cell.template getField<descriptors::TAU_EFF>());
85template <
typename COLLISION>
87 using parameters =
typename COLLISION::parameters::template include<descriptors::LATTICE_TIME>;
90 return "TrackAverageVelocity<" + COLLISION::getName() +
">";
93 template <
typename DESCRIPTOR,
typename MOMENTA,
typename EQUILIBRIUM>
98 template <CONCEPT(MinimalCell) CELL,
typename PARAMETERS,
typename V=
typename CELL::value_t>
105 std::size_t iT =
parameters.template get<descriptors::LATTICE_TIME>();
106 auto uAvg = cell.template getField<descriptors::AVERAGE_VELOCITY>();
107 cell.template setField<descriptors::AVERAGE_VELOCITY>((uAvg * (iT-1) + u) / iT);
Top level namespace for all of OpenLB.
Return value of any collision.
CellStatistic< V > apply(CELL &cell, PARAMETERS ¶meters) any_platform
typename COLLISION::template type< DESCRIPTOR, MOMENTA, EQUILIBRIUM > CollisionO
Override COLLISION parameter OMEGA with inverse of cell field TAU_EFF.
static std::string getName()
typename COLLISION::parameters::template include< descriptors::OMEGA > parameters
CellStatistic< V > apply(CELL &cell, PARAMETERS ¶meters) any_platform
typename COLLISION::template type< DESCRIPTOR, MOMENTA, EQUILIBRIUM > CollisionO
Override COLLISION parameter PARAMETER with cell field PARAMETER.
static std::string getName()
typename COLLISION::parameters::template include< PARAMETER > parameters
typename COLLISION::template type< DESCRIPTOR, MOMENTA, EQUILIBRIUM > CollisionO
typename MOMENTA::template type< DESCRIPTOR > MomentaF
CellStatistic< V > apply(CELL &cell, PARAMETERS ¶meters) any_platform
Track time-averaged velocity of COLLISION into cell field AVERAGE_VELOCITY.
static std::string getName()
typename COLLISION::parameters::template include< descriptors::LATTICE_TIME > parameters