ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType > Class Template Reference

Lees-Edwards sweep. More...

#include <InterpolateAndShiftAtBoundary.hpp>

Public Member Functions

 InterpolateAndShiftAtBoundary (std::shared_ptr< StructuredBlockForest > blocks, BlockDataID field_id, BlockDataID tmp_field_id, unsigned int n_ghost_layers, unsigned int shear_direction, unsigned int shear_plane_normal, std::function< double()> get_pos_offset, std::function< double()> get_shift=[]() { return 0.0;})
 
FloatType get_pos_offset () const
 
FloatType get_shift () const
 
void operator() (IBlock *block)
 

Detailed Description

template<class FieldType, typename FloatType>
class walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >

Lees-Edwards sweep.

Todo:
Currently only works for 1 MPI rank! It should work in parallel if the MPI domain decomposition for the structured block forest doesn't partition along the shear direction. For example if the shear direction goes along the z-axis, it should be possible to run on 4 MPI ranks with [2, 2, 1]. At the moment, ESPResSo requires system.cell_system.node_grid to be in decreasing order, therefore parallelization requires a shear direction along the z-axis and a MPI node_grid of [x, y, 1] with x >= y. This restriction on the ordering of the node_grid may be lifted in the distant future, when our FFT algorithm is replaced by a new one.

Definition at line 49 of file InterpolateAndShiftAtBoundary.hpp.

Constructor & Destructor Documentation

◆ InterpolateAndShiftAtBoundary()

template<class FieldType , typename FloatType >
walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::InterpolateAndShiftAtBoundary ( std::shared_ptr< StructuredBlockForest >  blocks,
BlockDataID  field_id,
BlockDataID  tmp_field_id,
unsigned int  n_ghost_layers,
unsigned int  shear_direction,
unsigned int  shear_plane_normal,
std::function< double()>  get_pos_offset,
std::function< double()>  get_shift = []() { return 0.0; } 
)
inline

Definition at line 51 of file InterpolateAndShiftAtBoundary.hpp.

Member Function Documentation

◆ get_pos_offset()

template<class FieldType , typename FloatType >
FloatType walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::get_pos_offset ( ) const
inline

Definition at line 79 of file InterpolateAndShiftAtBoundary.hpp.

◆ get_shift()

template<class FieldType , typename FloatType >
FloatType walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::get_shift ( ) const
inline

Definition at line 83 of file InterpolateAndShiftAtBoundary.hpp.

◆ operator()()

template<class FieldType , typename FloatType >
void walberla::InterpolateAndShiftAtBoundary< FieldType, FloatType >::operator() ( IBlock *  block)
inline

Definition at line 85 of file InterpolateAndShiftAtBoundary.hpp.

References block().


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