Implementation of LB collision model TRT [13].
Instead of providing two relaxation parameters, you can also provide one relaxation parameter omega and a "magic" number 'x'. The two relaxation parameters are then calculated as follows:
\[ \lambda_e = \omega \]
\[ x = ( \frac{1}{\lambda_e} - 0.5 )( \frac{1}{\lambda_d} - 0.5 ) \]
Good choices for 'x' are 3 / 16 (exact solution for Poiseuille flow with wall distance = 0.5 [12]) and around 1 / 4 (best stability).
|
| TRT (const real_t _lambda_e, const real_t _lambda_d, const uint_t _level=uint_t(0)) |
|
void | pack (mpi::SendBuffer &buffer) const |
|
void | unpack (mpi::RecvBuffer &buffer) |
|
void | configure (IBlock &block, StructuredBlockStorage &sbs) |
| Adapts the two relaxation parameters to the "right", level-dependent parameters once "configure" is called. More...
|
|
void | reset (const real_t _lambda_e, const real_t _lambda_d, const uint_t _lambda_level=uint_t(0)) |
| Only call this function if you know what you're doing (changes the viscosity!) "_lambda_level" is the level that corresponds to "_lambda_e" and "_lambda_d". More...
|
|
void | resetWithMagicNumber (const real_t _omega, const real_t _magicNumber=threeSixteenth, const uint_t omega_level=uint_t(0)) |
| Only call this function if you know what you're doing (changes the viscosity!) "omega_level" is the level that corresponds to "omega". More...
|
|
real_t | lambda_e () const |
|
real_t | lambda_d () const |
|
real_t | viscosity () const |
|
real_t | viscosity (const cell_idx_t, const cell_idx_t, const cell_idx_t) const |
|
real_t | omega () const |
|
real_t | omega (const cell_idx_t, const cell_idx_t, const cell_idx_t, const Vector3< real_t > &=Vector3< real_t >(), const real_t=real_t(1)) const |
|
real_t | omega_bulk () const |
|
real_t | omega_odd () const |
|
real_t | viscosity (const uint_t _level) const |
|
uint_t | level () const |
|