MFEM
v3.2
Finite element discretization library
|
The BoomerAMG solver in hypre. More...
#include <hypre.hpp>
Public Member Functions | |
HypreBoomerAMG () | |
HypreBoomerAMG (HypreParMatrix &A) | |
virtual void | SetOperator (const Operator &op) |
Set/update the solver for the given operator. More... | |
void | SetSystemsOptions (int dim) |
void | SetElasticityOptions (ParFiniteElementSpace *fespace) |
void | SetPrintLevel (int print_level) |
virtual | operator HYPRE_Solver () const |
The typecast to HYPRE_Solver returns the internal amg_precond. More... | |
virtual HYPRE_PtrToParSolverFcn | SetupFcn () const |
hypre's internal Setup function More... | |
virtual HYPRE_PtrToParSolverFcn | SolveFcn () const |
hypre's internal Solve function More... | |
virtual | ~HypreBoomerAMG () |
Public Member Functions inherited from mfem::HypreSolver | |
HypreSolver () | |
HypreSolver (HypreParMatrix *_A) | |
virtual void | Mult (const HypreParVector &b, HypreParVector &x) const |
Solve the linear system Ax=b. More... | |
virtual void | Mult (const Vector &b, Vector &x) const |
Operator application. More... | |
virtual | ~HypreSolver () |
Public Member Functions inherited from mfem::Solver | |
Solver (int s=0, bool iter_mode=false) | |
Solver (int h, int w, bool iter_mode=false) | |
Initialize a Solver with height 'h' and width 'w'. More... | |
Public Member Functions inherited from mfem::Operator | |
Operator (int s=0) | |
Construct a square Operator with given size s (default 0) More... | |
Operator (int h, int w) | |
int | Height () const |
Get the height (size of output) of the Operator. Synonym with NumRows. More... | |
int | NumRows () const |
int | Width () const |
Get the width (size of input) of the Operator. Synonym with NumCols. More... | |
int | NumCols () const |
virtual void | MultTranspose (const Vector &x, Vector &y) const |
Action of the transpose operator. More... | |
virtual Operator & | GetGradient (const Vector &x) const |
Evaluate the gradient operator at the point x. More... | |
void | PrintMatlab (std::ostream &out, int n=0, int m=0) const |
Prints operator with input size n and output size m in matlab format. More... | |
virtual | ~Operator () |
Additional Inherited Members | |
Public Attributes inherited from mfem::Solver | |
bool | iterative_mode |
If true, use the second argument of Mult as an initial guess. More... | |
Protected Attributes inherited from mfem::HypreSolver | |
HypreParMatrix * | A |
The linear system matrix. More... | |
HypreParVector * | B |
Right-hand side and solution vector. More... | |
HypreParVector * | X |
int | setup_called |
Was hypre's Setup function called already? More... | |
Protected Attributes inherited from mfem::Operator | |
int | height |
int | width |
mfem::HypreBoomerAMG::HypreBoomerAMG | ( | HypreParMatrix & | A | ) |
|
inlinevirtual |
The typecast to HYPRE_Solver returns the internal amg_precond.
Implements mfem::HypreSolver.
void mfem::HypreBoomerAMG::SetElasticityOptions | ( | ParFiniteElementSpace * | fespace | ) |
A special elasticity version of BoomerAMG that takes advantage of geometric rigid body modes and could perform better on some problems, see "Improving algebraic multigrid interpolation operators for linear elasticity problems", Baker, Kolev, Yang, NLAA 2009, DOI:10.1002/nla.688. As with SetSystemsOptions(), this solver assumes Ordering::byVDIM.
|
virtual |
Set/update the solver for the given operator.
Reimplemented from mfem::HypreSolver.
|
inline |
void mfem::HypreBoomerAMG::SetSystemsOptions | ( | int | dim | ) |
More robust options for systems, such as elasticity. Note that BoomerAMG assumes Ordering::byVDIM in the finite element space used to generate the matrix A.
|
inlinevirtual |
hypre's internal Setup function
Implements mfem::HypreSolver.
|
inlinevirtual |
hypre's internal Solve function
Implements mfem::HypreSolver.