28 mfem_error(
"SparseSmoother::SetOperator : not a SparseMatrix!");
void DiagScale(const Vector &b, Vector &x, double sc=1.0) const
void SetSize(int s)
Resize the vector if the new size is different.
int Width() const
Get the width (size of input) of the Operator. Synonym with NumCols.
virtual void SetOperator(const Operator &a)
Set/update the solver for the given operator.
bool iterative_mode
If true, use the second argument of Mult as an initial guess.
int Height() const
Get the height (size of output) of the Operator. Synonym with NumRows.
void Jacobi(const Vector &b, const Vector &x0, Vector &x1, double sc) const
virtual void Mult(const Vector &x, Vector &y) const
Matrix vector multiplication with Jacobi smoother.
void mfem_error(const char *msg)
virtual void Mult(const Vector &x, Vector &y) const
Matrix vector multiplication with GS Smoother.
void Gauss_Seidel_back(const Vector &x, Vector &y) const
void Gauss_Seidel_forw(const Vector &x, Vector &y) const
Gauss-Seidel forward and backward iterations over a vector x.
DSmoother(int t=0, double s=1., int it=1)
Create Jacobi smoother.
void Jacobi2(const Vector &b, const Vector &x0, Vector &x1, double sc=1.0) const
void Jacobi3(const Vector &b, const Vector &x0, Vector &x1, double sc=1.0) const
const SparseMatrix * oper