Public Types | Public Member Functions | Friends | List of all members
LinearSolver::Schwarz::ElementCenteredSubdomainDataIterator< Const, Dim, TagsList > Struct Template Reference

Iterate over LinearSolver::Schwarz::ElementCenteredSubdomainData More...

#include <ElementCenteredSubdomainData.hpp>

Public Types

using difference_type = ptrdiff_t
 
using value_type = double
 
using pointer = value_type *
 
using reference = value_type &
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

 ElementCenteredSubdomainDataIterator (PtrType data) noexcept
 Construct begin state.
 
void reset () noexcept
 
 ElementCenteredSubdomainDataIterator () noexcept
 Construct end state.
 
ElementCenteredSubdomainDataIteratoroperator++ () noexcept
 
tmpl::conditional_t< Const, double, double & > operator* () const noexcept
 

Friends

bool operator== (const ElementCenteredSubdomainDataIterator &lhs, const ElementCenteredSubdomainDataIterator &rhs) noexcept
 
bool operator!= (const ElementCenteredSubdomainDataIterator &lhs, const ElementCenteredSubdomainDataIterator &rhs) noexcept
 

Detailed Description

template<bool Const, size_t Dim, typename TagsList>
struct LinearSolver::Schwarz::ElementCenteredSubdomainDataIterator< Const, Dim, TagsList >

Iterate over LinearSolver::Schwarz::ElementCenteredSubdomainData

This iterator guarantees that it steps through the data in the same order as long as these conditions are satisfied:

Iterating requires sorting the overlap IDs. If you find this impacts performance, be advised to implement the internal data storage in ElementCenteredSubdomainData so it stores its data contiguously, e.g. by implementing non-owning variables.


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