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
 

Protected Types

using StencilForSplit_T = typename std::conditional< Stencil_T::D==uint_t(2), stencil::D2Q9, stencil::D3Q27 >::type
 

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 = typename std::conditional< Stencil_T::D == uint_t(2), stencil::D2Q9, stencil::D3Q27 >::type
protected

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()

template<typename Stencil_T >
walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::~BubbleModel ( )
overridedefault

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()

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

◆ 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 
)
override

◆ reportInterfaceToLiquidConversion()

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

◆ reportLiquidToInterfaceConversion()

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

◆ 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 
)
inlineoverride

◆ setDensityOfAllBubbles()

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

◆ update()

template<typename Stencil_T >
void walberla::free_surface::bubble_model::BubbleModel< Stencil_T >::update
override

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: