waLBerla 7.2
Loading...
Searching...
No Matches
walberla::boundary::ShiftedPeriodicity< GhostLayerField_T > Class Template Reference

Detailed Description

template<typename GhostLayerField_T>
class walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >

A periodicity boundary condition that adds a user-defined spatial shift to the field when applied.

This shift can prevent the locking of large-scale turbulent features in the flow direction, see e.g., Munters et al. (https://doi.org/10.1063/1.4941912).

Periodicity defined in the blockforest must be turned off in the normal-direction.

This class handles the CPU-specific packing and unpacking of the communication buffers.

Template Parameters
GhostLayerField_TType of the ghost-layer field that is shifted periodically

#include <ShiftedPeriodicity.h>

+ Inheritance diagram for walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >:

Public Types

using ValueType = typename GhostLayerField_T::value_type
 
using ShiftType = typename Base::ShiftType
 
- Public Types inherited from walberla::boundary::ShiftedPeriodicityBase< ShiftedPeriodicity< GhostLayerField_T >, GhostLayerField_T >
using FieldType
 
using ValueType
 
using ShiftType
 

Public Member Functions

 ShiftedPeriodicity (const std::weak_ptr< StructuredBlockForest > &blockForest, const BlockDataID &fieldID, const uint_t fieldGhostLayers, const uint_t normalDir, const uint_t shiftDir, const ShiftType shiftValue)
 
- Public Member Functions inherited from walberla::boundary::ShiftedPeriodicityBase< ShiftedPeriodicity< GhostLayerField_T >, GhostLayerField_T >
 ShiftedPeriodicityBase (const std::weak_ptr< StructuredBlockForest > &blockForest, const BlockDataID &fieldID, const uint_t fieldGhostLayers, const uint_t normalDir, const uint_t shiftDir, const ShiftType shiftValue)
 
Vector3< ShiftTypeshift () const
 
uint_t shiftDirection () const
 
uint_t normalDirection () const
 
void operator() ()
 

Private Types

using Base = ShiftedPeriodicityBase<ShiftedPeriodicity<GhostLayerField_T>, GhostLayerField_T>
 

Private Member Functions

void packBuffer (IBlock *const block, const CellInterval &ci, std::vector< ValueType > &buffer)
 
void unpackBuffer (IBlock *const block, const CellInterval &ci, const std::vector< ValueType > &buffer)
 

Private Attributes

friend Base
 

Additional Inherited Members

- Protected Attributes inherited from walberla::boundary::ShiftedPeriodicityBase< ShiftedPeriodicity< GhostLayerField_T >, GhostLayerField_T >
const BlockDataID fieldID_
 
const uint_t fieldGhostLayers_
 
cell_idx_t fSize_
 

Member Typedef Documentation

◆ Base

template<typename GhostLayerField_T >
using walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::Base = ShiftedPeriodicityBase<ShiftedPeriodicity<GhostLayerField_T>, GhostLayerField_T>
private

◆ ShiftType

template<typename GhostLayerField_T >
using walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::ShiftType = typename Base::ShiftType

◆ ValueType

template<typename GhostLayerField_T >
using walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::ValueType = typename GhostLayerField_T::value_type

Constructor & Destructor Documentation

◆ ShiftedPeriodicity()

template<typename GhostLayerField_T >
walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::ShiftedPeriodicity ( const std::weak_ptr< StructuredBlockForest > & blockForest,
const BlockDataID & fieldID,
const uint_t fieldGhostLayers,
const uint_t normalDir,
const uint_t shiftDir,
const ShiftType shiftValue )
inline

Member Function Documentation

◆ packBuffer()

template<typename GhostLayerField_T >
void walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::packBuffer ( IBlock *const block,
const CellInterval & ci,
std::vector< ValueType > & buffer )
inlineprivate

◆ unpackBuffer()

template<typename GhostLayerField_T >
void walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::unpackBuffer ( IBlock *const block,
const CellInterval & ci,
const std::vector< ValueType > & buffer )
inlineprivate

Member Data Documentation

◆ Base

template<typename GhostLayerField_T >
friend walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::Base
private

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