walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T > Class Template Reference

#include <FreeSurfaceBoundaryHandling.h>

Classes

class  ExecuteBoundaryHandling
 

Public Types

using flag_t = typename FlagField_T::value_type
 
using Stencil_T = typename LatticeModel_T::Stencil
 
using CommunicationStencil_T = typename std::conditional< LatticeModel_T::Stencil::D==uint_t(2), stencil::D2Q9, stencil::D3Q27 >::type
 
using PdfField_T = lbm::PdfField< LatticeModel_T >
 
using NoSlip_T = lbm::NoSlip< LatticeModel_T, flag_t >
 
using FreeSlip_T = lbm::FreeSlip< LatticeModel_T, FlagField_T >
 
using UBB_T = lbm::UBB< LatticeModel_T, flag_t >
 
using Pressure_T = SimplePressureWithFreeSurface< LatticeModel_T, FlagField_T >
 
using Outlet_T = lbm::Outlet< LatticeModel_T, FlagField_T, 4, 3 >
 
using UBB_Inflow_T = lbm::UBB< LatticeModel_T, flag_t >
 
using BoundaryHandling_T = BoundaryHandling< FlagField_T, Stencil_T, NoSlip_T, UBB_T, UBB_Inflow_T, Pressure_T, Pressure_T, Outlet_T, FreeSlip_T >
 
using FlagInfo_T = FlagInfo< FlagField_T >
 

Public Member Functions

 FreeSurfaceBoundaryHandling (const std::shared_ptr< StructuredBlockForest > &blockForest, BlockDataID pdfFieldID, BlockDataID fillLevelID)
 
void initFromConfig (const Config::BlockHandle &block)
 
template<typename Body_T >
void addFreeSurfaceObject (const Body_T &body, bool addOrSubtract=false)
 
void initFlagsFromFillLevel ()
 
void setNoSlipAtBorder (stencil::Direction d, cell_idx_t wallDistance=cell_idx_c(0))
 
void setNoSlipAtAllBorders (cell_idx_t wallDistance=cell_idx_c(0))
 
void setNoSlipInCell (const Cell &globalCell)
 
void setFreeSlipAtBorder (stencil::Direction d, cell_idx_t wallDistance=cell_idx_c(0))
 
void setFreeSlipAtAllBorders (cell_idx_t wallDistance=cell_idx_c(0))
 
void setFreeSlipInCell (const Cell &globalCell)
 
void setUBBInCell (const Cell &globalCell, const Vector3< real_t > &velocity)
 
void setInflowInCell (const Cell &globalCell, const Vector3< real_t > &velocity)
 
void setPressure (real_t density)
 
void setPressureOutflow (real_t density)
 
void setBodyForce (const Vector3< real_t > &bodyForce)
 
void enableBubbleOutflow (BubbleModelBase *bubbleModel)
 
Vector3< bool > isObstacleInGlobalGhostLayer ()
 
const FlagInfo< FlagField_T > & getFlagInfo () const
 
BlockDataID getHandlingID () const
 
BlockDataID getPdfFieldID () const
 
BlockDataID getFillFieldID () const
 
BlockDataID getFlagFieldID () const
 
ExecuteBoundaryHandling getBoundarySweep () const
 

Static Public Attributes

static const field::FlagUID noSlipFlagID
 
static const field::FlagUID ubbFlagID
 
static const field::FlagUID ubbInflowFlagID
 
static const field::FlagUID pressureFlagID
 
static const field::FlagUID pressureOutflowFlagID
 
static const field::FlagUID outletFlagID
 
static const field::FlagUID freeSlipFlagID
 
static const BoundaryUID noSlipBoundaryID
 
static const BoundaryUID ubbBoundaryID
 
static const BoundaryUID ubbInflowBoundaryID
 
static const BoundaryUID pressureBoundaryID
 
static const BoundaryUID pressureOutflowBoundaryID
 
static const BoundaryUID outletBoundaryID
 
static const BoundaryUID freeSlipBoundaryID
 

Private Member Functions

geometry::initializer::InitializationManager getInitManager ()
 

Private Attributes

FlagInfo< FlagField_TflagInfo_
 
std::shared_ptr< StructuredBlockForestblockForest_
 
BlockDataID flagFieldID_
 
BlockDataID pdfFieldID_
 
BlockDataID fillFieldID_
 
BlockDataID handlingID_
 
blockforest::communication::UniformBufferedScheme< CommunicationStencil_Tcomm_
 

Member Typedef Documentation

◆ BoundaryHandling_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::BoundaryHandling_T = BoundaryHandling< FlagField_T, Stencil_T, NoSlip_T, UBB_T, UBB_Inflow_T, Pressure_T, Pressure_T, Outlet_T, FreeSlip_T >

◆ CommunicationStencil_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::CommunicationStencil_T = typename std::conditional< LatticeModel_T::Stencil::D == uint_t(2), stencil::D2Q9, stencil::D3Q27 >::type

◆ flag_t

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::flag_t = typename FlagField_T::value_type

◆ FlagInfo_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::FlagInfo_T = FlagInfo< FlagField_T >

◆ FreeSlip_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::FreeSlip_T = lbm::FreeSlip< LatticeModel_T, FlagField_T >

◆ NoSlip_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::NoSlip_T = lbm::NoSlip< LatticeModel_T, flag_t >

◆ Outlet_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::Outlet_T = lbm::Outlet< LatticeModel_T, FlagField_T, 4, 3 >

◆ PdfField_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::PdfField_T = lbm::PdfField< LatticeModel_T >

◆ Pressure_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::Pressure_T = SimplePressureWithFreeSurface< LatticeModel_T, FlagField_T >

◆ Stencil_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::Stencil_T = typename LatticeModel_T::Stencil

