Template Struct MaterializedOperator

Struct Documentation

template<typename VectorType, typename MatrixType>
struct MaterializedOperator

A linear operator together with optional matrix provenance.

The operator view is deliberately payload-free so it can be combined with operators from other backends. The materializer is the only supported way to recover matrix data: callers must never try to infer a matrix from a generic LinearOperator.

Public Types

using Matrix = MatrixType
using Operator = dealii::LinearOperator<VectorType, VectorType>
using MatrixObserver = dealii::ObserverPointer<const MatrixType>
using Materialize = std::function<std::shared_ptr<MatrixType>()>
using MaterializeInto = std::function<void(MatrixType&)>

Public Functions

inline bool is_materializable() const
inline std::shared_ptr<MatrixType> matrix() const
inline void materialize_into_matrix(MatrixType &destination) const

Materialize directly into the caller’s concrete destination.

inline const MatrixType *source_matrix() const

Return the observed source for a leaf matrix-backed operator.

Public Members

Operator view
Materialize materialize
MaterializeInto materialize_into
MatrixObserver observed_matrix
bool observes_matrix = false
bool direct_matrix = false