36 :
DarcySolver(M.NumRows(), B.NumRows()), op_(offsets_), prec_(offsets_),
62 for (
int dof : ess_zero_dofs_) { y[dof] = 0.0; }
Operator & GetDiagonalBlock(int iblock)
Return a reference to block i,i.
void SetDiagonalBlock(int iblock, Operator *op)
Add a square block op in the block-entry (iblock, iblock).
void SetBlock(int iRow, int iCol, Operator *op, real_t c=1.0)
Add a block op in the block-entry (iblock, jblock).
The BoomerAMG solver in hypre.
Jacobi preconditioner in hypre.
Wrapper for hypre's ParCSR matrix class.
void GetDiag(Vector &diag) const
Get the local diagonal of the matrix.
Abstract base class for iterative solver.
void SetRelTol(real_t rtol)
virtual void SetPrintLevel(int print_lvl)
Legacy method to set the level of verbosity of the solver output.
void SetMaxIter(int max_it)
void SetAbsTol(real_t atol)
virtual void Mult(const Vector &b, Vector &x) const
Iterative solution of the linear system using the MINRES method.
virtual void SetOperator(const Operator &op)
Also calls SetOperator for the preconditioner if there is one.
virtual void SetPreconditioner(Solver &pr)
This should be called before SetOperator.
OpType * As() const
Return the Operator pointer statically cast to a specified OpType. Similar to the method Get().
void Reset(OpType *A, bool own_A=true)
Reset the OperatorHandle to the given OpType pointer, A.
virtual void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
BDPMinresSolver(const HypreParMatrix &M, const HypreParMatrix &B, IterSolveParameters param)
Wrapper Block Diagonal Preconditioned MINRES (ex5p)
Abstract solver class for Darcy's flow.
void SetOptions(IterativeSolver &solver, const IterSolveParameters ¶m)
void Transpose(const Table &A, Table &At, int ncols_A_)
Transpose a Table.
HypreParMatrix * ParMult(const HypreParMatrix *A, const HypreParMatrix *B, bool own_matrix)