walberla::lbm::refinement Namespace Reference

Namespaces

 internal
 

Classes

class  EqualLevelBorderStreamCorrection
 
class  FunctorWrapper
 
class  LinearExplosion
 
class  PdfFieldPackInfo
 
class  PdfFieldSyncPackInfo
 
class  SweepAsFunctorWrapper
 
class  TimeStep
 
class  TimeStepPdfPackInfo
 
class  VorticityBasedLevelDetermination
 Level determination for refinement check based on (scaled) vorticity values. More...
 

Functions

template<typename BoundaryHandling_T , bool ForceBoundary>
void consistentlySetBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &parameter=internal::defaultBoundaryConfiguration)
 Function for consistently setting boundaries across block borders (even if there is a level transition) More...
 
template<typename BoundaryHandling_T >
void consistentlySetBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &parameter=internal::defaultBoundaryConfiguration)
 For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)". More...
 
template<typename BoundaryHandling_T >
void consistentlyForceBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &parameter=internal::defaultBoundaryConfiguration)
 For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)". More...
 
template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T >
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > makeTimeStep (weak_ptr< StructuredBlockForest > blocks, shared_ptr< Sweep_T > &sweep, const BlockDataID &pdfFieldId, const BlockDataID &boundaryHandlingId, const Set< SUID > &requiredBlockSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleBlockSelectors=Set< SUID >::emptySet())
 
template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T >
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > makeTimeStep (weak_ptr< StructuredBlockForest > blocks, shared_ptr< Sweep_T > &sweep, const BlockDataID &pdfFieldId, const BlockDataID &boundaryHandlingId, const shared_ptr< TimeStepPdfPackInfo > &pdfPackInfo, const Set< SUID > &requiredBlockSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleBlockSelectors=Set< SUID >::emptySet())
 

Function Documentation

template<typename BoundaryHandling_T >
void walberla::lbm::refinement::consistentlyForceBoundary ( StructuredBlockStorage &  blocks,
Block block,
const BlockDataID &  boundaryHandlingId,
const FlagUID &  flag,
const std::function< bool(const Vector3< real_t > &) > &  isBoundary,
const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &  parameter = internal::defaultBoundaryConfiguration 
)

For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)".

template<typename BoundaryHandling_T , bool ForceBoundary>
void walberla::lbm::refinement::consistentlySetBoundary ( StructuredBlockStorage &  blocks,
Block block,
const BlockDataID &  boundaryHandlingId,
const FlagUID &  flag,
const std::function< bool(const Vector3< real_t > &) > &  isBoundary,
const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &  parameter = internal::defaultBoundaryConfiguration 
)

Function for consistently setting boundaries across block borders (even if there is a level transition)

Boundaries are set not just in the inside of the block that is passed to this function, but also in the block's ghost layers. The user must provide a callback function "isBoundary": For any point in the 3D simulation space, this function must either return true or false. Returning true means at this point in space, a boundary of type "flag" must be set. If the boundary requires a corresponding boundary configuration parameter, a second callback function "parameter" must be provided: If a boundary is set at a certain cell, this cell is passed to the callback function together with the point in the 3D simulation space that, prior to that, was passed to "isBoundary". The function then must return a shared pointer to a BoundaryConfiguration object.

Parameters
blocksblock storage data structure
blockblock for which boundaries of type "flag" will be set
boundaryHandlingIdblock data ID for the boundary handling object
flagflag UID that corresponds to the boundary which will be set
isBoundarycallback function for determining if for a certain point in the 3D simulation space a boundary corresponding to "flag" must be set
parametercallback function for retrieving boundary configuration parameters
template<typename BoundaryHandling_T >
void walberla::lbm::refinement::consistentlySetBoundary ( StructuredBlockStorage &  blocks,
Block block,
const BlockDataID &  boundaryHandlingId,
const FlagUID &  flag,
const std::function< bool(const Vector3< real_t > &) > &  isBoundary,
const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > &  parameter = internal::defaultBoundaryConfiguration 
)

For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)".

template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T >
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > walberla::lbm::refinement::makeTimeStep ( weak_ptr< StructuredBlockForest >  blocks,
shared_ptr< Sweep_T > &  sweep,
const BlockDataID &  pdfFieldId,
const BlockDataID &  boundaryHandlingId,
const Set< SUID > &  requiredBlockSelectors = Set<SUID>::emptySet(),
const Set< SUID > &  incompatibleBlockSelectors = Set<SUID>::emptySet() 
)
template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T >
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > walberla::lbm::refinement::makeTimeStep ( weak_ptr< StructuredBlockForest >  blocks,
shared_ptr< Sweep_T > &  sweep,
const BlockDataID &  pdfFieldId,
const BlockDataID &  boundaryHandlingId,
const shared_ptr< TimeStepPdfPackInfo > &  pdfPackInfo,
const Set< SUID > &  requiredBlockSelectors = Set<SUID>::emptySet(),
const Set< SUID > &  incompatibleBlockSelectors = Set<SUID>::emptySet() 
)