walberla::mesh::BoundarySetup Class Reference

#include <BoundarySetup.h>

Public Types

enum  Location { INSIDE, OUTSIDE }
 
typedef field::GhostLayerField< uint8_t, uint_t(1) > VoxelizationField
 
typedef std::function< real_t(const Vector3< real_t > &) > DistanceFunction
 

Public Member Functions

 BoundarySetup (const shared_ptr< StructuredBlockStorage > &structuredBlockStorage, const DistanceFunction &distanceFunction, uint_t numGhostLayers, bool doRefinementCorrection=true)
 
 ~BoundarySetup ()
 
template<typename BoundaryHandlingType >
void setDomainCells (BlockDataID boundaryHandlingID, Location domainLocation)
 
template<typename BoundaryHandlingType , typename BoundaryFunction , typename Stencil = stencil::D3Q27>
void setBoundaries (BlockDataID boundaryHandlingID, const BoundaryFunction &boundaryFunction, Location boundaryLocation)
 
template<typename FlagField_T >
void setFlag (BlockDataID flagFieldID, field::FlagUID flagUID, Location boundaryLocation)
 
template<typename FlagField_T , typename BoundaryFunction , typename Stencil = stencil::D3Q27>
void setBoundaryFlag (BlockDataID flagFieldID, field::FlagUID flagUID, boundary::BoundaryUID boundaryUID, const BoundaryFunction &boundaryFunction, Location boundaryLocation)
 
void writeVTKVoxelfile (const std::string &identifier="voxelization", bool writeGhostLayers=false, const std::string &baseFolder=std::string("vtk_out"), const std::string &executionFolder=std::string("voxelization"))
 

Private Member Functions

void divideAndPushCellInterval (const CellInterval &ci, std::queue< CellInterval > &outputQueue)
 
void allocateOrResetVoxelizationField ()
 
void deallocateVoxelizationField ()
 
void voxelize ()
 
void refinementCorrection (StructuredBlockForest &blockForest)
 

Private Attributes

shared_ptr< StructuredBlockStoragestructuredBlockStorage_
 
shared_ptr< BlockDataIDvoxelizationFieldId_
 
DistanceFunction distanceFunction_
 
uint_t numGhostLayers_
 function providing the squared signed distance to an object More...
 
size_t cellVectorChunkSize_
 

Member Typedef Documentation

◆ DistanceFunction

typedef std::function< real_t ( const Vector3< real_t > &) > walberla::mesh::BoundarySetup::DistanceFunction

◆ VoxelizationField

Member Enumeration Documentation

◆ Location

Enumerator
INSIDE 
OUTSIDE 

Constructor & Destructor Documentation

◆ BoundarySetup()

walberla::mesh::BoundarySetup::BoundarySetup ( const shared_ptr< StructuredBlockStorage > &  structuredBlockStorage,
const DistanceFunction distanceFunction,
uint_t  numGhostLayers,
bool  doRefinementCorrection = true 
)

◆ ~BoundarySetup()

walberla::mesh::BoundarySetup::~BoundarySetup ( )
inline

Member Function Documentation

◆ allocateOrResetVoxelizationField()

void walberla::mesh::BoundarySetup::allocateOrResetVoxelizationField ( )
private

◆ deallocateVoxelizationField()

void walberla::mesh::BoundarySetup::deallocateVoxelizationField ( )
private

◆ divideAndPushCellInterval()

void walberla::mesh::BoundarySetup::divideAndPushCellInterval ( const CellInterval ci,
std::queue< CellInterval > &  outputQueue 
)
private

◆ refinementCorrection()

void walberla::mesh::BoundarySetup::refinementCorrection ( StructuredBlockForest blockForest)
private

◆ setBoundaries()

template<typename BoundaryHandlingType , typename BoundaryFunction , typename Stencil >
void walberla::mesh::BoundarySetup::setBoundaries ( BlockDataID  boundaryHandlingID,
const BoundaryFunction &  boundaryFunction,
Location  boundaryLocation 
)

◆ setBoundaryFlag()

template<typename FlagField_T , typename BoundaryFunction , typename Stencil >
void walberla::mesh::BoundarySetup::setBoundaryFlag ( BlockDataID  flagFieldID,
field::FlagUID  flagUID,
boundary::BoundaryUID  boundaryUID,
const BoundaryFunction &  boundaryFunction,
Location  boundaryLocation 
)

◆ setDomainCells()

template<typename BoundaryHandlingType >
void walberla::mesh::BoundarySetup::setDomainCells ( BlockDataID  boundaryHandlingID,
Location  domainLocation 
)

◆ setFlag()

template<typename FlagField_T >
void walberla::mesh::BoundarySetup::setFlag ( BlockDataID  flagFieldID,
field::FlagUID  flagUID,
Location  boundaryLocation 
)

◆ voxelize()

void walberla::mesh::BoundarySetup::voxelize ( )
private

◆ writeVTKVoxelfile()

void walberla::mesh::BoundarySetup::writeVTKVoxelfile ( const std::string &  identifier = "voxelization",
bool  writeGhostLayers = false,
const std::string &  baseFolder = std::string("vtk_out"),
const std::string &  executionFolder = std::string("voxelization") 
)

Member Data Documentation

◆ cellVectorChunkSize_

size_t walberla::mesh::BoundarySetup::cellVectorChunkSize_
private

◆ distanceFunction_

DistanceFunction walberla::mesh::BoundarySetup::distanceFunction_
private

◆ numGhostLayers_

uint_t walberla::mesh::BoundarySetup::numGhostLayers_
private

function providing the squared signed distance to an object

◆ structuredBlockStorage_

shared_ptr< StructuredBlockStorage > walberla::mesh::BoundarySetup::structuredBlockStorage_
private

◆ voxelizationFieldId_

shared_ptr< BlockDataID > walberla::mesh::BoundarySetup::voxelizationFieldId_
private

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