waLBerla 7.2
Loading...
Searching...
No Matches
walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries > Class Template Reference

#include <BoundaryHandling.h>

Classes

class  BlockSweep
 

Public Types

enum  Mode { OPTIMIZED_SPARSE_TRAVERSAL , ENTIRE_FIELD_TRAVERSAL }
 
using FlagField = FlagField_T
 
using flag_t = typename FlagField_T::flag_t
 
using ConstFlagFieldBaseIterator = typename FlagField_T::const_base_iterator
 

Public Member Functions

 BoundaryHandling (const std::string &identifier, FlagField_T *const flagField, const flag_t domain, const Boundaries &... boundaryConditions, const Mode mode)
 
 BoundaryHandling (const std::string &identifier, FlagField_T *const flagField, const flag_t domain, const Boundaries &... boundaryConditions)
 
bool operator== (const BoundaryHandling &rhs) const
 
bool operator!= (const BoundaryHandling &rhs) const
 
const BoundaryHandlingUIDgetUID () const
 
const FlagField_TgetFlagField () const
 
FlagField_TgetFlagField ()
 
flag_t getNearBoundaryFlag () const
 Never (ever) set near boundary flags manually outside the boundary handler!
 
flag_t getBoundaryMask () const
 
flag_t getDomainMask () const
 
