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;
89 void computeEquilibriumAniso(
Cell<T,DESCRIPTOR>& cell, std::array<T,DESCRIPTOR::q>& feq );
90 std::array<T,DESCRIPTOR::q> doCollision(
Cell<T,DESCRIPTOR>& cell, std::array<T,DESCRIPTOR::q>& feq );
93 std::array<std::array<T,DESCRIPTOR::q>, DESCRIPTOR::q>& _anisoMatrix;
Highest-level interface to Cell data.
CellStatistic< T > collide(Cell< T, DESCRIPTOR > &cell, LatticeStatistics< T > &statistics) override
Collision step.
T computeEquilibrium(int iPop, T rho, const T u[DESCRIPTOR::d], T uSqr) const override
Compute equilibrium distribution function.
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.
CellStatistic< T > collide(Cell< T, DESCRIPTOR > &cell, LatticeStatistics< T > &statistics) override
Collision step.
T getOmega() const
Get local relaxation parameter of the dynamics.
std::array< std::array< T, DESCRIPTOR::q >, DESCRIPTOR::q > & _anisoMatrix
T computeEquilibrium(int iPop, T rho, const T u[DESCRIPTOR::d], T uSqr) const override
Compute equilibrium distribution function.
void setOmega(T omega)
Set local relaxation parameter of the dynamics.
Top level namespace for all of OpenLB.
Return value of any collision.