|
SpECTRE
v2025.08.19
|
A class for an element-wise multiplier of modal coefficients. More...
#include <DiagonalModalOperator.hpp>
Public Types | |
| using | BaseType = VectorImpl< double, DiagonalModalOperator > |
Public Types inherited from VectorImpl< double, DiagonalModalOperator > | |
| 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 >, DiagonalModalOperator > |
| using | ElementType = double |
| using | TransposeType = VectorImpl< double, DiagonalModalOperator, default_vector_impl_static_size > |
| using | CompositeType = const VectorImpl< double, DiagonalModalOperator, default_vector_impl_static_size > & |
| using | iterator = typename BaseType::Iterator |
| using | const_iterator = typename BaseType::ConstIterator |
Public Member Functions | |
| DiagonalModalOperator (const DiagonalModalOperator &)=default | |
| DiagonalModalOperator (DiagonalModalOperator &&)=default | |
| DiagonalModalOperator & | operator= (const DiagonalModalOperator &)=default |
| DiagonalModalOperator & | operator= (DiagonalModalOperator &&)=default |
Public Member Functions inherited from VectorImpl< double, DiagonalModalOperator > | |
| 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< DiagonalModalOperator * > 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, DiagonalModalOperator > | |
| static constexpr bool | transpose_flag |
| static constexpr size_t | static_size |
Protected Member Functions inherited from VectorImpl< double, DiagonalModalOperator > | |
| 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, DiagonalModalOperator > | |
| std::unique_ptr< value_type[]> | owned_data_ |
| std::array< double, default_vector_impl_static_size > | static_owned_data_ |
| bool | owning_ |
A class for an element-wise multiplier of modal coefficients.
A DiagonalModalOperator holds an array of factors to multiply by spectral coefficients, and can be either owning (the array is deleted when the DiagonalModalOperator goes out of scope) or non-owning, meaning it just has a pointer to an array.
DiagonalModalOperators are intended to represent a diagonal matrix that can operate (via the * operator) on spectral coefficients represented by ModalVectors easily. Only basic mathematical operations are supported with DiagonalModalOperators. DiagonalModalOperators may be added, subtracted, multiplied, or divided, and may be multiplied with a ModalVector, which results in a new ModalVector. This multiplication is commutative, supporting the interpretation of the ModalVector as either a 'row' or a 'column' vector.
Also, addition, subtraction, multiplication and division of DiagonalModalOperators with doubles is supported.