bool isEmpty (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
bool isNearBoundary (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
bool isBoundary (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
bool isDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
bool isEmpty (const Cell &cell) const
 
bool isNearBoundary (const Cell &cell) const
 
bool isBoundary (const Cell &cell) const
 
bool isDomain (const Cell &cell) const
 
bool isEmpty (const ConstFlagFieldBaseIterator &it) const
 
bool isNearBoundary (const ConstFlagFieldBaseIterator &it) const
 
bool isBoundary (const ConstFlagFieldBaseIterator &it) const
 
bool isDomain (const ConstFlagFieldBaseIterator &it) const
 
bool containsBoundaryCondition (const BoundaryUID &uid) const
 
bool containsBoundaryCondition (const FlagUID &flag) const
 
bool containsBoundaryCondition (const flag_t flag) const
 
flag_t getBoundaryMask (const BoundaryUID &uid) const
 
template<typename Boundary_T >
const Boundary_T & getBoundaryCondition (const BoundaryUID &uid) const
 You most likely have to call this function via "handling.template getBoundaryCondition< Boundary_T >( uid )".
 
template<typename Boundary_T >
Boundary_T & getBoundaryCondition (const BoundaryUID &uid)
 You most likely have to call this function via "handling.template getBoundaryCondition< Boundary_T >( uid )".
 
BoundaryUID getBoundaryUID (const FlagUID &flag) const
 
BoundaryUID getBoundaryUID (const flag_t flag) const
 
uint_t numberOfMatchingBoundaryConditions (const flag_t mask) const
 
bool checkConsistency (const uint_t numberOfGhostLayersToInclude=0) const
 
bool checkConsistency (const CellInterval &cells) const
 
void refresh (const uint_t numberOfGhostLayersToInclude=0)
 
void refresh (const CellInterval &cells)
 
void refreshOutermostLayer (cell_idx_t thickness=1)
 
template<typename Buffer_T >
std::vector< typename BoundaryHandling< FlagField_T, Stencil, Boundaries... >::flag_tgetNeighborFlagMapping (Buffer_T &buffer, const bool assumeIdenticalFlagMapping, bool &identicalFlagMapping) const
 
Set Domain Cells
void setDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void setDomain (const flag_t domainSubFlag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void setDomain (const CellInterval &cells)
 
void setDomain (const flag_t domainSubFlag, const CellInterval &cells)
 
template<typename CellIterator >
void setDomain (const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void setDomain (const flag_t domainSubFlag, const CellIterator &begin, const CellIterator &end)
 
void forceDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void forceDomain (const flag_t domainSubFlag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void forceDomain (const CellInterval &cells)
 
void forceDomain (const flag_t domainSubFlag, const CellInterval &cells)
 
template<typename CellIterator >
void forceDomain (const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void forceDomain (const flag_t domainSubFlag, const CellIterator &begin, const CellIterator &end)
 
void fillWithDomain (const uint_t numberOfGhostLayersToInclude=0)
 
void fillWithDomain (const flag_t domainSubFlag, const uint_t numberOfGhostLayersToInclude)
 
void fillWithDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void fillWithDomain (const flag_t domainSubFlag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void fillWithDomain (const CellInterval &cells)
 
void fillWithDomain (const flag_t domainSubFlag, const CellInterval &cells)
 
template<typename CellIterator >
void fillWithDomain (const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void fillWithDomain (const flag_t domainSubFlag, const CellIterator &begin, const CellIterator &end)
 
Set Boundary Cells
shared_ptr< BoundaryConfigurationcreateBoundaryConfiguration (const BoundaryUID &uid, const Config::BlockHandle &config) const
 
void setBoundary (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setBoundary (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setBoundary (const FlagUID &flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setBoundary (const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void setBoundary (const FlagUID &flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void setBoundary (const flag_t flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceBoundary (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceBoundary (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceBoundary (const FlagUID &flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceBoundary (const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void forceBoundary (const FlagUID &flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void forceBoundary (const flag_t flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
Remove Domain Cells
void removeDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeDomain (const flag_t mask, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeDomain (const uint_t numberOfGhostLayersToInclude=0)
 
void removeDomain (const CellInterval &cells)
 
void removeDomain (const flag_t mask, const CellInterval &cells)
 
template<typename CellIterator >
void removeDomain (const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void removeDomain (const flag_t mask, const CellIterator &begin, const CellIterator &end)
 
Remove Boundary Cells
void removeBoundary (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeBoundary (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeBoundary (const flag_t mask, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeBoundary (const uint_t numberOfGhostLayersToInclude=0)
 
void removeBoundary (const CellInterval &cells)
 
void removeBoundary (const FlagUID &flag, const CellInterval &cells)
 
void removeBoundary (const flag_t mask, const CellInterval &cells)
 
template<typename CellIterator >
void removeBoundary (const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void removeBoundary (const FlagUID &flag, const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void removeBoundary (const flag_t mask, const CellIterator &begin, const CellIterator &end)
 
General Flag Handling
void setFlag (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setFlag (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setFlag (const FlagUID &flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void setFlag (const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void setFlag (const FlagUID &flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void setFlag (const flag_t flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceFlag (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceFlag (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceFlag (const FlagUID &flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void forceFlag (const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void forceFlag (const FlagUID &flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
template<typename CellIterator >
void forceFlag (const flag_t flag, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &parameter=BoundaryConfiguration::null())
 
void removeFlag (const FlagUID &flag, const uint_t numberOfGhostLayersToInclude=0)
 
void removeFlag (const flag_t flag, const uint_t numberOfGhostLayersToInclude=0)
 
void removeFlag (const FlagUID &flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeFlag (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void removeFlag (const FlagUID &flag, const CellInterval &cells)
 
void removeFlag (const flag_t flag, const CellInterval &cells)
 
template<typename CellIterator >
void removeFlag (const FlagUID &flag, const CellIterator &begin, const CellIterator &end)
 
template<typename CellIterator >
void removeFlag (const flag_t flag, const CellIterator &begin, const CellIterator &end)
 
Clear Cells
void clear (const uint_t numberOfGhostLayersToInclude=0)
 
void clear (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void clear (const CellInterval &cells)
 
template<typename CellIterator >
void clear (const CellIterator &begin, const CellIterator &end)
 

Private Member Functions

Get Boundary Class (private helper functions)
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & getBoundaryCondition (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & getBoundaryCondition (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & getBoundaryCondition (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & getBoundaryCondition (const BoundaryUID &, const BoundariesTuple &) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & getBoundaryCondition_TypeExists (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & getBoundaryCondition_TypeExists (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & getBoundaryCondition_TypeExists (const BoundaryUID &uid, const BoundariesTuple &boundaryConditions) const
 
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<0, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & getBoundaryCondition_TypeExists (const BoundaryUID &uid, const BoundariesTuple &) const
 
uint_t numberOfMatchingBoundaryConditions (const BoundaryUID &uid) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &, const BoundaryUID &) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &boundaryConditions, const flag_t mask) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &, const flag_t) const
 
bool checkFlagField (const uint_t numberOfGhostLayersToInclude=0) const
 
void addDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const flag_t domain)
 
Set Boundary Cells (private helper functions)
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
shared_ptr< BoundaryConfigurationcreateBoundaryConfiguration (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid, const Config::BlockHandle &config) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
shared_ptr< BoundaryConfigurationcreateBoundaryConfiguration (const BoundariesTuple &, const BoundaryUID &uid, const Config::BlockHandle &) const
 
void addNearBoundary (const CellInterval &cells)
 
void addBoundary (const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=-1 )
void setBoundary (BoundariesTuple &boundaryConditions, const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &parameter)
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N==-1 )
void setBoundary (const BoundariesTuple &, const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t, const BoundaryConfiguration &) const
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=-1 )
void setBoundary (BoundariesTuple &boundaryConditions, const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter)
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N==-1 )
void setBoundary (const BoundariesTuple &, const flag_t, const CellInterval &, const BoundaryConfiguration &) const
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=-1 )
void setBoundary (BoundariesTuple &boundaryConditions, const flag_t flag, const CellVector &cells, const BoundaryConfiguration &parameter)
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N==-1 )
void setBoundary (const BoundariesTuple &, const flag_t, const CellVector &, const BoundaryConfiguration &) const
 
Remove Boundary Cells (private helper functions)
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=-1 )
void removeBoundary (BoundariesTuple &boundaryConditions, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const bool checkNearBoundaryFlags=true)
 
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N==-1 )
void removeBoundary (const BoundariesTuple &, const cell_idx_t, const cell_idx_t, const cell_idx_t, const bool) const
 
Boundary Treatment (private helper functions)
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void treatDirection (BoundariesTuple &boundaryConditions, const uint_t index, const std::vector< std::vector< std::pair< Cell, stencil::Direction > > > &cellDirectionPairs)
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void treatDirection (const BoundariesTuple &, const uint_t, const std::vector< std::vector< std::pair< Cell, stencil::Direction > > > &) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void treatDirection (BoundariesTuple &boundaryConditions, 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)
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void treatDirection (const BoundariesTuple &, const cell_idx_t, const cell_idx_t, const cell_idx_t, const stencil::Direction, const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void beforeBoundaryTreatment (BoundariesTuple &boundaryConditions)
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void beforeBoundaryTreatment (const BoundariesTuple &) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void afterBoundaryTreatment (BoundariesTuple &boundaryConditions)
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void afterBoundaryTreatment (const BoundariesTuple &) const
 

Friends

template<typename F , typename... T>
class BoundaryHandlingCollection
 

Pack / Unpack boundary handling (private helper functions)

using Tuple = std::tuple<Boundaries...>
 
const BoundaryHandlingUID uid_
 
FlagField_T *const flagField_
 
const CellInterval innerBB_
 
const CellInterval outerBB_
 
const flag_t nearBoundary_
 
flag_t boundary_
 
const flag_t domain_
 
const Mode mode_
 
bool dirty_
 Every time "near boundary" flags are set or removed, dirty_ is set to true.
 
std::vector< flag_tbcMaskMapping_
 
std::vector< bool > rebuildCellDirectionPairs_
 
std::vector< std::vector< std::vector< std::pair< Cell, stencil::Direction > > > > cellDirectionPairs_
 
Tuple boundaryConditions_
 
bool threadSafeBCs_
 
std::map< std::string, flag_tgetFlagMapping () const
 
template<typename Buffer_T >
std::vector< flag_tgetNeighborFlagMapping (Buffer_T &buffer, const bool assumeIdenticalFlagMapping, bool &identicalFlagMapping) const
 
void translateMask (flag_t &mask, const std::vector< flag_t > &flagMapping) const
 
CellInterval getPackingInterval (stencil::Direction direction, const uint_t numberOfLayers) const
 
CellInterval getUnpackingInterval (stencil::Direction direction, const uint_t numberOfLayers) const
 
template<typename Buffer_T >
void pack (Buffer_T &buffer, const flag_t mask, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void pack (const BoundariesTuple &boundaryConditions, Buffer_T &buffer, const flag_t mask, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void pack (const BoundariesTuple &, Buffer_T &, const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
template<typename Buffer_T >
void unpack (Buffer_T &buffer, const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
template<typename Buffer_T >
void unpackBoundary (Buffer_T &buffer, const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void unpackBoundary (BoundariesTuple &boundaryConditions, Buffer_T &buffer, const flag_t flag, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void unpackBoundary (const BoundariesTuple &, Buffer_T &, const flag_t, const cell_idx_t, const cell_idx_t, const cell_idx_t) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void getBoundaryConditions (const BoundariesTuple &boundaryConditions, std::vector< std::string > &bcs) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void getBoundaryConditions (const BoundariesTuple &, std::vector< std::string > &) const
 
template<typename T >
static void valueToStream (std::ostream &os, const T value)
 
static void valueToStream (std::ostream &os, const int8_t value)
 
static void valueToStream (std::ostream &os, const uint8_t value)
 

Boundary Treatment

void operator() (const uint_t numberOfGhostLayersToInclude=0)
 
void operator() (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z)
 
void operator() (const CellInterval &cells)
 
template<typename CellIterator >
void operator() (const CellIterator &begin, const CellIterator &end)
 
void beforeBoundaryTreatment ()
 
void afterBoundaryTreatment ()
 
static BlockSweep getBlockSweep (const BlockDataID handling, const uint_t numberOfGhostLayersToInclude=0)
 

Pack / Unpack boundary handling

template<typename Buffer_T >
void pack (Buffer_T &buffer, const CellInterval &interval, const bool assumeIdenticalFlagMapping=true) const
 
template<typename Buffer_T >
void unpack (Buffer_T &buffer, const CellInterval &interval, const bool assumeIdenticalFlagMapping=true)
 
template<typename Buffer_T >
void pack (Buffer_T &buffer, stencil::Direction direction, const uint_t numberOfLayers=1, const bool assumeIdenticalFlagMapping=true) const
 
template<typename Buffer_T >
void unpack (Buffer_T &buffer, stencil::Direction direction, const uint_t numberOfLayers=1, const bool assumeIdenticalFlagMapping=true)
 
void toStream (std::ostream &os) const
 
std::string toString () const
 
CellInterval getGhostLayerCellInterval (const uint_t numberOfGhostLayersToInclude) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void setupBoundaryConditions (BoundariesTuple &boundaryConditions)
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void setupBoundaryConditions (const BoundariesTuple &) const
 
std::vector< BoundaryUIDgetBoundaryUIDs () const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
void getBoundaryUIDs (const BoundariesTuple &boundaryConditions, std::vector< BoundaryUID > &uids) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void getBoundaryUIDs (const BoundariesTuple &, std::vector< BoundaryUID > &) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
BoundaryUID getBoundaryUID (const BoundariesTuple &boundaryConditions, const flag_t flag) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
BoundaryUID getBoundaryUID (const BoundariesTuple &, const flag_t flagUID) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
bool containsBoundaryCondition (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
bool containsBoundaryCondition (const BoundariesTuple &, const BoundaryUID &) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=-1 )
flag_t getBoundaryMask (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
 
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
flag_t getBoundaryMask (const BoundariesTuple &, const BoundaryUID &) const
 

Member Typedef Documentation

◆ ConstFlagFieldBaseIterator

template<typename FlagField_T , typename Stencil , typename... Boundaries>
using walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::ConstFlagFieldBaseIterator = typename FlagField_T::const_base_iterator

◆ flag_t

template<typename FlagField_T , typename Stencil , typename... Boundaries>
using walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::flag_t = typename FlagField_T::flag_t

◆ FlagField

template<typename FlagField_T , typename Stencil , typename... Boundaries>
using walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::FlagField = FlagField_T

◆ Tuple

template<typename FlagField_T , typename Stencil , typename... Boundaries>
using walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::Tuple = std::tuple<Boundaries...>
private

Member Enumeration Documentation

◆ Mode

template<typename FlagField_T , typename Stencil , typename... Boundaries>
enum walberla::boundary::BoundaryHandling::Mode
Enumerator
OPTIMIZED_SPARSE_TRAVERSAL 
ENTIRE_FIELD_TRAVERSAL 

Constructor & Destructor Documentation

◆ BoundaryHandling() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::BoundaryHandling ( const std::string & identifier,
FlagField_T *const flagField,
const flag_t domain,
const Boundaries &... boundaryConditions,
const Mode mode )

◆ BoundaryHandling() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::BoundaryHandling ( const std::string & identifier,
FlagField_T *const flagField,
const flag_t domain,
const Boundaries &... boundaryConditions )
inline

Member Function Documentation

◆ addBoundary()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::addBoundary ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inlineprivate

◆ addDomain()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::addDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const flag_t domain )
inlineprivate

◆ addNearBoundary()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::addNearBoundary ( const CellInterval & cells)
inlineprivate

◆ afterBoundaryTreatment() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::afterBoundaryTreatment ( )
inline

◆ afterBoundaryTreatment() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::afterBoundaryTreatment ( BoundariesTuple & boundaryConditions)
inlineprivate

◆ afterBoundaryTreatment() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::afterBoundaryTreatment ( const BoundariesTuple & ) const
inlineprivate

◆ beforeBoundaryTreatment() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::beforeBoundaryTreatment ( )
inline

◆ beforeBoundaryTreatment() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::beforeBoundaryTreatment ( BoundariesTuple & boundaryConditions)
inlineprivate

◆ beforeBoundaryTreatment() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::beforeBoundaryTreatment ( const BoundariesTuple & ) const
inlineprivate

◆ checkConsistency() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::checkConsistency ( const CellInterval & cells) const

◆ checkConsistency() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::checkConsistency ( const uint_t numberOfGhostLayersToInclude = 0) const
inline

◆ checkFlagField()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::checkFlagField ( const uint_t numberOfGhostLayersToInclude = 0) const
inlineprivate

◆ clear() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::clear ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ clear() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::clear ( const CellInterval & cells)
inline

◆ clear() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::clear ( const CellIterator & begin,
const CellIterator & end )
inline

◆ clear() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::clear ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ containsBoundaryCondition() [1/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::containsBoundaryCondition ( const BoundariesTuple & ,
const BoundaryUID &  ) const
inlineprivate

◆ containsBoundaryCondition() [2/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::containsBoundaryCondition ( const BoundariesTuple & boundaryConditions,
const BoundaryUID & uid ) const
inlineprivate

◆ containsBoundaryCondition() [3/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::containsBoundaryCondition ( const BoundaryUID & uid) const
inline

◆ containsBoundaryCondition() [4/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::containsBoundaryCondition ( const flag_t flag) const
inline

◆ containsBoundaryCondition() [5/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::containsBoundaryCondition ( const FlagUID & flag) const
inline

◆ createBoundaryConfiguration() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
shared_ptr< BoundaryConfiguration > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::createBoundaryConfiguration ( const BoundariesTuple & ,
const BoundaryUID & uid,
const Config::BlockHandle &  ) const
inlineprivate

◆ createBoundaryConfiguration() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
shared_ptr< BoundaryConfiguration > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::createBoundaryConfiguration ( const BoundariesTuple & boundaryConditions,
const BoundaryUID & uid,
const Config::BlockHandle & config ) const
inlineprivate

◆ createBoundaryConfiguration() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
shared_ptr< BoundaryConfiguration > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::createBoundaryConfiguration ( const BoundaryUID & uid,
const Config::BlockHandle & config ) const
inline

◆ fillWithDomain() [1/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ fillWithDomain() [2/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const CellInterval & cells)
inline

◆ fillWithDomain() [3/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const CellIterator & begin,
const CellIterator & end )
inline

◆ fillWithDomain() [4/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const flag_t domainSubFlag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ fillWithDomain() [5/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const flag_t domainSubFlag,
const CellInterval & cells )
inline

◆ fillWithDomain() [6/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const flag_t domainSubFlag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ fillWithDomain() [7/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const flag_t domainSubFlag,
const uint_t numberOfGhostLayersToInclude )
inline

◆ fillWithDomain() [8/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::fillWithDomain ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ forceBoundary() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceBoundary() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const flag_t flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceBoundary() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const flag_t flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceBoundary() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceBoundary() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const FlagUID & flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceBoundary() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceBoundary ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceDomain() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ forceDomain() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const CellInterval & cells)
inline

◆ forceDomain() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const CellIterator & begin,
const CellIterator & end )
inline

◆ forceDomain() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const flag_t domainSubFlag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ forceDomain() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const flag_t domainSubFlag,
const CellInterval & cells )
inline

◆ forceDomain() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceDomain ( const flag_t domainSubFlag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ forceFlag() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceFlag() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const flag_t flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceFlag() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const flag_t flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceFlag() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceFlag() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const FlagUID & flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ forceFlag() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::forceFlag ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ getBlockSweep()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
static BlockSweep walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBlockSweep ( const BlockDataID handling,
const uint_t numberOfGhostLayersToInclude = 0 )
inlinestatic

◆ getBoundaryCondition() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & ,
const BoundariesTuple &  ) const
inlineprivate

◆ getBoundaryCondition() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T >
Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & uid)
inline

You most likely have to call this function via "handling.template getBoundaryCondition< Boundary_T >( uid )".

◆ getBoundaryCondition() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T >
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & uid) const
inline

You most likely have to call this function via "handling.template getBoundaryCondition< Boundary_T >( uid )".

◆ getBoundaryCondition() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryCondition() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryCondition() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size<BoundariesTuple>::value - 1>
requires ( N!=0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryCondition_TypeExists() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<0, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition_TypeExists ( const BoundaryUID & uid,
const BoundariesTuple &  ) const
inlineprivate

◆ getBoundaryCondition_TypeExists() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition_TypeExists ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryCondition_TypeExists() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==0 && std::is_same_v< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition_TypeExists ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryCondition_TypeExists() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Boundary_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N!=0 && std::is_same_v< typename std::is_same< Boundary_T, typename std::tuple_element_t<N, BoundariesTuple> >::type, std::false_type > )
const Boundary_T & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryCondition_TypeExists ( const BoundaryUID & uid,
const BoundariesTuple & boundaryConditions ) const
inlineprivate

◆ getBoundaryConditions() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryConditions ( const BoundariesTuple & ,
std::vector< std::string > &  ) const
inlineprivate

◆ getBoundaryConditions() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryConditions ( const BoundariesTuple & boundaryConditions,
std::vector< std::string > & bcs ) const
private

◆ getBoundaryMask() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryMask ( ) const
inline

◆ getBoundaryMask() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryMask ( const BoundariesTuple & ,
const BoundaryUID &  ) const
inlineprivate

◆ getBoundaryMask() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
BoundaryHandling< FlagField_T, Stencil, Boundaries... >::flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryMask ( const BoundariesTuple & boundaryConditions,
const BoundaryUID & uid ) const
inlineprivate

◆ getBoundaryMask() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryMask ( const BoundaryUID & uid) const
inline

◆ getBoundaryUID() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
BoundaryUID walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUID ( const BoundariesTuple & ,
const flag_t flagUID ) const
inlineprivate

◆ getBoundaryUID() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
BoundaryUID walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUID ( const BoundariesTuple & boundaryConditions,
const flag_t flag ) const
inlineprivate

◆ getBoundaryUID() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
BoundaryUID walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUID ( const flag_t flag) const
inline

◆ getBoundaryUID() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
BoundaryUID walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUID ( const FlagUID & flag) const
inline

◆ getBoundaryUIDs() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::vector< BoundaryUID > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUIDs ( ) const
inlineprivate

◆ getBoundaryUIDs() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUIDs ( const BoundariesTuple & ,
std::vector< BoundaryUID > &  ) const
inlineprivate

◆ getBoundaryUIDs() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getBoundaryUIDs ( const BoundariesTuple & boundaryConditions,
std::vector< BoundaryUID > & uids ) const
inlineprivate

◆ getDomainMask()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getDomainMask ( ) const
inline

◆ getFlagField() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
FlagField_T * walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getFlagField ( )
inline

◆ getFlagField() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const FlagField_T * walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getFlagField ( ) const
inline

◆ getFlagMapping()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::map< std::string, typename BoundaryHandling< FlagField_T, Stencil, Boundaries... >::flag_t > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getFlagMapping ( ) const
inlineprivate

◆ getGhostLayerCellInterval()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
CellInterval walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getGhostLayerCellInterval ( const uint_t numberOfGhostLayersToInclude) const
private

◆ getNearBoundaryFlag()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getNearBoundaryFlag ( ) const
inline

Never (ever) set near boundary flags manually outside the boundary handler!

◆ getNeighborFlagMapping() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
std::vector< flag_t > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getNeighborFlagMapping ( Buffer_T & buffer,
const bool assumeIdenticalFlagMapping,
bool & identicalFlagMapping ) const
private

◆ getNeighborFlagMapping() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
std::vector< typename BoundaryHandling< FlagField_T, Stencil, Boundaries... >::flag_t > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getNeighborFlagMapping ( Buffer_T & buffer,
const bool assumeIdenticalFlagMapping,
bool & identicalFlagMapping ) const

◆ getPackingInterval()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
CellInterval walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getPackingInterval ( stencil::Direction direction,
const uint_t numberOfLayers ) const
private

◆ getUID()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const BoundaryHandlingUID & walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getUID ( ) const
inline

◆ getUnpackingInterval()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
CellInterval walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::getUnpackingInterval ( stencil::Direction direction,
const uint_t numberOfLayers ) const
private

◆ isBoundary() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isBoundary ( const Cell & cell) const
inline

◆ isBoundary() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isBoundary ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inline

◆ isBoundary() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isBoundary ( const ConstFlagFieldBaseIterator & it) const
inline

◆ isDomain() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isDomain ( const Cell & cell) const
inline

◆ isDomain() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inline

◆ isDomain() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isDomain ( const ConstFlagFieldBaseIterator & it) const
inline

◆ isEmpty() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isEmpty ( const Cell & cell) const
inline

◆ isEmpty() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isEmpty ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inline

◆ isEmpty() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isEmpty ( const ConstFlagFieldBaseIterator & it) const
inline

◆ isNearBoundary() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isNearBoundary ( const Cell & cell) const
inline

◆ isNearBoundary() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isNearBoundary ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inline

◆ isNearBoundary() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::isNearBoundary ( const ConstFlagFieldBaseIterator & it) const
inline

◆ numberOfMatchingBoundaryConditions() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const BoundariesTuple & ,
const BoundaryUID &  ) const
inlineprivate

◆ numberOfMatchingBoundaryConditions() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const BoundariesTuple & ,
const flag_t  ) const
inlineprivate

◆ numberOfMatchingBoundaryConditions() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const BoundariesTuple & boundaryConditions,
const BoundaryUID & uid ) const
inlineprivate

◆ numberOfMatchingBoundaryConditions() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const BoundariesTuple & boundaryConditions,
const flag_t mask ) const
inlineprivate

◆ numberOfMatchingBoundaryConditions() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const BoundaryUID & uid) const
inlineprivate

◆ numberOfMatchingBoundaryConditions() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
uint_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::numberOfMatchingBoundaryConditions ( const flag_t mask) const
inline

◆ operator!=()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator!= ( const BoundaryHandling< FlagField_T, Stencil, Boundaries > & rhs) const
inline

◆ operator()() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator() ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ operator()() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator() ( const CellInterval & cells)
inline

◆ operator()() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator() ( const CellIterator & begin,
const CellIterator & end )
inline

◆ operator()() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator() ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ operator==()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::operator== ( const BoundaryHandling< FlagField_T, Stencil, Boundaries > & rhs) const
inline

◆ pack() [1/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::pack ( Buffer_T & buffer,
const CellInterval & interval,
const bool assumeIdenticalFlagMapping = true ) const

◆ pack() [2/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::pack ( Buffer_T & buffer,
const flag_t mask,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inlineprivate

◆ pack() [3/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::pack ( Buffer_T & buffer,
stencil::Direction direction,
const uint_t numberOfLayers = 1,
const bool assumeIdenticalFlagMapping = true ) const

◆ pack() [4/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::pack ( const BoundariesTuple & ,
Buffer_T & ,
const flag_t ,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t  ) const
inlineprivate

◆ pack() [5/5]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename Buffer_T , typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::pack ( const BoundariesTuple & boundaryConditions,
Buffer_T & buffer,
const flag_t mask,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z ) const
inlineprivate

◆ refresh() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::refresh ( const CellInterval & cells)

◆ refresh() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::refresh ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ refreshOutermostLayer()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::refreshOutermostLayer ( cell_idx_t thickness = 1)

◆ removeBoundary() [1/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( BoundariesTuple & boundaryConditions,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const bool checkNearBoundaryFlags = true )
inlineprivate

◆ removeBoundary() [2/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = internal::tuple_size<BoundariesTuple>::value - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const BoundariesTuple & ,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t ,
const bool  ) const
inlineprivate

◆ removeBoundary() [3/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeBoundary() [4/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const CellInterval & cells)
inline

◆ removeBoundary() [5/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const CellIterator & begin,
const CellIterator & end )
inline

◆ removeBoundary() [6/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const flag_t mask,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeBoundary() [7/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const flag_t mask,
const CellInterval & cells )
inline

◆ removeBoundary() [8/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const flag_t mask,
const CellIterator & begin,
const CellIterator & end )
inline

◆ removeBoundary() [9/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeBoundary() [10/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const FlagUID & flag,
const CellInterval & cells )
inline

◆ removeBoundary() [11/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ removeBoundary() [12/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeBoundary ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ removeDomain() [1/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeDomain() [2/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const CellInterval & cells)
inline

◆ removeDomain() [3/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const CellIterator & begin,
const CellIterator & end )
inline

◆ removeDomain() [4/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const flag_t mask,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeDomain() [5/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const flag_t mask,
const CellInterval & cells )
inline

◆ removeDomain() [6/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const flag_t mask,
const CellIterator & begin,
const CellIterator & end )
inline

◆ removeDomain() [7/7]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeDomain ( const uint_t numberOfGhostLayersToInclude = 0)
inline

◆ removeFlag() [1/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeFlag() [2/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const flag_t flag,
const CellInterval & cells )
inline

◆ removeFlag() [3/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const flag_t flag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ removeFlag() [4/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const flag_t flag,
const uint_t numberOfGhostLayersToInclude = 0 )
inline

◆ removeFlag() [5/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ removeFlag() [6/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const FlagUID & flag,
const CellInterval & cells )
inline

◆ removeFlag() [7/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ removeFlag() [8/8]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::removeFlag ( const FlagUID & flag,
const uint_t numberOfGhostLayersToInclude = 0 )
inline

◆ setBoundary() [1/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( BoundariesTuple & boundaryConditions,
const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter )
inlineprivate

◆ setBoundary() [2/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( BoundariesTuple & boundaryConditions,
const flag_t flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter )
inlineprivate

◆ setBoundary() [3/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( BoundariesTuple & boundaryConditions,
const flag_t flag,
const CellVector & cells,
const BoundaryConfiguration & parameter )
inlineprivate

◆ setBoundary() [4/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N==-1 )
template<typename BoundariesTuple , int N>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const BoundariesTuple & ,
const flag_t flag,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t ,
const BoundaryConfiguration &  ) const
inlineprivate

◆ setBoundary() [5/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N==-1 )
template<typename BoundariesTuple , int N>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const BoundariesTuple & ,
const flag_t flag,
const CellInterval & ,
const BoundaryConfiguration &  ) const
inlineprivate

◆ setBoundary() [6/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N==-1 )
template<typename BoundariesTuple , int N>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const BoundariesTuple & ,
const flag_t flag,
const CellVector & ,
const BoundaryConfiguration &  ) const
inlineprivate

◆ setBoundary() [7/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setBoundary() [8/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const flag_t flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setBoundary() [9/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const flag_t flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setBoundary() [10/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setBoundary() [11/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const FlagUID & flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setBoundary() [12/12]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundary ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setDomain() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ setDomain() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const CellInterval & cells)
inline

◆ setDomain() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const CellIterator & begin,
const CellIterator & end )
inline

◆ setDomain() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const flag_t domainSubFlag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inline

◆ setDomain() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const flag_t domainSubFlag,
const CellInterval & cells )
inline

◆ setDomain() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setDomain ( const flag_t domainSubFlag,
const CellIterator & begin,
const CellIterator & end )
inline

◆ setFlag() [1/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setFlag() [2/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const flag_t flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setFlag() [3/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const flag_t flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setFlag() [4/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const FlagUID & flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setFlag() [5/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const FlagUID & flag,
const CellInterval & cells,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setFlag() [6/6]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename CellIterator >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setFlag ( const FlagUID & flag,
const CellIterator & begin,
const CellIterator & end,
const BoundaryConfiguration & parameter = BoundaryConfiguration::null() )
inline

◆ setupBoundaryConditions() [1/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setupBoundaryConditions ( BoundariesTuple & boundaryConditions)
private

◆ setupBoundaryConditions() [2/2]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setupBoundaryConditions ( const BoundariesTuple & ) const
inlineprivate

◆ toStream()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::toStream ( std::ostream & os) const
inline

◆ toString()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::string walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::toString ( ) const
inline

◆ translateMask()

template<typename FlagField_T , typename Stencil , typename... Boundaries>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::translateMask ( flag_t & mask,
const std::vector< flag_t > & flagMapping ) const
private

◆ treatDirection() [1/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::treatDirection ( BoundariesTuple & boundaryConditions,
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 )
inlineprivate

◆ treatDirection() [2/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::treatDirection ( BoundariesTuple & boundaryConditions,
const uint_t index,
const std::vector< std::vector< std::pair< Cell, stencil::Direction > > > & cellDirectionPairs )
inlineprivate

◆ treatDirection() [3/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::treatDirection ( const BoundariesTuple & ,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t ,
const stencil::Direction ,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t  ) const
inlineprivate

◆ treatDirection() [4/4]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::treatDirection ( const BoundariesTuple & ,
const uint_t ,
const std::vector< std::vector< std::pair< Cell, stencil::Direction > > > &  ) const
inlineprivate

◆ unpack() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpack ( Buffer_T & buffer,
const CellInterval & interval,
const bool assumeIdenticalFlagMapping = true )

◆ unpack() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpack ( Buffer_T & buffer,
const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inlineprivate

◆ unpack() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpack ( Buffer_T & buffer,
stencil::Direction direction,
const uint_t numberOfLayers = 1,
const bool assumeIdenticalFlagMapping = true )

◆ unpackBoundary() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
requires ( N!=-1 )
template<typename Buffer_T , typename BoundariesTuple , int N>
requires ( N!=-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpackBoundary ( BoundariesTuple & boundaryConditions,
Buffer_T & buffer,
const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inlineprivate

◆ unpackBoundary() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T >
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpackBoundary ( Buffer_T & buffer,
const flag_t flag,
const cell_idx_t x,
const cell_idx_t y,
const cell_idx_t z )
inlineprivate

◆ unpackBoundary() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename Buffer_T , typename BoundariesTuple , int N = std::tuple_size_v<BoundariesTuple> - 1>
requires ( N==-1 )
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::unpackBoundary ( const BoundariesTuple & ,
Buffer_T & ,
const flag_t ,
const cell_idx_t ,
const cell_idx_t ,
const cell_idx_t  ) const
inlineprivate

◆ valueToStream() [1/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
static void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::valueToStream ( std::ostream & os,
const int8_t value )
inlinestaticprivate

◆ valueToStream() [2/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename T >
static void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::valueToStream ( std::ostream & os,
const T value )
inlinestaticprivate

◆ valueToStream() [3/3]

template<typename FlagField_T , typename Stencil , typename... Boundaries>
static void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::valueToStream ( std::ostream & os,
const uint8_t value )
inlinestaticprivate

Friends And Related Symbol Documentation

◆ BoundaryHandlingCollection

template<typename FlagField_T , typename Stencil , typename... Boundaries>
template<typename F , typename... T>
friend class BoundaryHandlingCollection
friend

Member Data Documentation

◆ bcMaskMapping_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::vector< flag_t > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::bcMaskMapping_
private

◆ boundary_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::boundary_
private

◆ boundaryConditions_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
Tuple walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::boundaryConditions_
private

◆ cellDirectionPairs_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::vector< std::vector< std::vector< std::pair< Cell, stencil::Direction > > > > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::cellDirectionPairs_
private

◆ dirty_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::dirty_
private

Every time "near boundary" flags are set or removed, dirty_ is set to true.

Triggers a rebuild of vector cellDirectionPairs_ in "OPTIMIZED_SPARSE_TRAVERSAL" mode.

◆ domain_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::domain_
private

◆ flagField_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
FlagField_T* const walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::flagField_
private

◆ innerBB_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const CellInterval walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::innerBB_
private

◆ mode_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const Mode walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::mode_
private

◆ nearBoundary_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const flag_t walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::nearBoundary_
private

◆ outerBB_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const CellInterval walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::outerBB_
private

◆ rebuildCellDirectionPairs_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
std::vector< bool > walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::rebuildCellDirectionPairs_
private

◆ threadSafeBCs_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
bool walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::threadSafeBCs_
private

◆ uid_

template<typename FlagField_T , typename Stencil , typename... Boundaries>
const BoundaryHandlingUID walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::uid_
private

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