walberla::lbm::collision_model::D3Q19MRT Class Reference

Detailed Description

Implementation of LB collision model MRT [9].

Instead of providing all relaxation parameters, you can also provide just two. There are two variants, one that matches TRT [13] and one by Pan et al. [24]. Only works with D3Q19!

#include <CollisionModel.h>

Public Types

using tag = MRT_tag
 

Public Member Functions

 D3Q19MRT (const real_t _s1, const real_t _s2, const real_t _s4, const real_t _s9, const real_t _s10, const real_t _s16, const uint_t _level=uint_t(0))
 { 0, _s1, _s2, 0, _s4, 0, _s4, 0, _s4, _s9, _s10, _s9, _s10, _s9, _s9, _s9, _s16, _s16, _s16 } { 0, s_e, s_eps, 0, s_q, 0, s_q, 0, s_q, s_nu, s_pi, s_nu, s_pi, s_nu, s_nu, s_nu, s_m, s_m, s_m } More...
 
void pack (mpi::SendBuffer &buffer) const
 
void unpack (mpi::RecvBuffer &buffer)
 
void configure (IBlock &block, StructuredBlockStorage &sbs)
 Adapts the relaxation parameters to the "right", level-dependent parameters once "configure" is called. More...
 
real_t s0 () const
 
real_t s1 () const
 
real_t s2 () const
 
real_t s3 () const
 
real_t s4 () const
 
real_t s5 () const
 
real_t s6 () const
 
real_t s7 () const
 
real_t s8 () const
 
real_t s9 () const
 
real_t s10 () const
 
real_t s11 () const
 
real_t s12 () const
 
real_t s13 () const
 
real_t s14 () const
 
real_t s15 () const
 
real_t s16 () const
 
real_t s17 () const
 
real_t s18 () const
 
real_t s (const uint_t index) const
 
real_t s_e () const
 
real_t s_eps () const
 
real_t s_q () const
 
real_t s_nu () const
 
real_t s_pi () const
 
real_t s_m () 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
 
