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

Boundary class optimized for sparse data. More...

#include <BoundaryHandling.hpp>

Public Types

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

Public Member Functions

 BoundaryHandling (std::shared_ptr< StructuredBlockForest > blocks, BlockDataID value_field_id, BlockDataID flag_field_id)
 
void operator() (IBlock *block)
 
bool node_is_boundary (Utils::Vector3i const &node) const
 
auto & get_node_value_at_boundary (Utils::Vector3i const &node) const
 
void set_node_value_at_boundary (Utils::Vector3i const &node, T const &v, BlockAndCell const &bc)
 
void unpack_node (Utils::Vector3i const &node, T const &v)
 
void remove_node_from_boundary (Utils::Vector3i 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
 

Detailed Description

template<typename T, typename BoundaryClass>
class walberla::BoundaryHandling< T, 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 52 of file BoundaryHandling.hpp.

Member Typedef Documentation

◆ FlagField

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

Definition at line 118 of file BoundaryHandling.hpp.

◆ value_type

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

Definition at line 117 of file BoundaryHandling.hpp.

Constructor & Destructor Documentation

◆ BoundaryHandling()

template<typename T , typename BoundaryClass >
walberla::BoundaryHandling< T, BoundaryClass >::BoundaryHandling ( std::shared_ptr< StructuredBlockForest >  blocks,
BlockDataID  value_field_id,
BlockDataID  flag_field_id 
)
inline

Definition at line 120 of file BoundaryHandling.hpp.

References block().

Member Function Documentation

◆ block_dims()

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

Definition at line 174 of file BoundaryHandling.hpp.

References block().

◆ boundary_update()

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

Assign boundary conditions to boundary cells.

Definition at line 166 of file BoundaryHandling.hpp.

◆ get_node_value_at_boundary()

template<typename T , typename BoundaryClass >
auto & walberla::BoundaryHandling< T, BoundaryClass >::get_node_value_at_boundary ( Utils::Vector3i const &  node) const
inline

Definition at line 141 of file BoundaryHandling.hpp.

◆ node_is_boundary()

template<typename T , typename BoundaryClass >
bool walberla::BoundaryHandling< T, BoundaryClass >::node_is_boundary ( Utils::Vector3i const &  node) const
inline

Definition at line 136 of file BoundaryHandling.hpp.

◆ operator()()

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

Definition at line 134 of file BoundaryHandling.hpp.

References block().

◆ remove_node_from_boundary()

template<typename T , typename BoundaryClass >
void walberla::BoundaryHandling< T, BoundaryClass >::remove_node_from_boundary ( Utils::Vector3i const &  node,
BlockAndCell const &  bc 
)
inline

◆ set_node_value_at_boundary()

template<typename T , typename BoundaryClass >
void walberla::BoundaryHandling< T, BoundaryClass >::set_node_value_at_boundary ( Utils::Vector3i const &  node,
T const &  v,
BlockAndCell const &  bc 
)
inline

◆ unpack_node()

template<typename T , typename BoundaryClass >
void walberla::BoundaryHandling< T, BoundaryClass >::unpack_node ( Utils::Vector3i const &  node,
T const &  v 
)
inline

Definition at line 153 of file BoundaryHandling.hpp.


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