|
SpECTRE
2021.08.02
|
A class for an element-wise multiplier of modal coefficients. More...
#include <DiagonalModalOperator.hpp>
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) noexcept | |
| 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) noexcept | |
| Create with the given size and value. More... | |
| VectorImpl (double *start, size_t set_size) noexcept | |
Create a non-owning VectorImpl that points to start | |
| VectorImpl (std::initializer_list< U > list) noexcept | |
Create from an initializer list of T. | |
| VectorImpl ()=default | |
| Empty VectorImpl. | |
| VectorImpl (const VectorImpl< double, DiagonalModalOperator > &rhs) noexcept | |
| VectorImpl (VectorImpl< double, DiagonalModalOperator > &&rhs) noexcept | |
| VectorImpl & | operator= (const double &rhs) noexcept |
| void | destructive_resize (const size_t new_size) noexcept |
| 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 noexcept |
| Returns true if the class owns the data. | |
| void | pup (PUP::er &p) noexcept |
| Serialization for Charm++. | |
| const BaseType & | operator* () const noexcept |
Upcast to BaseType More... | |
| BaseType & | operator* () noexcept |
Upcast to BaseType More... | |
| void | set_data_ref (gsl::not_null< DiagonalModalOperator * > rhs) noexcept |
| Set the VectorImpl to be a reference to another VectorImpl object. | |
| void | set_data_ref (double *const start, const size_t set_size) noexcept |
| Set the VectorImpl to be a reference to another VectorImpl object. | |
Additional Inherited Members | |
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_default_group, DiagonalModalOperator > |
| using | ElementType = double |
| using | TransposeType = VectorImpl< double, DiagonalModalOperator > |
| using | CompositeType = const VectorImpl< double, DiagonalModalOperator > & |
| using | iterator = typename BaseType::Iterator |
| using | const_iterator = typename BaseType::ConstIterator |
Static Public Attributes inherited from VectorImpl< double, DiagonalModalOperator > | |
| static constexpr bool | transpose_flag |
Protected Member Functions inherited from VectorImpl< double, DiagonalModalOperator > | |
| void | reset_pointer_vector (const size_t set_size) noexcept |
Protected Attributes inherited from VectorImpl< double, DiagonalModalOperator > | |
| std::unique_ptr< value_type[]> | 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.