SpECTRE  v2022.06.14
DiagonalModalOperator Class Reference

A class for an element-wise multiplier of modal coefficients. More...

#include <DiagonalModalOperator.hpp>

Public Member Functions

 DiagonalModalOperator (const DiagonalModalOperator &)=default
 
 DiagonalModalOperator (DiagonalModalOperator &&)=default
 
DiagonalModalOperatoroperator= (const DiagonalModalOperator &)=default
 
DiagonalModalOperatoroperator= (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 (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 (const VectorImpl< double, DiagonalModalOperator > &rhs)
 
 VectorImpl (VectorImpl< double, DiagonalModalOperator > &&rhs)
 
VectorImploperator= (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 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

- 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 >
 
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)
 
- Protected Attributes inherited from VectorImpl< double, DiagonalModalOperator >
std::unique_ptr< value_type[]> owned_data_
 
bool owning_
 

Detailed Description

A class for an element-wise multiplier of modal coefficients.

Details

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.


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