waLBerla 7.2
Loading...
Searching...
No Matches
walberla::mesh::BoundarySetup Class Reference

#include <BoundarySetup.h>

Public Types

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

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
 
size_t cellVectorChunkSize_
 

Member Typedef Documentation

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