11#include "pybind11/pybind11.h"
12#include "pybind11/stl.h"
14namespace py = pybind11;
87 using mfem::Operator::Operator;
102 void Mult(
const mfem::Vector &x, mfem::Vector &y)
const override;
115 void MultTranspose(
const mfem::Vector &x, mfem::Vector &y)
const override;
127 void AddMult(
const mfem::Vector &x, mfem::Vector &y,
const mfem::real_t a = 1.0)
const override;
139 void AddMultTranspose(
const mfem::Vector &x, mfem::Vector &y,
const mfem::real_t a = 1.0)
const override;
153 Operator&
GetGradient(
const mfem::Vector &x)
const override;
207 void RecoverFEMSolution(
const mfem::Vector &X,
const mfem::Vector &b, mfem::Vector &x)
override;
Trampoline class for mfem::Operator.
const mfem::Operator * GetRestriction() const override
Get the restriction operator.
Operator & GetGradient(const mfem::Vector &x) const override
Get the gradient operator (Jacobian) at a given point x.
void AssembleDiagonal(mfem::Vector &diag) const override
Assemble the diagonal of the operator.
void Mult(const mfem::Vector &x, mfem::Vector &y) const override
Perform the operator action: y = A*x.
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).
void MultTranspose(const mfem::Vector &x, mfem::Vector &y) const override
Perform the transpose operator action: y = A^T*x.
void RecoverFEMSolution(const mfem::Vector &X, const mfem::Vector &b, mfem::Vector &x) override
Recover the FEM solution.
const mfem::Operator * GetProlongation() const override
Get the prolongation operator.
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).
Contains pybind11 helper classes and trampoline classes for interfacing C++ with Python.