◆ UBB_Inflow_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::UBB_Inflow_T = lbm::UBB< LatticeModel_T, flag_t >

◆ UBB_T

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
using walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::UBB_T = lbm::UBB< LatticeModel_T, flag_t >

Constructor & Destructor Documentation

◆ FreeSurfaceBoundaryHandling()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::FreeSurfaceBoundaryHandling ( const std::shared_ptr< StructuredBlockForest > &  blockForest,
BlockDataID  pdfFieldID,
BlockDataID  fillLevelID 
)

Member Function Documentation

◆ addFreeSurfaceObject()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
template<typename Body_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::addFreeSurfaceObject ( const Body_T &  body,
bool  addOrSubtract = false 
)
inline

◆ enableBubbleOutflow()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::enableBubbleOutflow ( BubbleModelBase *  bubbleModel)

◆ getBoundarySweep()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
ExecuteBoundaryHandling walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getBoundarySweep ( ) const
inline

◆ getFillFieldID()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getFillFieldID ( ) const
inline

◆ getFlagFieldID()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getFlagFieldID ( ) const
inline

◆ getFlagInfo()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const FlagInfo< FlagField_T >& walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getFlagInfo ( ) const
inline

◆ getHandlingID()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getHandlingID ( ) const
inline

◆ getInitManager()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
geometry::initializer::InitializationManager walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getInitManager
private

◆ getPdfFieldID()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::getPdfFieldID ( ) const
inline

◆ initFlagsFromFillLevel()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::initFlagsFromFillLevel

◆ initFromConfig()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::initFromConfig ( const Config::BlockHandle block)
inline

◆ isObstacleInGlobalGhostLayer()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
Vector3< bool > walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::isObstacleInGlobalGhostLayer

◆ setBodyForce()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setBodyForce ( const Vector3< real_t > &  bodyForce)

◆ setFreeSlipAtAllBorders()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setFreeSlipAtAllBorders ( cell_idx_t  wallDistance = cell_idx_c(0))
inline

◆ setFreeSlipAtBorder()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setFreeSlipAtBorder ( stencil::Direction  d,
cell_idx_t  wallDistance = cell_idx_c(0) 
)
inline

◆ setFreeSlipInCell()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setFreeSlipInCell ( const Cell globalCell)

◆ setInflowInCell()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setInflowInCell ( const Cell globalCell,
const Vector3< real_t > &  velocity 
)

◆ setNoSlipAtAllBorders()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setNoSlipAtAllBorders ( cell_idx_t  wallDistance = cell_idx_c(0))
inline

◆ setNoSlipAtBorder()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setNoSlipAtBorder ( stencil::Direction  d,
cell_idx_t  wallDistance = cell_idx_c(0) 
)
inline

◆ setNoSlipInCell()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setNoSlipInCell ( const Cell globalCell)

◆ setPressure()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setPressure ( real_t  density)
inline

◆ setPressureOutflow()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setPressureOutflow ( real_t  density)

◆ setUBBInCell()

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::setUBBInCell ( const Cell globalCell,
const Vector3< real_t > &  velocity 
)

Member Data Documentation

◆ blockForest_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
std::shared_ptr< StructuredBlockForest > walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::blockForest_
private

◆ comm_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
blockforest::communication::UniformBufferedScheme< CommunicationStencil_T > walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::comm_
private

◆ fillFieldID_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::fillFieldID_
private

◆ flagFieldID_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::flagFieldID_
private

◆ flagInfo_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
FlagInfo< FlagField_T > walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::flagInfo_
private

◆ freeSlipBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::freeSlipBoundaryID
static
Initial value:
=
BoundaryUID("FreeSlip")

◆ freeSlipFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::freeSlipFlagID
static
Initial value:
=
field::FlagUID("FreeSlip")

◆ handlingID_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::handlingID_
private

◆ noSlipBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::noSlipBoundaryID
static
Initial value:
=
BoundaryUID("NoSlip")

◆ noSlipFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::noSlipFlagID
static
Initial value:
=
field::FlagUID("NoSlip")

◆ outletBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::outletBoundaryID
static
Initial value:
=
BoundaryUID("Outlet")

◆ outletFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::outletFlagID
static
Initial value:
=
field::FlagUID("Outlet")

◆ pdfFieldID_

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
BlockDataID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::pdfFieldID_
private

◆ pressureBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::pressureBoundaryID
static
Initial value:
=
BoundaryUID("Pressure")

◆ pressureFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::pressureFlagID
static
Initial value:
=
field::FlagUID("Pressure")

◆ pressureOutflowBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::pressureOutflowBoundaryID
static
Initial value:
=
BoundaryUID("PressureOutflow")

◆ pressureOutflowFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::pressureOutflowFlagID
static
Initial value:
=
field::FlagUID("PressureOutflow")

◆ ubbBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::ubbBoundaryID
static
Initial value:
=
BoundaryUID("UBB")

◆ ubbFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::ubbFlagID
static
Initial value:
=
field::FlagUID("UBB")

◆ ubbInflowBoundaryID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const BoundaryUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::ubbInflowBoundaryID
static
Initial value:
=
BoundaryUID("UBB_Inflow")

◆ ubbInflowFlagID

template<typename LatticeModel_T , typename FlagField_T , typename ScalarField_T >
const field::FlagUID walberla::free_surface::FreeSurfaceBoundaryHandling< LatticeModel_T, FlagField_T, ScalarField_T >::ubbInflowFlagID
static
Initial value:
=
field::FlagUID("UBB_Inflow")

The documentation for this class was generated from the following files:
UID< BUIDGenerator > BoundaryUID
Definition: BoundaryUID.h:32