12#include "pybind11/pybind11.h"
121 using mfem::Matrix::Matrix;
134 mfem::real_t&
Elem(
int i,
int j)
override;
144 const mfem::real_t&
Elem(
int i,
int j)
const override;
153 mfem::MatrixInverse*
Inverse()
const override;
163 void Finalize(
int skip_zeros)
override;
177 void Mult(
const mfem::Vector &x, mfem::Vector &y)
const override;
186 void MultTranspose(
const mfem::Vector &x, mfem::Vector &y)
const override;
196 void AddMult(
const mfem::Vector &x, mfem::Vector &y,
const mfem::real_t a = 1.0)
const override;
206 void AddMultTranspose(
const mfem::Vector &x, mfem::Vector &y,
const mfem::real_t a = 1.0)
const override;
216 mfem::Operator&
GetGradient(
const mfem::Vector &x)
const override;
250 void RecoverFEMSolution(
const mfem::Vector &X,
const mfem::Vector &b, mfem::Vector &x)
override;
A trampoline class for mfem::Matrix.
mfem::MatrixInverse * Inverse() const override
Get the inverse of the matrix. Pure virtual in mfem::Matrix. Must be overridden in Python....
void RecoverFEMSolution(const mfem::Vector &X, const mfem::Vector &b, mfem::Vector &x) override
Recover the FEM solution. Inherited from mfem::Operator. Can be overridden in Python.
void Finalize(int skip_zeros) override
Finalize matrix assembly. For sparse matrices, this typically involves finalizing the sparse structur...
void MultTranspose(const mfem::Vector &x, mfem::Vector &y) const override
Perform the transpose operator action: y = A^T*x. Inherited from mfem::Operator. Can be overridden in...
void AddMult(const mfem::Vector &x, mfem::Vector &y, const mfem::real_t a=1.0) const override
Perform the action y += a*(A*x). Inherited from mfem::Operator. Can be overridden in Python.
const mfem::Operator * GetProlongation() const override
Get the prolongation operator. Inherited from mfem::Operator. Can be overridden in Python.
const mfem::Operator * GetRestriction() const override
Get the restriction operator. Inherited from mfem::Operator. Can be overridden in Python.
void Mult(const mfem::Vector &x, mfem::Vector &y) const override
Perform the operator action: y = A*x. Inherited from mfem::Operator. Can be overridden in Python....
void AssembleDiagonal(mfem::Vector &diag) const override
Assemble the diagonal of the operator. Inherited from mfem::Operator. Can be overridden in Python.
mfem::real_t & Elem(int i, int j) override
Access element (i,j) for read/write. Pure virtual in mfem::Matrix. Must be overridden in Python.
void AddMultTranspose(const mfem::Vector &x, mfem::Vector &y, const mfem::real_t a=1.0) const override
Perform the action y += a*(A^T*x). Inherited from mfem::Operator. Can be overridden in Python.
mfem::Operator & GetGradient(const mfem::Vector &x) const override
Get the gradient operator (Jacobian) at a given point x. Inherited from mfem::Operator....
Contains pybind11 helper classes and trampoline classes for interfacing C++ with Python.