SpECTRE
v2024.09.29
|
A class for storing spectral coefficients on a spectral grid. More...
#include <ModalVector.hpp>
Public Types | |
using | BaseType = VectorImpl< double, ModalVector > |
Public Types inherited from VectorImpl< double, ModalVector > | |
using | value_type = double |
using | size_type = size_t |
using | difference_type = std::ptrdiff_t |
using | BaseType = blaze::CustomVector< double, blaze::AlignmentFlag::unaligned, blaze::PaddingFlag::unpadded, blaze::defaultTransposeFlag, blaze::GroupTag< 0 >, ModalVector > |
using | ElementType = double |
using | TransposeType = VectorImpl< double, ModalVector, default_vector_impl_static_size > |
using | CompositeType = const VectorImpl< double, ModalVector, default_vector_impl_static_size > & |
using | iterator = typename BaseType::Iterator |
using | const_iterator = typename BaseType::ConstIterator |
Public Member Functions | |
ModalVector (const ModalVector &)=default | |
ModalVector (ModalVector &&)=default | |
ModalVector & | operator= (const ModalVector &)=default |
ModalVector & | operator= (ModalVector &&)=default |
Public Member Functions inherited from VectorImpl< double, ModalVector > | |
VectorImpl (size_t set_size) | |
Create with the given size. In debug mode, the vector is initialized to 'NaN' by default. If not initialized to 'NaN', the memory is allocated but not initialized. More... | |
VectorImpl (size_t set_size, double value) | |
Create with the given size and value. More... | |
VectorImpl (const Container &container) | |
Create from a copy of the given container. More... | |
VectorImpl (double *start, size_t set_size) | |
Create a non-owning VectorImpl that points to start | |
VectorImpl (std::initializer_list< U > list) | |
Create from an initializer list of T . | |
VectorImpl ()=default | |
Empty VectorImpl. | |
VectorImpl & | operator= (const double &rhs) |
decltype(auto) | operator[] (const size_t index) |
decltype(auto) | operator[] (const size_t index) const |
void | destructive_resize (const size_t new_size) |
A common operation for checking the size and resizing a memory buffer if needed to ensure that it has the desired size. This operation is not permitted on a non-owning vector. More... | |
bool | is_owning () const |
Returns true if the class owns the data. | |
void | clear () |
Put the class in the default-constructed state. | |
void | pup (PUP::er &p) |
Serialization for Charm++. | |
const BaseType & | operator* () const |
Upcast to BaseType More... | |
BaseType & | operator* () |
Upcast to BaseType More... | |
void | set_data_ref (gsl::not_null< ModalVector * > rhs) |
Set the VectorImpl to be a reference to another VectorImpl object. | |
void | set_data_ref (double *const start, const size_t set_size) |
Set the VectorImpl to be a reference to another VectorImpl object. | |
Additional Inherited Members | |
Static Public Attributes inherited from VectorImpl< double, ModalVector > | |
static constexpr bool | transpose_flag |
static constexpr size_t | static_size |
Protected Member Functions inherited from VectorImpl< double, ModalVector > | |
void | reset_pointer_vector (const size_t set_size) |
std::unique_ptr< value_type[]> | heap_alloc_if_necessary (const size_t set_size) |
Protected Attributes inherited from VectorImpl< double, ModalVector > | |
std::unique_ptr< value_type[]> | owned_data_ |
std::array< double, default_vector_impl_static_size > | static_owned_data_ |
bool | owning_ |
A class for storing spectral coefficients on a spectral grid.
A ModalVector holds an array of spectral coefficients, and can be either owning (the array is deleted when the ModalVector goes out of scope) or non-owning, meaning it just has a pointer to an array.
Only basic mathematical operations are supported with ModalVectors. ModalVectors may be added or subtracted, and the following unary operations are supported:
Also multiplication is supported with doubles and ModalVector
s, and ModalVector
s can be divided by doubles. Multiplication is supported with DiagonalModalOperator
s and ModalVector
s.