51 {
mfem_error (
"Operator::MultTranspose() is not overloaded!"); }
56 mfem_error(
"Operator::GetGradient() is not overloaded!");
57 return const_cast<Operator &
>(*this);
61 void PrintMatlab (std::ostream & out,
int n = 0,
int m = 0);
86 virtual void SetTime(
const double _t) {
t = _t; }
94 mfem_error(
"TimeDependentOperator::ImplicitSolve() is not overloaded!");
111 explicit Solver(
int s = 0,
bool iter_mode =
false)
115 Solver(
int h,
int w,
bool iter_mode =
false)
virtual double GetTime() const
void MultTranspose(const Vector &x, Vector &y) const
Action of the transpose operator.
Solver(int s=0, bool iter_mode=false)
void Mult(const Vector &x, Vector &y) const
Operator application.
Base abstract class for time dependent operators: (x,t) -> f(x,t)
virtual Operator & GetGradient(const Vector &x) const
Evaluate the gradient operator at the point x.
int Width() const
Get the width (size of input) of the Operator. Synonym with NumCols.
virtual void SetTime(const double _t)
virtual void Mult(const Vector &x, Vector &y) const =0
Operator application.
virtual void MultTranspose(const Vector &x, Vector &y) const
Action of the transpose operator.
bool iterative_mode
If true, use the second argument of Mult as an initial guess.
virtual ~TimeDependentOperator()
virtual void MultTranspose(const Vector &x, Vector &y) const
Action of the transpose operator.
Solver(int h, int w, bool iter_mode=false)
Initialize a Solver with height 'h' and width 'w'.
virtual void Mult(const Vector &x, Vector &y) const
Operator application.
TransposeOperator(const Operator &a)
Construct the transpose of a given operator.
int Height() const
Get the height (size of output) of the Operator. Synonym with NumRows.
TimeDependentOperator(int n=0, double _t=0.0)
The operator x -> R*A*P*x.
virtual void ImplicitSolve(const double dt, const Vector &x, Vector &k)
TimeDependentOperator(int h, int w, double _t=0.0)
Operator(int s=0)
Construct a square Operator with given size s (default 0)
IdentityOperator(int n)
Creates I_{nxn}.
void mfem_error(const char *msg)
void PrintMatlab(std::ostream &out, int n=0, int m=0)
Prints operator with input size n and output size m in matlab format.
The transpose of a given operator.
virtual void Mult(const Vector &x, Vector &y) const
Operator application.
virtual void SetOperator(const Operator &op)=0
Set/update the solver for the given operator.
TransposeOperator(const Operator *a)
Construct the transpose of a given operator.
RAPOperator(Operator &Rt_, Operator &A_, Operator &P_)
Construct the RAP operator given R^T, A and P.