walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T > Class Template Reference

Detailed Description

template<typename LatticeModel_T, typename BoundaryHandling_T>
class walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >

Classes to be used together with the PDFReconstruction class to reconstruct PDFs.

Each reconstructor must exactly implement the member function void operator()( const cell_idx_t & x, const cell_idx_t & y, const cell_idx_t & z, IBlock * const block, PdfField_T * const pdfField ); that reconstructs all PDFs in a specific cell with indices x,y,z on a given block.

Different variants are available:

EquilibriumAndNonEquilibriumReconstructor and ExtrapolationReconstructor need an extrapolation direction which is provided by the ExtrapolationDirectionFinder that is to be chosen (see ExtrapolationDirectionFinder.h).

#include <Reconstructor.h>

Public Types

using PdfField_T = lbm::PdfField< LatticeModel_T >
 
using BodyField_T = Field< pe::BodyID, 1 >
 

Public Member Functions

 EquilibriumReconstructor (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &boundaryHandlingID, const BlockDataID &bodyFieldID)
 
void operator() (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, IBlock *const block, PdfField_T *const pdfField)
 

Private Member Functions

void setLocalEquilibrium (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, IBlock *const block, PdfField_T *const pdfField)
 
real_t getLocalAverageDensity (const cell_idx_t &x, const cell_idx_t &y, const cell_idx_t &z, IBlock *const block, PdfField_T *const pdfField) const
 

Private Attributes

shared_ptr< StructuredBlockStorageblockStorage_
 
const BlockDataID boundaryHandlingID_
 
const BlockDataID bodyFieldID_
 

Member Typedef Documentation

◆ BodyField_T

template<typename LatticeModel_T , typename BoundaryHandling_T >
using walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::BodyField_T = Field<pe::BodyID, 1>

◆ PdfField_T

template<typename LatticeModel_T , typename BoundaryHandling_T >
using walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::PdfField_T = lbm::PdfField<LatticeModel_T>

Constructor & Destructor Documentation

◆ EquilibriumReconstructor()

template<typename LatticeModel_T , typename BoundaryHandling_T >
walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::EquilibriumReconstructor ( const shared_ptr< StructuredBlockStorage > &  blockStorage,
const BlockDataID boundaryHandlingID,
const BlockDataID bodyFieldID 
)
inline

Member Function Documentation

◆ getLocalAverageDensity()

template<typename LatticeModel_T , typename BoundaryHandling_T >
real_t walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::getLocalAverageDensity ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
IBlock *const  block,
PdfField_T *const  pdfField 
) const
private

◆ operator()()

template<typename LatticeModel_T , typename BoundaryHandling_T >
void walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::operator() ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
IBlock *const  block,
PdfField_T *const  pdfField 
)

◆ setLocalEquilibrium()

template<typename LatticeModel_T , typename BoundaryHandling_T >
void walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::setLocalEquilibrium ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
IBlock *const  block,
PdfField_T *const  pdfField 
)
private

Member Data Documentation

◆ blockStorage_

template<typename LatticeModel_T , typename BoundaryHandling_T >
shared_ptr<StructuredBlockStorage> walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::blockStorage_
private

◆ bodyFieldID_

template<typename LatticeModel_T , typename BoundaryHandling_T >
const BlockDataID walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::bodyFieldID_
private

◆ boundaryHandlingID_

template<typename LatticeModel_T , typename BoundaryHandling_T >
const BlockDataID walberla::pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T >::boundaryHandlingID_
private

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