walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D > Class Template Reference

Detailed Description

template<typename Filter_T, bool Pseudo2D = false>
class walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >

Level determination for refinement check based on (scaled) vorticity values.

If (scaled) vorticity magnitude is below lowerLimit in all cells of a block, that block could be coarsened. If the (scaled) vorticity value is above the upperLimit for at least one cell, that block gets marked for refinement. Else, the block remains on the current level.

The scaling originates from neglecting the actual mesh size on the block to obtain different vorticity values for different mesh sizes.

#include <VorticityBasedLevelDetermination.h>

Public Types

using VectorField_T = GhostLayerField< Vector3< real_t >, 1 >
 

Public Member Functions

 VorticityBasedLevelDetermination (const ConstBlockDataID &fieldID, const Filter_T &filter, const real_t upperLimit, const real_t lowerLimit, const uint_t maxLevel)
 
void operator() (std::vector< std::pair< const Block *, uint_t > > &minTargetLevels, std::vector< const Block * > &blocksAlreadyMarkedForRefinement, const BlockForest &forest)
 

Private Attributes

ConstBlockDataID fieldID_
 
Filter_T filter_
 
real_t upperLimit_
 
real_t lowerLimit_
 
uint_t maxLevel_
 

Member Typedef Documentation

◆ VectorField_T

template<typename Filter_T , bool Pseudo2D = false>
using walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::VectorField_T = GhostLayerField<Vector3<real_t>, 1>

Constructor & Destructor Documentation

◆ VorticityBasedLevelDetermination()

template<typename Filter_T , bool Pseudo2D = false>
walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::VorticityBasedLevelDetermination ( const ConstBlockDataID fieldID,
const Filter_T &  filter,
const real_t  upperLimit,
const real_t  lowerLimit,
const uint_t  maxLevel 
)
inline

Member Function Documentation

◆ operator()()

template<typename Filter_T , bool Pseudo2D>
void walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::operator() ( std::vector< std::pair< const Block *, uint_t > > &  minTargetLevels,
std::vector< const Block * > &  blocksAlreadyMarkedForRefinement,
const BlockForest forest 
)

Member Data Documentation

◆ fieldID_

template<typename Filter_T , bool Pseudo2D = false>
ConstBlockDataID walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::fieldID_
private

◆ filter_

template<typename Filter_T , bool Pseudo2D = false>
Filter_T walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::filter_
private

◆ lowerLimit_

template<typename Filter_T , bool Pseudo2D = false>
real_t walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::lowerLimit_
private

◆ maxLevel_

template<typename Filter_T , bool Pseudo2D = false>
uint_t walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::maxLevel_
private

◆ upperLimit_

template<typename Filter_T , bool Pseudo2D = false>
real_t walberla::lbm::refinement::VorticityBasedLevelDetermination< Filter_T, Pseudo2D >::upperLimit_
private

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