28#ifndef RTLBM_DYNAMICS_H
29#define RTLBM_DYNAMICS_H
45template<
typename T,
typename DESCRIPTOR,
typename MOMENTA=momenta::BulkTuple>
53 RTLBMdynamicsMcHardy( T latticeAbsorption, T latticeScattering, std::array<std::array<T,DESCRIPTOR::q>, DESCRIPTOR::q>& anisoMatrix );
55 T
computeEquilibrium(
int iPop, T rho,
const T u[DESCRIPTOR::d], T uSqr )
const override;
67 std::array<std::array<T,DESCRIPTOR::q>, DESCRIPTOR::q>&
_anisoMatrix;
70template<
typename T,
typename DESCRIPTOR,
typename MOMENTA=momenta::BulkTuple>
73 static_assert(DESCRIPTOR::template provides<descriptors::tag::RTLBM>(),
"Must be RTLBM");
79 RTLBMdynamicsMcHardyRK( T latticeAbsorption, T latticeScattering, std::array<std::array<T,DESCRIPTOR::q>, DESCRIPTOR::q>& anisoMatrix );
81 T
computeEquilibrium(
int iPop, T rho,
const T u[DESCRIPTOR::d], T uSqr )
const override;
93 std::array<std::array<T,DESCRIPTOR::q>, DESCRIPTOR::q>& _anisoMatrix;
Top level namespace for all of OpenLB.
Return value of any collision.
CellStatistic< V > collide(CELL &cell, PARAMETERS ¶meters) any_platform
void computeEquilibriumAniso(CELL &cell, Vector< V, DESCRIPTOR::q > &feq, MATRIX &anisoMatrix) const
void computeEquilibrium(ConstCell< T, DESCRIPTOR > &cell, T irradiance, const T u[DESCRIPTOR::d], T fEq[DESCRIPTOR::q]) const override
Return iPop equilibrium for given first and second momenta.
VECTOR doCollision(CELL &cell, VECTOR &feq, V absorption, V scattering) const
void setOmega(T omega)
Set local relaxation parameter of the dynamics.
RTLBMdynamicsMcHardyRK(T latticeAbsorption, T latticeScattering, std::array< std::array< T, DESCRIPTOR::q >, DESCRIPTOR::q > &anisoMatrix)
Constructor.
T getOmega() const
Get local relaxation parameter of the dynamics.
Solves RTE according Christopher McHardy et al 2016.
RTLBMdynamicsMcHardy(T latticeAbsorption, T latticeScattering, std::array< std::array< T, DESCRIPTOR::q >, DESCRIPTOR::q > &anisoMatrix)
Constructor.
void computeEquilibrium(ConstCell< T, DESCRIPTOR > &cell, T irradiance, const T u[DESCRIPTOR::d], T fEq[DESCRIPTOR::q]) const override
Return iPop equilibrium for given first and second momenta.
CellStatistic< V > collide(CELL &cell, PARAMETERS ¶meters) any_platform
T getOmega() const
Get local relaxation parameter of the dynamics.
std::array< std::array< T, DESCRIPTOR::q >, DESCRIPTOR::q > & _anisoMatrix
void setOmega(T omega)
Set local relaxation parameter of the dynamics.