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

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: