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

Boundary class optimized for sparse data. More...

#include <BoundaryHandling.hpp>

Public Types

using value_type = ValueType
 
using FlagField = field::FlagField< uint8_t >
 

Public Member Functions

 BoundaryHandling (std::shared_ptr< StructuredBlockForest > blocks, BlockDataID value_field_id, BlockDataID flag_field_id, CellInterval const &local_domain)
 
void operator() (IBlock *block)
 
bool node_is_boundary (signed_integral_vector auto const &node) const
 
auto & get_node_value_at_boundary (signed_integral_vector auto const &node) const
 
void set_node_value_at_boundary (signed_integral_vector auto const &node, ValueType const &v, BlockAndCell const &bc)
 
void unpack_node (signed_integral_vector auto const &node, ValueType const &v)
 
void remove_node_from_boundary (signed_integral_vector auto const &node, BlockAndCell const &bc)
 
void boundary_update ()
 Assign boundary conditions to boundary cells.
 
std::tuple< int, int, int > block_dims (IBlock const &block) const
 
Vector3< double > get_total_force (IBlock *block) const
 
auto const & get_force_vector (IBlock *block) const
 
auto const & get_index_vector (IBlock const *block) const
 

Detailed Description

template<typename FloatType, typename ValueType, typename BoundaryClass>
class walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >

Boundary class optimized for sparse data.

Instead of storing the boundary data on a vector field, store individual vectors in a map. The global cell is used as key.

Requires a custom communicator: walberla::field::communication::BoundaryPackInfo.

Definition at line 59 of file BoundaryHandling.hpp.

Member Typedef Documentation

◆ FlagField

template<typename FloatType , typename ValueType , typename BoundaryClass >
using walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::FlagField = field::FlagField<uint8_t>

Definition at line 159 of file BoundaryHandling.hpp.

◆ value_type

template<typename FloatType , typename ValueType , typename BoundaryClass >
using walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::value_type = ValueType

Definition at line 158 of file BoundaryHandling.hpp.

Constructor & Destructor Documentation

◆ BoundaryHandling()

template<typename FloatType , typename ValueType , typename BoundaryClass >
walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::BoundaryHandling ( std::shared_ptr< StructuredBlockForest >  blocks,
BlockDataID  value_field_id,
BlockDataID  flag_field_id,
CellInterval const &  local_domain 
)
inline

Definition at line 161 of file BoundaryHandling.hpp.

References block().

Member Function Documentation

◆ block_dims()

template<typename FloatType , typename ValueType , typename BoundaryClass >
std::tuple< int, int, int > walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::block_dims ( IBlock const &  block) const
inline

Definition at line 222 of file BoundaryHandling.hpp.

References block().

◆ boundary_update()

template<typename FloatType , typename ValueType , typename BoundaryClass >
void walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::boundary_update ( )
inline

Assign boundary conditions to boundary cells.

Definition at line 211 of file BoundaryHandling.hpp.

◆ get_force_vector()

template<typename FloatType , typename ValueType , typename BoundaryClass >
auto const & walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_force_vector ( IBlock *  block) const
inline

Definition at line 238 of file BoundaryHandling.hpp.

References block().

◆ get_index_vector()

template<typename FloatType , typename ValueType , typename BoundaryClass >
auto const & walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_index_vector ( IBlock const *  block) const
inline

Definition at line 245 of file BoundaryHandling.hpp.

References block().

◆ get_node_value_at_boundary()

template<typename FloatType , typename ValueType , typename BoundaryClass >
auto & walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_node_value_at_boundary ( signed_integral_vector auto const &  node) const
inline

Definition at line 185 of file BoundaryHandling.hpp.

References walberla::to_cell().

◆ get_total_force()

template<typename FloatType , typename ValueType , typename BoundaryClass >
Vector3< double > walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::get_total_force ( IBlock *  block) const
inline

Definition at line 234 of file BoundaryHandling.hpp.

References block().

◆ node_is_boundary()

template<typename FloatType , typename ValueType , typename BoundaryClass >
bool walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::node_is_boundary ( signed_integral_vector auto const &  node) const
inline

Definition at line 180 of file BoundaryHandling.hpp.

References walberla::to_cell().

◆ operator()()

template<typename FloatType , typename ValueType , typename BoundaryClass >
void walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::operator() ( IBlock *  block)
inline

Definition at line 177 of file BoundaryHandling.hpp.

References block().

◆ remove_node_from_boundary()

template<typename FloatType , typename ValueType , typename BoundaryClass >
void walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::remove_node_from_boundary ( signed_integral_vector auto const &  node,
BlockAndCell const &  bc 
)
inline

◆ set_node_value_at_boundary()

template<typename FloatType , typename ValueType , typename BoundaryClass >
void walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::set_node_value_at_boundary ( signed_integral_vector auto const &  node,
ValueType const &  v,
BlockAndCell const &  bc 
)
inline

◆ unpack_node()

template<typename FloatType , typename ValueType , typename BoundaryClass >
void walberla::BoundaryHandling< FloatType, ValueType, BoundaryClass >::unpack_node ( signed_integral_vector auto const &  node,
ValueType const &  v 
)
inline

Definition at line 197 of file BoundaryHandling.hpp.

References walberla::to_cell().


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