walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T > Class Template Reference

Detailed Description

template<typename Filter_T>
class walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >

Level determination for refinement check based on local curl.

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.

Parametes upperLimit corresponds to sigma_c, coarsenFactor to c, lowerLimit to c*sigma_c, lengthScaleWeight to r.

#include <CurlBasedLevelDetermination.h>

Public Types

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

Public Member Functions

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

Private Attributes

ConstBlockDataID fieldID_
 
const StructuredBlockForeststructuredBlockForest_
 
Filter_T filter_
 
uint_t maxLevel_
 
real_t upperLimitSqr_
 
real_t lowerLimitSqr_
 
real_t lengthScaleWeight_
 

Member Typedef Documentation

◆ VectorField_T

Constructor & Destructor Documentation

◆ CurlBasedLevelDetermination()

template<typename Filter_T >
walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::CurlBasedLevelDetermination ( const ConstBlockDataID fieldID,
const StructuredBlockForest structuredBlockForest,
const Filter_T &  filter,
const uint_t  maxLevel,
const real_t  upperLimit,
const real_t  lowerLimit,
const real_t  lengthScaleWeight = real_t(2) 
)
inline

Member Function Documentation

◆ operator()()

template<typename Filter_T >
void walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::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 >
ConstBlockDataID walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::fieldID_
private

◆ filter_

template<typename Filter_T >
Filter_T walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::filter_
private

◆ lengthScaleWeight_

template<typename Filter_T >
real_t walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::lengthScaleWeight_
private

◆ lowerLimitSqr_

template<typename Filter_T >
real_t walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::lowerLimitSqr_
private

◆ maxLevel_

template<typename Filter_T >
uint_t walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::maxLevel_
private

◆ structuredBlockForest_

template<typename Filter_T >
const StructuredBlockForest& walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::structuredBlockForest_
private

◆ upperLimitSqr_

template<typename Filter_T >
real_t walberla::lbm::refinement::CurlBasedLevelDetermination< Filter_T >::upperLimitSqr_
private

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