waLBerla 7.2
Loading...
Searching...
No Matches
walberla::free_surface::bubble_model::BubbleModel< Stencil_T > Class Template Reference

#include <BubbleModel.h>

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

Classes

struct  BubbleInfo
 
struct  SplitHint
 

Public Member Functions

 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
 
- Public Member Functions inherited from walberla::free_surface::bubble_model::BubbleModelBase
virtual ~BubbleModelBase ()=default
 

Protected Types

using StencilForSplit_T
 

Protected Member Functions

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
 

Static Protected Member Functions

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)
 

Protected Attributes

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_
 

Member Typedef Documentation

◆ StencilForSplit_T

template<typename Stencil_T >
using walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::StencilForSplit_T
protected
Initial value:
typename std::conditional_t< Stencil_T::D == uint_t(2), stencil::D2Q9, stencil::D3Q27 >
std::size_t uint_t
Definition DataTypes.h:133

Constructor & Destructor Documentation

◆ BubbleModel()

template<typename Stencil_T >
walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::BubbleModel ( const std::shared_ptr< StructuredBlockForest > & blockStorage,
bool enableBubbleSplits )

◆ ~BubbleModel()

Member Function Documentation

◆ checkForSplit()

template<typename Stencil_T >
bool walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::checkForSplit ( BubbleField_T * bf,
const Cell & cell,
BubbleID prevBubbleID )
staticprotected

◆ computeBubbleStats()

template<typename Stencil_T >
std::vector< typename BubbleModel< Stencil_T >::BubbleInfo > walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::computeBubbleStats ( )

◆ extendedSplitCheck()

template<typename Stencil_T >
bool walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::extendedSplitCheck ( BubbleField_T * bf,
const Cell & cell,
BubbleID oldBubbleID,
cell_idx_t neighborhood = 2 )
staticprotected

◆ getBubble() [1/2]

template<typename Stencil_T >
Bubble * walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubble ( IBlock * block,
const Cell & cell )
protected

◆ getBubble() [2/2]

template<typename Stencil_T >
const Bubble * walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubble ( IBlock * block,
const Cell & cell ) const
protected

◆ getBubbleField()

template<typename Stencil_T >
BubbleField_T * walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubbleField ( IBlock * block) const
inlineprotected

◆ getBubbleFieldID()

template<typename Stencil_T >
ConstBlockDataID walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubbleFieldID ( ) const
inline

◆ getBubbleID() [1/2]

template<typename Stencil_T >
BubbleID & walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubbleID ( IBlock * block,
const Cell & cell )

◆ getBubbleID() [2/2]

template<typename Stencil_T >
const BubbleID & walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubbleID ( IBlock * block,
const Cell & cell ) const

◆ getBubbles()

template<typename Stencil_T >
const std::vector< Bubble > & walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::getBubbles ( ) const
inlineprotected

◆ getDensity()

◆ handleSplits()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::handleSplits ( )
protected

◆ initFromFillLevelField()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::initFromFillLevelField ( const ConstBlockDataID & fillField)

◆ logBubbleStatsOnRoot()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::logBubbleStatsOnRoot ( )

◆ mapNeighborhood()

template<typename Stencil_T >
uint32_t walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::mapNeighborhood ( BubbleField_T * bf,
stencil::Direction startDir,
const Cell & cell,
BubbleID bubbleID )
staticprotected

◆ markAndCreateSplittedBubbles()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::markAndCreateSplittedBubbles ( NewBubbleCommunication & newBubbleComm,
const std::vector< bool > & splitIndicator )
protected

◆ reportFillLevelChange()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::reportFillLevelChange ( IBlock * block,
const Cell & cell,
real_t fillLevelDifference )
overridevirtual

◆ reportInterfaceToLiquidConversion()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::reportInterfaceToLiquidConversion ( IBlock * block,
const Cell & cell )
overridevirtual

◆ reportLiquidToInterfaceConversion()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::reportLiquidToInterfaceConversion ( IBlock * block,
const Cell & cell )
overridevirtual

◆ setAtmosphere()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::setAtmosphere ( const Cell & cellInGlobalCoordinates,
real_t constantRho = real_c(1.0) )

◆ setDensity()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::setDensity ( IBlock * block,
const Cell & cell,
real_t value )
inlineoverridevirtual

◆ setDensityOfAllBubbles()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::setDensityOfAllBubbles ( real_t rho)
overridevirtual

◆ update()

Member Data Documentation

◆ blockStorage_

template<typename Stencil_T >
std::shared_ptr< StructuredBlockStorage > walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::blockStorage_
protected

◆ bubbleFieldCommunication_

◆ bubbleFieldID_

template<typename Stencil_T >
BlockDataID walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::bubbleFieldID_
protected

◆ bubbles_

template<typename Stencil_T >
std::vector< Bubble > walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::bubbles_
protected

◆ enableBubbleSplits_

template<typename Stencil_T >
bool walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::enableBubbleSplits_
protected

◆ floodFill_

template<typename Stencil_T >
std::shared_ptr< FloodFillInterface > walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::floodFill_
protected

◆ mergeInformation_

template<typename Stencil_T >
MergeInformation walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::mergeInformation_
protected

◆ splitsToProcess_

template<typename Stencil_T >
std::vector< SplitHint > walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::splitsToProcess_
protected

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