walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T > Class Template Reference

Detailed Description

template<typename BoundaryHandling_T>
class walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >

Sets a boundary condition at a certain border of the domain (borders are specified by directions).

Configuration file syntax:

   <initializerID>
   {
       direction    W;         // can be W,E,S,N,T,B  and all
       walldistance 0;         // optional (default to 0),
                               // 0 means the first interior layer is set, -1 means ghost layer
                               // 1 first inner slice ...

      ghostLayersToInitialize  // how many ghost layers are initialized in the direction normal to the border
                               // Example: when initializing northern boundary, the parameter controls how far
                               // the slice goes into the W,E,T,B directions, i.e. how many ghost layers are
                               // initialized in these directions
                               // If this parameter is greater than the existing number of ghost layers,
                               // no error is reported, but all ghostlayers are initialized.
                               // Do not mix up this parameter with the parameter "walldistance" which
                               // specifies the distance of the slice to the (in this example) northern boundary.

       <FlagUID>               {  <boundaryConfiguration>   }
   }

The order of these blocks in the configuration file is important, when regions overlap. later config blocks overwrite the previous ones.

#include <BoundaryFromDomainBorder.h>

+ Inheritance diagram for walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >:

Public Member Functions

 BoundaryFromDomainBorder (StructuredBlockStorage &blocks, BlockDataID handlerBlockDataID, CellInterval globalDomain=CellInterval())
 Constructor for BoundaryFromDomainBorder. More...
 
void init (const Config::BlockHandle &blockHandle)
 
void init (BlockStorage &blockStorage, const Config::BlockHandle &blockHandle) override
 
void init (FlagUID flagUID, stencil::Direction direction, cell_idx_t wallDistance=0, cell_idx_t ghostLayersToInitialize=std::numeric_limits< cell_idx_t >::max())
 
void init (BoundaryUID boundaryUID, stencil::Direction direction, const shared_ptr< BoundaryConfiguration > &conf, cell_idx_t wallDistance=0, cell_idx_t ghostLayersToInitialize=std::numeric_limits< cell_idx_t >::max())
 
void initAllBorders (FlagUID flagUID, cell_idx_t wallDistance=0, cell_idx_t ghostLayersToInitialize=std::numeric_limits< cell_idx_t >::max())
 
void initAllBorders (BoundaryUID boundaryUID, const shared_ptr< BoundaryConfiguration > &conf, cell_idx_t wallDistance=0, cell_idx_t ghostLayersToInitialize=std::numeric_limits< cell_idx_t >::max())
 
- Public Member Functions inherited from walberla::geometry::initializer::Initializer
virtual ~Initializer ()=default
 

Protected Member Functions

void init (stencil::Direction direction, cell_idx_t wallDistance, cell_idx_t ghostLayersToInitialize, BoundarySetter< BoundaryHandling_T > &boundarySetter)
 

Protected Attributes

StructuredBlockStorageblocks_
 
BlockDataID handlerBlockDataID_
 
CellInterval globalDomain_
 

Constructor & Destructor Documentation

◆ BoundaryFromDomainBorder()

template<typename Handling >
walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::BoundaryFromDomainBorder ( StructuredBlockStorage blocks,
BlockDataID  handlerBlockDataID,
CellInterval  globalDomain = CellInterval() 
)

Constructor for BoundaryFromDomainBorder.

Parameters
blocksthe structured block storage
handlerBlockDataIDthe id of the BoundaryHandler, which type is the template parameter Handling
globalDomainThis parameter can be used if the simulation domain should be smaller than the number of total cells the StructuredBlockStorage has. Instead of using blockStorage.getDomainCellBB() here a custom cell interval can be given. If the empty CellInterval is given (default), the complete domain is used.

Member Function Documentation

◆ init() [1/5]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::init ( BlockStorage blockStorage,
const Config::BlockHandle blockHandle 
)
overridevirtual

◆ init() [2/5]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::init ( BoundaryUID  boundaryUID,
stencil::Direction  direction,
const shared_ptr< BoundaryConfiguration > &  conf,
cell_idx_t  wallDistance = 0,
cell_idx_t  ghostLayersToInitialize = std::numeric_limits<cell_idx_t>::max() 
)

◆ init() [3/5]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::init ( const Config::BlockHandle blockHandle)

◆ init() [4/5]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::init ( FlagUID  flagUID,
stencil::Direction  direction,
cell_idx_t  wallDistance = 0,
cell_idx_t  ghostLayersToInitialize = std::numeric_limits<cell_idx_t>::max() 
)

◆ init() [5/5]

template<typename BoundaryHandling_T >
void walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >::init ( stencil::Direction  direction,
cell_idx_t  wallDistance,
cell_idx_t  ghostLayersToInitialize,
BoundarySetter< BoundaryHandling_T > &  boundarySetter 
)
protected

◆ initAllBorders() [1/2]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::initAllBorders ( BoundaryUID  boundaryUID,
const shared_ptr< BoundaryConfiguration > &  conf,
cell_idx_t  wallDistance = 0,
cell_idx_t  ghostLayersToInitialize = std::numeric_limits<cell_idx_t>::max() 
)

◆ initAllBorders() [2/2]

template<typename Handling >
void walberla::geometry::initializer::BoundaryFromDomainBorder< Handling >::initAllBorders ( FlagUID  flagUID,
cell_idx_t  wallDistance = 0,
cell_idx_t  ghostLayersToInitialize = std::numeric_limits<cell_idx_t>::max() 
)

Member Data Documentation

◆ blocks_

template<typename BoundaryHandling_T >
StructuredBlockStorage& walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >::blocks_
protected

◆ globalDomain_

template<typename BoundaryHandling_T >
CellInterval walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >::globalDomain_
protected

◆ handlerBlockDataID_

template<typename BoundaryHandling_T >
BlockDataID walberla::geometry::initializer::BoundaryFromDomainBorder< BoundaryHandling_T >::handlerBlockDataID_
protected

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