Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
LinearSolver::Schwarz::ElementCenteredSubdomainData< Dim, TagsList > Struct Template Reference

Data on an element-centered subdomain. More...

#include <ElementCenteredSubdomainData.hpp>

Public Types

using ElementData = Variables< TagsList >
 
using OverlapData = ElementData
 
using iterator = ElementCenteredSubdomainDataIterator< false, Dim, TagsList >
 
using const_iterator = ElementCenteredSubdomainDataIterator< true, Dim, TagsList >
 

Public Member Functions

 ElementCenteredSubdomainData (const ElementCenteredSubdomainData &)=default
 
ElementCenteredSubdomainDataoperator= (const ElementCenteredSubdomainData &) noexcept=default
 
 ElementCenteredSubdomainData (ElementCenteredSubdomainData &&) noexcept=default
 
ElementCenteredSubdomainDataoperator= (ElementCenteredSubdomainData &&) noexcept=default
 
 ElementCenteredSubdomainData (const size_t element_num_points) noexcept
 
template<typename UsedForSizeTagsList >
void destructive_resize (const ElementCenteredSubdomainData< Dim, UsedForSizeTagsList > &used_for_size) noexcept
 
 ElementCenteredSubdomainData (Variables< TagsList > local_element_data, OverlapMap< Dim, Variables< TagsList >> local_overlap_data) noexcept
 
size_t size () const noexcept
 
iterator begin () noexcept
 
iterator end () noexcept
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
void pup (PUP::er &p) noexcept
 
template<typename RhsTagsList >
ElementCenteredSubdomainDataoperator+= (const ElementCenteredSubdomainData< Dim, RhsTagsList > &rhs) noexcept
 
template<typename RhsTagsList >
ElementCenteredSubdomainDataoperator-= (const ElementCenteredSubdomainData< Dim, RhsTagsList > &rhs) noexcept
 
ElementCenteredSubdomainDataoperator*= (const double scalar) noexcept
 
ElementCenteredSubdomainDataoperator/= (const double scalar) noexcept
 

Public Attributes

ElementData element_data {}
 
OverlapMap< Dim, OverlapData > overlap_data {}
 

Static Public Attributes

static constexpr size_t volume_dim = Dim
 

Detailed Description

template<size_t Dim, typename TagsList>
struct LinearSolver::Schwarz::ElementCenteredSubdomainData< Dim, TagsList >

Data on an element-centered subdomain.

An element-centered subdomain consists of a central element and overlap regions with all neighboring elements. This class holds data on such a subdomain. It supports vector space operations (addition and scalar multiplication) and an inner product, which allows the use of this data type with linear solvers (see e.g. LinearSolver::Serial::Gmres).


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