real_t viscosity (const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
real_t viscosity (const uint_t _level) const
 
uint_t level () const
 

Static Public Member Functions

static D3Q19MRT constructPan (const real_t lambda_e, const real_t lambda_d, const uint_t _level=uint_t(0))
 
static D3Q19MRT constructPanWithMagicNumber (const real_t omega, const real_t magicNumber=threeSixteenth, const uint_t _level=uint_t(0))
 Model by Pan et al., An evaluation of lattice Boltzmann schemes for porous medium flow simulation. http://dx.doi.org/10.1016/j.compfluid.2005.03.008. More...
 
static D3Q19MRT constructTRT (const real_t lambda_e, const real_t lambda_d, const uint_t _level=uint_t(0))
 Supposed to be identical to TRT ! More...
 
static D3Q19MRT constructTRTWithMagicNumber (const real_t omega, const real_t magicNumber=threeSixteenth, const uint_t _level=uint_t(0))
 

Static Public Attributes

static const real_t threeSixteenth = real_t(3) / real_t(16)
 

Private Member Functions

 D3Q19MRT ()
 
void initTRT (const real_t lambda_e, const real_t lambda_d, const uint_t _level=uint_t(0))
 
void initPan (const real_t lambda_e, const real_t lambda_d, const uint_t _level=uint_t(0))
 

Private Attributes

real_t s_ [19]
 
real_t viscosity_
 
uint_t level_
 

Member Typedef Documentation

◆ tag

Constructor & Destructor Documentation

◆ D3Q19MRT() [1/2]

walberla::lbm::collision_model::D3Q19MRT::D3Q19MRT ( const real_t  _s1,
const real_t  _s2,
const real_t  _s4,
const real_t  _s9,
const real_t  _s10,
const real_t  _s16,
const uint_t  _level = uint_t(0) 
)
inline

{ 0, _s1, _s2, 0, _s4, 0, _s4, 0, _s4, _s9, _s10, _s9, _s10, _s9, _s9, _s9, _s16, _s16, _s16 } { 0, s_e, s_eps, 0, s_q, 0, s_q, 0, s_q, s_nu, s_pi, s_nu, s_pi, s_nu, s_nu, s_nu, s_m, s_m, s_m }

◆ D3Q19MRT() [2/2]

walberla::lbm::collision_model::D3Q19MRT::D3Q19MRT ( )
inlineprivate

Member Function Documentation

◆ configure()

void walberla::lbm::collision_model::D3Q19MRT::configure ( IBlock block,
StructuredBlockStorage sbs 
)
inline

Adapts the relaxation parameters to the "right", level-dependent parameters once "configure" is called.

◆ constructPan()

static D3Q19MRT walberla::lbm::collision_model::D3Q19MRT::constructPan ( const real_t  lambda_e,
const real_t  lambda_d,
const uint_t  _level = uint_t(0) 
)
inlinestatic

◆ constructPanWithMagicNumber()

static D3Q19MRT walberla::lbm::collision_model::D3Q19MRT::constructPanWithMagicNumber ( const real_t  omega,
const real_t  magicNumber = threeSixteenth,
const uint_t  _level = uint_t(0) 
)
inlinestatic

Model by Pan et al., An evaluation of lattice Boltzmann schemes for porous medium flow simulation. http://dx.doi.org/10.1016/j.compfluid.2005.03.008.

◆ constructTRT()

static D3Q19MRT walberla::lbm::collision_model::D3Q19MRT::constructTRT ( const real_t  lambda_e,
const real_t  lambda_d,
const uint_t  _level = uint_t(0) 
)
inlinestatic

Supposed to be identical to TRT !

◆ constructTRTWithMagicNumber()

static D3Q19MRT walberla::lbm::collision_model::D3Q19MRT::constructTRTWithMagicNumber ( const real_t  omega,
const real_t  magicNumber = threeSixteenth,
const uint_t  _level = uint_t(0) 
)
inlinestatic

◆ initPan()

void walberla::lbm::collision_model::D3Q19MRT::initPan ( const real_t  lambda_e,
const real_t  lambda_d,
const uint_t  _level = uint_t(0) 
)
inlineprivate

◆ initTRT()

void walberla::lbm::collision_model::D3Q19MRT::initTRT ( const real_t  lambda_e,
const real_t  lambda_d,
const uint_t  _level = uint_t(0) 
)
inlineprivate

◆ level()

uint_t walberla::lbm::collision_model::D3Q19MRT::level ( ) const
inline

◆ omega() [1/2]

real_t walberla::lbm::collision_model::D3Q19MRT::omega ( ) const
inline

◆ omega() [2/2]

real_t walberla::lbm::collision_model::D3Q19MRT::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
inline

◆ omega_bulk()

real_t walberla::lbm::collision_model::D3Q19MRT::omega_bulk ( ) const
inline

◆ omega_odd()

real_t walberla::lbm::collision_model::D3Q19MRT::omega_odd ( ) const
inline

◆ pack()

void walberla::lbm::collision_model::D3Q19MRT::pack ( mpi::SendBuffer buffer) const
inline

◆ s()

real_t walberla::lbm::collision_model::D3Q19MRT::s ( const uint_t  index) const
inline

◆ s0()

real_t walberla::lbm::collision_model::D3Q19MRT::s0 ( ) const
inline

◆ s1()

real_t walberla::lbm::collision_model::D3Q19MRT::s1 ( ) const
inline

◆ s10()

real_t walberla::lbm::collision_model::D3Q19MRT::s10 ( ) const
inline

◆ s11()

real_t walberla::lbm::collision_model::D3Q19MRT::s11 ( ) const
inline

◆ s12()

real_t walberla::lbm::collision_model::D3Q19MRT::s12 ( ) const
inline

◆ s13()

real_t walberla::lbm::collision_model::D3Q19MRT::s13 ( ) const
inline

◆ s14()

real_t walberla::lbm::collision_model::D3Q19MRT::s14 ( ) const
inline

◆ s15()

real_t walberla::lbm::collision_model::D3Q19MRT::s15 ( ) const
inline

◆ s16()

real_t walberla::lbm::collision_model::D3Q19MRT::s16 ( ) const
inline

◆ s17()

real_t walberla::lbm::collision_model::D3Q19MRT::s17 ( ) const
inline

◆ s18()

real_t walberla::lbm::collision_model::D3Q19MRT::s18 ( ) const
inline

◆ s2()

real_t walberla::lbm::collision_model::D3Q19MRT::s2 ( ) const
inline

◆ s3()

real_t walberla::lbm::collision_model::D3Q19MRT::s3 ( ) const
inline

◆ s4()

real_t walberla::lbm::collision_model::D3Q19MRT::s4 ( ) const
inline

◆ s5()

real_t walberla::lbm::collision_model::D3Q19MRT::s5 ( ) const
inline

◆ s6()

real_t walberla::lbm::collision_model::D3Q19MRT::s6 ( ) const
inline

◆ s7()

real_t walberla::lbm::collision_model::D3Q19MRT::s7 ( ) const
inline

◆ s8()

real_t walberla::lbm::collision_model::D3Q19MRT::s8 ( ) const
inline

◆ s9()

real_t walberla::lbm::collision_model::D3Q19MRT::s9 ( ) const
inline

◆ s_e()

real_t walberla::lbm::collision_model::D3Q19MRT::s_e ( ) const
inline

◆ s_eps()

real_t walberla::lbm::collision_model::D3Q19MRT::s_eps ( ) const
inline

◆ s_m()

real_t walberla::lbm::collision_model::D3Q19MRT::s_m ( ) const
inline

◆ s_nu()

real_t walberla::lbm::collision_model::D3Q19MRT::s_nu ( ) const
inline

◆ s_pi()

real_t walberla::lbm::collision_model::D3Q19MRT::s_pi ( ) const
inline

◆ s_q()

real_t walberla::lbm::collision_model::D3Q19MRT::s_q ( ) const
inline

◆ unpack()

void walberla::lbm::collision_model::D3Q19MRT::unpack ( mpi::RecvBuffer buffer)
inline

◆ viscosity() [1/3]

real_t walberla::lbm::collision_model::D3Q19MRT::viscosity ( ) const
inline

◆ viscosity() [2/3]

real_t walberla::lbm::collision_model::D3Q19MRT::viscosity ( const  cell_idx_t,
const  cell_idx_t,
const  cell_idx_t 
) const
inline

◆ viscosity() [3/3]

real_t walberla::lbm::collision_model::D3Q19MRT::viscosity ( const uint_t  _level) const
inline

Member Data Documentation

◆ level_

uint_t walberla::lbm::collision_model::D3Q19MRT::level_
private

◆ s_

real_t walberla::lbm::collision_model::D3Q19MRT::s_[19]
private

◆ threeSixteenth

const real_t walberla::lbm::collision_model::D3Q19MRT::threeSixteenth = real_t(3) / real_t(16)
static

◆ viscosity_

real_t walberla::lbm::collision_model::D3Q19MRT::viscosity_
private

The documentation for this class was generated from the following files: