28 mfem_error(
"SparseSmoother::SetOperator : not a SparseMatrix!");
virtual void Mult(const Vector &x, Vector &y) const
Matrix vector multiplication with GS Smoother.
void SetSize(int s)
Resize the vector to size s.
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 use_abs_diag
Uses abs values of the diagonal entries. Relevant only when type = 0.
bool iterative_mode
If true, use the second argument of Mult() as an initial guess.
void Gauss_Seidel_back(const Vector &x, Vector &y) const
void Jacobi3(const Vector &b, const Vector &x0, Vector &x1, double sc=1.0) const
void mfem_error(const char *msg)
Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.
void DiagScale(const Vector &b, Vector &x, double sc=1.0, bool use_abs_diag=false) const
x = sc b / A_ii. When use_abs_diag = true, |A_ii| is used.
void Jacobi2(const Vector &b, const Vector &x0, Vector &x1, double sc=1.0) const
double p(const Vector &x, double t)
void Gauss_Seidel_forw(const Vector &x, Vector &y) const
Gauss-Seidel forward and backward iterations over a vector x.
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, bool use_abs_diag=false) const
int height
Dimension of the output / number of rows in the matrix.
DSmoother(int t=0, double s=1., int it=1)
Create Jacobi smoother.
virtual void Mult(const Vector &x, Vector &y) const
Matrix vector multiplication with Jacobi smoother.
const SparseMatrix * oper
int width
Dimension of the input / number of columns in the matrix.