walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T > Class Template Reference

#include <DisjoiningPressureBubbleModel.h>

+ Inheritance diagram for walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >:

Public Types

using DistanceField_T = GhostLayerField< DistanceInfo, 1 >
 

Public Member Functions

 DisjoiningPressureBubbleModel (const std::shared_ptr< StructuredBlockForest > &blockStorage, const real_t maxDistance=real_c(7), const real_t disjPressConst=real_c(0.05), bool enableBubbleSplits=true, uint_t distanceFieldUpdateInterval=uint_c(1))
 
 ~DisjoiningPressureBubbleModel () override=default
 
real_t getDensity (IBlock *block, const Cell &cell) const override
 
void update () override
 
ConstBlockDataID getDistanceFieldID ()
 
- Public Member Functions inherited from walberla::free_surface::bubble_model::BubbleModel< Stencil_T >
 BubbleModel (const std::shared_ptr< StructuredBlockForest > &blockStorage, bool enableBubbleSplits)
 
 ~BubbleModel () override=default
 
void initFromFillLevelField (const ConstBlockDataID &fillField)
 
void setDensityOfAllBubbles (real_t rho) override
 
void setAtmosphere (const Cell &cellInGlobalCoordinates, real_t constantRho=real_c(1.0))
 
real_t getDensity (IBlock *block, const Cell &cell) const override
 
void setDensity (IBlock *block, const Cell &cell, real_t value) override
 
const BubbleIDgetBubbleID (IBlock *block, const Cell &cell) const
 
BubbleIDgetBubbleID (IBlock *block, const Cell &cell)
 
void reportFillLevelChange (IBlock *block, const Cell &cell, real_t fillLevelDifference) override
 
void reportLiquidToInterfaceConversion (IBlock *block, const Cell &cell) override
 
void reportInterfaceToLiquidConversion (IBlock *block, const Cell &cell) override
 
ConstBlockDataID getBubbleFieldID () const
 
std::vector< BubbleInfocomputeBubbleStats ()
 
void logBubbleStatsOnRoot ()
 
void update () override
 

Protected Member Functions

void updateDistanceField ()
 
- Protected Member Functions inherited from walberla::free_surface::bubble_model::BubbleModel< Stencil_T >
const BubblegetBubble (IBlock *block, const Cell &cell) const
 
BubblegetBubble (IBlock *block, const Cell &cell)
 
const std::vector< Bubble > & getBubbles () const
 
void handleSplits ()
 
void markAndCreateSplittedBubbles (NewBubbleCommunication &newBubbleComm, const std::vector< bool > &splitIndicator)
 
BubbleField_TgetBubbleField (IBlock *block) const
 

Protected Attributes

real_t maxDistance_
 
real_t disjPressConst_
 
BlockDataID distanceFieldSrcID_
 
BlockDataID distanceFieldDstID_
 
uint_t distanceFieldUpdateInterval_
 
- Protected Attributes inherited from walberla::free_surface::bubble_model::BubbleModel< Stencil_T >
std::shared_ptr< StructuredBlockStorageblockStorage_
 
BlockDataID bubbleFieldID_
 
std::vector< Bubblebubbles_
 
MergeInformation mergeInformation_
 
blockforest::communication::UniformBufferedScheme< StencilForSplit_TbubbleFieldCommunication_
 
std::vector< SplitHintsplitsToProcess_
 
std::shared_ptr< FloodFillInterfacefloodFill_
 
bool enableBubbleSplits_
 

Additional Inherited Members

- Protected Types inherited from walberla::free_surface::bubble_model::BubbleModel< Stencil_T >
using StencilForSplit_T = typename std::conditional< Stencil_T::D==uint_t(2), stencil::D2Q9, stencil::D3Q27 >::type
 
- Static Protected Member Functions inherited from walberla::free_surface::bubble_model::BubbleModel< Stencil_T >
static bool checkForSplit (BubbleField_T *bf, const Cell &cell, BubbleID prevBubbleID)
 
static bool extendedSplitCheck (BubbleField_T *bf, const Cell &cell, BubbleID oldBubbleID, cell_idx_t neighborhood=2)
 
static uint32_t mapNeighborhood (BubbleField_T *bf, stencil::Direction startDir, const Cell &cell, BubbleID bubbleID)
 

Member Typedef Documentation

◆ DistanceField_T

Constructor & Destructor Documentation

◆ DisjoiningPressureBubbleModel()

template<typename Stencil_T >
walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::DisjoiningPressureBubbleModel ( const std::shared_ptr< StructuredBlockForest > &  blockStorage,
const real_t  maxDistance = real_c(7),
const real_t  disjPressConst = real_c(0.05),
bool  enableBubbleSplits = true,
uint_t  distanceFieldUpdateInterval = uint_c(1) 
)
explicit

◆ ~DisjoiningPressureBubbleModel()

Member Function Documentation

◆ getDensity()

template<typename Stencil_T >
real_t walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::getDensity ( IBlock block,
const Cell cell 
) const
inlineoverride

◆ getDistanceFieldID()

template<typename Stencil_T >
ConstBlockDataID walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::getDistanceFieldID ( )
inline

◆ update()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::update ( )
inlineoverride

◆ updateDistanceField()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::updateDistanceField
protected

Member Data Documentation

◆ disjPressConst_

template<typename Stencil_T >
real_t walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::disjPressConst_
protected

◆ distanceFieldDstID_

template<typename Stencil_T >
BlockDataID walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::distanceFieldDstID_
protected

◆ distanceFieldSrcID_

template<typename Stencil_T >
BlockDataID walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::distanceFieldSrcID_
protected

◆ distanceFieldUpdateInterval_

template<typename Stencil_T >
uint_t walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::distanceFieldUpdateInterval_
protected

◆ maxDistance_

template<typename Stencil_T >
real_t walberla::free_surface::bubble_model::DisjoiningPressureBubbleModel< Stencil_T >::maxDistance_
protected

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