SpECTRE
v2025.03.17
|
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) | |
Construct begin state. | |
void | reset () |
ElementCenteredSubdomainDataIterator () | |
Construct end state. | |
ElementCenteredSubdomainDataIterator & | operator++ () |
tmpl::conditional_t< Const, double, double & > | operator* () const |
Friends | |
bool | operator== (const ElementCenteredSubdomainDataIterator &lhs, const ElementCenteredSubdomainDataIterator &rhs) |
bool | operator!= (const ElementCenteredSubdomainDataIterator &lhs, const ElementCenteredSubdomainDataIterator &rhs) |
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:
overlap_data
doesn't changeelement_data
and the `overlap_data doesn't changeIterating 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.