waLBerla 7.3
Loading...
Searching...
No Matches
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
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
using BoundaryHandling_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
Initial value:
Definition BoundaryHandling.h:59
lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T
Definition FreeSurfaceBoundaryHandling.h:61
lbm::UBB< LatticeModel_T, flag_t > UBB_T
Definition FreeSurfaceBoundaryHandling.h:63
lbm::UBB< LatticeModel_T, flag_t > UBB_Inflow_T
Definition FreeSurfaceBoundaryHandling.h:66
lbm::FreeSlip< LatticeModel_T, FlagField_T > FreeSlip_T
Definition FreeSurfaceBoundaryHandling.h:62
SimplePressureWithFreeSurface< LatticeModel_T, FlagField_T > Pressure_T
Definition FreeSurfaceBoundaryHandling.h:64
typename LatticeModel_T::Stencil Stencil_T
Definition FreeSurfaceBoundaryHandling.h:55
lbm::Outlet< LatticeModel_T, FlagField_T, 4, 3 > Outlet_T
Definition FreeSurfaceBoundaryHandling.h:65
FlagField< flag_t > FlagField_T
Definition 02_LBMLatticeModelGeneration.cpp:64

◆ 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
Initial value:
typename std::conditional_t< LatticeModel_T::Stencil::D == uint_t{2}, stencil::D2Q9, stencil::D3Q27 >
std::size_t uint_t
Definition DataTypes.h:161

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

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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

◆ 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

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