walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T > Class Template Reference

Detailed Description

template<typename LatticeModel_T, typename FlagField_T, typename ParticleAccessor_T>
class walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >

Bounce back boundary handling for moving particles.

This boundary condition implements the bounce back scheme to model a no-slip boundary condition for moving particles

#include <SimpleBB.h>

+ Inheritance diagram for walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >:

Public Member Functions

 SimpleBB (const BoundaryUID &boundaryUID, const FlagUID &uid, PDFField_T *const pdfField, const FlagField_T *const flagField, ParticleField_T *const particleField, const shared_ptr< ParticleAccessor_T > &ac, const flag_t domain, const StructuredBlockStorage &blockStorage, const IBlock &block, std::function< real_t(const Vector3< real_t > &)> hydrostaticDensityFct=nullptr)
 
void pushFlags (std::vector< FlagUID > &uids) const
 
void beforeBoundaryTreatment () const
 
void afterBoundaryTreatment () const
 
template<typename Buffer_T >
void packCell (Buffer_T &, const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
template<typename Buffer_T >
void registerCell (Buffer_T &, const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t)
 
void registerCell (const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t, const BoundaryConfiguration &)
 
void registerCells (const flag_t, const CellInterval &, const BoundaryConfiguration &)
 
template<typename CellIterator >
void registerCells (const flag_t, const CellIterator &, const CellIterator &, const BoundaryConfiguration &)
 
void unregisterCell (const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
void treatDirection (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const stencil::Direction dir, const cell_idx_t nx, const cell_idx_t ny, const cell_idx_t nz, const flag_t mask)
 
- Public Member Functions inherited from walberla::boundary::Boundary< flag_t >
 Boundary (const BoundaryUID &boundaryUID)
 
void setMask (const flag_t mask)
 
flag_t getMask () const
 
const BoundaryUIDgetUID () const
 

Static Public Member Functions

static shared_ptr< BoundaryConfigurationcreateConfiguration (const Config::BlockHandle &)
 

Private Types

using PDFField_T = lbm::PdfField< LatticeModel_T >
 
using Stencil_T = typename LatticeModel_T::Stencil
 
using flag_t = typename FlagField_T::flag_t
 

Private Attributes

const FlagUID uid_
 
PDFField_T *const pdfField_
 
const FlagField_T *const flagField_
 
ParticleField_T *const particleField_
 
shared_ptr< ParticleAccessor_T > ac_
 
flag_t domainMask_
 
const StructuredBlockStorageblockStorage_
 
const IBlockblock_
 
std::function< real_t(const Vector3< real_t > &)> hydrostaticDensityFct_
 
real_t lengthScalingFactor_
 
real_t forceScalingFactor_
 

Additional Inherited Members

- Protected Attributes inherited from walberla::boundary::Boundary< flag_t >
const BoundaryUID boundaryUID_
 
flag_t mask_
 
bool maskSet_
 

Member Typedef Documentation

◆ flag_t

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
using walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::flag_t = typename FlagField_T::flag_t
private

◆ PDFField_T

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
using walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::PDFField_T = lbm::PdfField< LatticeModel_T >
private

◆ Stencil_T

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
using walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::Stencil_T = typename LatticeModel_T::Stencil
private

Constructor & Destructor Documentation

◆ SimpleBB()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::SimpleBB ( const BoundaryUID &  boundaryUID,
const FlagUID &  uid,
PDFField_T *const  pdfField,
const FlagField_T *const  flagField,
ParticleField_T *const  particleField,
const shared_ptr< ParticleAccessor_T > &  ac,
const flag_t  domain,
const StructuredBlockStorage blockStorage,
const IBlock block,
std::function< real_t(const Vector3< real_t > &)>  hydrostaticDensityFct = nullptr 
)
inline

Member Function Documentation

◆ afterBoundaryTreatment()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::afterBoundaryTreatment ( ) const
inline

◆ beforeBoundaryTreatment()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::beforeBoundaryTreatment ( ) const
inline

◆ createConfiguration()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
static shared_ptr<BoundaryConfiguration> walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::createConfiguration ( const Config::BlockHandle )
inlinestatic

◆ packCell()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
template<typename Buffer_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::packCell ( Buffer_T &  ,
const  cell_idx_t,
const  cell_idx_t,
const  cell_idx_t 
) const
inline

◆ pushFlags()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::pushFlags ( std::vector< FlagUID > &  uids) const
inline

◆ registerCell() [1/2]

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
template<typename Buffer_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::registerCell ( Buffer_T &  ,
const  flag_t,
const  cell_idx_t,
const  cell_idx_t,
const  cell_idx_t 
)
inline

◆ registerCell() [2/2]

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::registerCell ( const  flag_t,
const  cell_idx_t,
const  cell_idx_t,
const  cell_idx_t,
const BoundaryConfiguration  
)
inline

◆ registerCells() [1/2]

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::registerCells ( const  flag_t,
const CellInterval ,
const BoundaryConfiguration  
)
inline

◆ registerCells() [2/2]

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
template<typename CellIterator >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::registerCells ( const  flag_t,
const CellIterator &  ,
const CellIterator &  ,
const BoundaryConfiguration  
)
inline

◆ treatDirection()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::treatDirection ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const stencil::Direction  dir,
const cell_idx_t  nx,
const cell_idx_t  ny,
const cell_idx_t  nz,
const flag_t  mask 
)
inline

◆ unregisterCell()

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::unregisterCell ( const  flag_t,
const  cell_idx_t,
const  cell_idx_t,
const  cell_idx_t 
) const
inline

Member Data Documentation

◆ ac_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
shared_ptr<ParticleAccessor_T> walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::ac_
private

◆ block_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
const IBlock& walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::block_
private

◆ blockStorage_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
const StructuredBlockStorage& walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::blockStorage_
private

◆ domainMask_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
flag_t walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::domainMask_
private

◆ flagField_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
const FlagField_T* const walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::flagField_
private

◆ forceScalingFactor_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
real_t walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::forceScalingFactor_
private

◆ hydrostaticDensityFct_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
std::function<real_t(const Vector3<real_t>&)> walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::hydrostaticDensityFct_
private

◆ lengthScalingFactor_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
real_t walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::lengthScalingFactor_
private

◆ particleField_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
ParticleField_T* const walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::particleField_
private

◆ pdfField_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
PDFField_T* const walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::pdfField_
private

◆ uid_

template<typename LatticeModel_T , typename FlagField_T , typename ParticleAccessor_T >
const FlagUID walberla::lbm_mesapd_coupling::SimpleBB< LatticeModel_T, FlagField_T, ParticleAccessor_T >::uid_
private

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