waLBerla 7.2
|
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.
GhostLayerField_T | Type of the ghost-layer field that is shifted periodically |
#include <ShiftedPeriodicity.h>
Public Types | |
using | ValueType = typename GhostLayerField_T::value_type |
using | ShiftType = typename Base::ShiftType |
![]() | |
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) | |
![]() | |
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< ShiftType > | shift () 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 | |
![]() | |
const BlockDataID | fieldID_ |
const uint_t | fieldGhostLayers_ |
cell_idx_t | fSize_ |
|
private |
using walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::ShiftType = typename Base::ShiftType |
using walberla::boundary::ShiftedPeriodicity< GhostLayerField_T >::ValueType = typename GhostLayerField_T::value_type |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
private |