walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T > Class Template Reference

#include <Reconstructor.h>

Public Member Functions

 EquilibriumAndNonEquilibriumReconstructor (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &boundaryHandlingID, const shared_ptr< ExtrapolationDirectionFinder_T > &extrapolationDirectionFinder, uint_t maximumNumberOfExtrapolationCells=uint_t(3), bool useDataFromGhostLayers=false)
 
template<typename PdfField_T , typename ParticleAccessor_T >
void operator() (IBlock *const block, const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const size_t particleIdx, const ParticleAccessor_T &ac)
 
template<typename PdfField_T , typename ParticleAccessor_T >
void operator() (IBlock *const block, const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const size_t particleIdx, const ParticleAccessor_T &ac, const Vector3< cell_idx_t > &extrapolationDirection)
 

Private Member Functions

template<typename PdfField_T >
void extrapolateNonEquilibrium (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const Vector3< cell_idx_t > &extrapolationDirection, const uint_t &numberOfCellsForExtrapolation)
 
bool enoughCellsForQuadraticExtrapolation (uint_t numberOfCellsForExtrapolation)
 
bool enoughCellsForLinearExtrapolation (uint_t numberOfCellsForExtrapolation)
 
bool enoughCellsForExtrapolation (uint_t numberOfCellsForExtrapolation)
 
template<typename PdfField_T >
void applyQuadraticExtrapolation (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const Vector3< cell_idx_t > &extrapolationDirection)
 
template<typename PdfField_T >
void applyLinearExtrapolation (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const Vector3< cell_idx_t > &extrapolationDirection)
 
template<typename PdfField_T >
void applyConstantExtrapolation (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField, const Vector3< cell_idx_t > &extrapolationDirection)
 
template<typename PdfField_T >
std::vector< real_tgetNonEquilibriumPdfsInCell (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, PdfField_T *const pdfField) const
 

Private Attributes

shared_ptr< StructuredBlockStorageblockStorage_
 
const BlockDataID boundaryHandlingID_
 
shared_ptr< ExtrapolationDirectionFinder_T > extrapolationDirectionFinder_
 
const uint_t maximumNumberOfExtrapolationCells_
 
const bool useDataFromGhostLayers_
 
EquilibriumReconstructor< BoundaryHandling_TequilibriumReconstructor_
 

Constructor & Destructor Documentation

◆ EquilibriumAndNonEquilibriumReconstructor()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::EquilibriumAndNonEquilibriumReconstructor ( const shared_ptr< StructuredBlockStorage > &  blockStorage,
const BlockDataID boundaryHandlingID,
const shared_ptr< ExtrapolationDirectionFinder_T > &  extrapolationDirectionFinder,
uint_t  maximumNumberOfExtrapolationCells = uint_t(3),
bool  useDataFromGhostLayers = false 
)
inline

Member Function Documentation

◆ applyConstantExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::applyConstantExtrapolation ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const Vector3< cell_idx_t > &  extrapolationDirection 
)
inlineprivate

◆ applyLinearExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::applyLinearExtrapolation ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const Vector3< cell_idx_t > &  extrapolationDirection 
)
inlineprivate

◆ applyQuadraticExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::applyQuadraticExtrapolation ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const Vector3< cell_idx_t > &  extrapolationDirection 
)
inlineprivate

◆ enoughCellsForExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
bool walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::enoughCellsForExtrapolation ( uint_t  numberOfCellsForExtrapolation)
inlineprivate

◆ enoughCellsForLinearExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
bool walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::enoughCellsForLinearExtrapolation ( uint_t  numberOfCellsForExtrapolation)
inlineprivate

◆ enoughCellsForQuadraticExtrapolation()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
bool walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::enoughCellsForQuadraticExtrapolation ( uint_t  numberOfCellsForExtrapolation)
inlineprivate

◆ extrapolateNonEquilibrium()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::extrapolateNonEquilibrium ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const Vector3< cell_idx_t > &  extrapolationDirection,
const uint_t numberOfCellsForExtrapolation 
)
inlineprivate

◆ getNonEquilibriumPdfsInCell()

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T >
std::vector<real_t> walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::getNonEquilibriumPdfsInCell ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField 
) const
inlineprivate

◆ operator()() [1/2]

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::operator() ( IBlock *const  block,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const size_t  particleIdx,
const ParticleAccessor_T &  ac 
)
inline

◆ operator()() [2/2]

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
template<typename PdfField_T , typename ParticleAccessor_T >
void walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::operator() ( IBlock *const  block,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
PdfField_T *const  pdfField,
const size_t  particleIdx,
const ParticleAccessor_T &  ac,
const Vector3< cell_idx_t > &  extrapolationDirection 
)
inline

Member Data Documentation

◆ blockStorage_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
shared_ptr<StructuredBlockStorage> walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::blockStorage_
private

◆ boundaryHandlingID_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
const BlockDataID walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::boundaryHandlingID_
private

◆ equilibriumReconstructor_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
EquilibriumReconstructor< BoundaryHandling_T > walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::equilibriumReconstructor_
private

◆ extrapolationDirectionFinder_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
shared_ptr<ExtrapolationDirectionFinder_T> walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::extrapolationDirectionFinder_
private

◆ maximumNumberOfExtrapolationCells_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
const uint_t walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::maximumNumberOfExtrapolationCells_
private

◆ useDataFromGhostLayers_

template<typename BoundaryHandling_T , typename ExtrapolationDirectionFinder_T >
const bool walberla::lbm_mesapd_coupling::EquilibriumAndNonEquilibriumReconstructor< BoundaryHandling_T, ExtrapolationDirectionFinder_T >::useDataFromGhostLayers_
private

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