waLBerla 7.3
Loading...
Searching...
No Matches
walberla::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 getBoundaryMask (const BoundaryUID &uid) const
flag_t getDomainMask () const
bool isEmpty (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
bool isEmpty (const Cell &cell) const
bool isEmpty (const ConstFlagFieldBaseIterator &it) const
bool isNearBoundary (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
bool isNearBoundary (const Cell &cell) const
bool isNearBoundary (const ConstFlagFieldBaseIterator &it) const
bool isBoundary (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
bool isBoundary (const Cell &cell) const
bool isBoundary (const ConstFlagFieldBaseIterator &it) const
bool isDomain (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
bool isDomain (const Cell &cell) 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
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>
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>
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>
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>
const Boundary_T & getBoundaryCondition (const BoundaryUID &, const BoundariesTuple &) const
uint_t numberOfMatchingBoundaryConditions (const BoundaryUID &uid) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &, const BoundaryUID &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &boundaryConditions, const flag_t mask) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
uint_t numberOfMatchingBoundaryConditions (const BoundariesTuple &, const flag_t) const
template<typename Boundary_T, typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
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>
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>
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>
const Boundary_T & getBoundaryCondition_TypeExists (const BoundaryUID &uid, const BoundariesTuple &) 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>
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>
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 = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (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 = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (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 = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (BoundariesTuple &boundaryConditions, const flag_t flag, const CellInterval &cells, const BoundaryConfiguration &parameter)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (const BoundariesTuple &, const flag_t, const CellInterval &, const BoundaryConfiguration &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (BoundariesTuple &boundaryConditions, const flag_t flag, const CellVector &cells, const BoundaryConfiguration &parameter)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void setBoundaryHelper (const BoundariesTuple &, const flag_t, const CellVector &, const BoundaryConfiguration &) const
Boundary Treatment (private helper functions)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void beforeBoundaryTreatment (BoundariesTuple &boundaryConditions)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void beforeBoundaryTreatment (const BoundariesTuple &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void afterBoundaryTreatment (BoundariesTuple &boundaryConditions)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void afterBoundaryTreatment (const BoundariesTuple &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 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>
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>
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>
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
Remove Boundary Cells (private helper functions)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void removeBoundaryHelper (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 = std::tuple_size_v<BoundariesTuple> - 1>
void removeBoundaryHelper (const BoundariesTuple &, const cell_idx_t, const cell_idx_t, const cell_idx_t, const bool) 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_
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>
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>
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)
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 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>
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>
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>
void getBoundaryConditions (const BoundariesTuple &boundaryConditions, std::vector< std::string > &bcs) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 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 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, const CellInterval &interval, const bool assumeIdenticalFlagMapping=true)
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
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
flag_t getBoundaryMask (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
flag_t getBoundaryMask (const BoundariesTuple &, const BoundaryUID &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
bool containsBoundaryCondition (const BoundariesTuple &boundaryConditions, const BoundaryUID &uid) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
bool containsBoundaryCondition (const BoundariesTuple &, const BoundaryUID &) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
BoundaryUID getBoundaryUID (const BoundariesTuple &boundaryConditions, const flag_t flag) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
BoundaryUID getBoundaryUID (const BoundariesTuple &, const flag_t flagUID) const
CellInterval getGhostLayerCellInterval (const uint_t numberOfGhostLayersToInclude) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void setupBoundaryConditions (BoundariesTuple &boundaryConditions)
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void setupBoundaryConditions (const BoundariesTuple &) const
std::vector< BoundaryUIDgetBoundaryUIDs () const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void getBoundaryUIDs (const BoundariesTuple &boundaryConditions, std::vector< BoundaryUID > &uids) const
template<typename BoundariesTuple, int N = std::tuple_size_v<BoundariesTuple> - 1>
void getBoundaryUIDs (const BoundariesTuple &, std::vector< 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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
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>
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>
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_v<BoundariesTuple> - 1>
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>
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>
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>
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>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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< 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

◆ getNeighborFlagMapping() [2/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

◆ 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>
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>
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>
template<typename BoundariesTuple, int N>
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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename Buffer_T, typename BoundariesTuple, int N>
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/10]

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() [2/10]

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

◆ removeBoundary() [3/10]

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() [4/10]

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() [5/10]

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() [6/10]

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() [7/10]

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() [8/10]

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() [9/10]

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() [10/10]

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

◆ removeBoundaryHelper() [1/2]

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

◆ removeBoundaryHelper() [2/2]

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

◆ 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/6]

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() [2/6]

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() [3/6]

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() [4/6]

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() [5/6]

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() [6/6]

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

◆ setBoundaryHelper() [1/6]

template<typename FlagField_T, typename Stencil, typename... Boundaries>
template<typename BoundariesTuple, int N>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::setBoundaryHelper ( 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

◆ setBoundaryHelper() [2/6]

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

◆ setBoundaryHelper() [3/6]

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

◆ setBoundaryHelper() [4/6]

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

◆ setBoundaryHelper() [5/6]

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

◆ setBoundaryHelper() [6/6]

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

◆ 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>
template<typename BoundariesTuple, int N>
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>
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>
template<typename BoundariesTuple, int N>
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>
template<typename BoundariesTuple, int N>
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>
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>
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>
template<typename Buffer_T, typename BoundariesTuple, int N>
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>
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>
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>
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>
void walberla::boundary::BoundaryHandling< FlagField_T, Stencil, Boundaries >::valueToStream ( std::ostream & os,
const uint8_t value )
inlinestaticprivate

◆ 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: