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
 
autoget_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, intblock_dims (IBlock const &block) const
 
Vector3< doubleget_total_force (IBlock *block) const
 
auto constget_force_vector (IBlock *block) const
 
auto constget_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

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(), and stream.

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(), and stream.

◆ 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.

References stream.

◆ 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(), and stream.

◆ 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

Definition at line 202 of file BoundaryHandling.hpp.

References stream, and walberla::to_cell().

◆ 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

Definition at line 189 of file BoundaryHandling.hpp.

References stream, and walberla::to_cell().

◆ 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: