Stable preconditioner object seen by outer MFEM solvers. More...
Public Member Functions | |
| MGProxy (MFEMGeometricMultigridSolver &owner) | |
| Constructs a proxy that delegates multigrid rebuilding to the owning MOOSE solver. More... | |
| void | setMG (mfem::GeometricMultigrid &mg) |
| Updates the concrete MFEM multigrid object used by Mult(). More... | |
| void | SetOperator (const mfem::Operator &op) override |
| Rebuilds the owner's multigrid hierarchy for the new outer-solver operator. More... | |
| void | Mult (const mfem::Vector &x, mfem::Vector &y) const override |
| Applies the current concrete MFEM multigrid preconditioner. More... | |
Private Attributes | |
| MFEMGeometricMultigridSolver & | _owner |
| Solver object that owns the concrete multigrid and level data. More... | |
| mfem::GeometricMultigrid * | _mg = nullptr |
| Non-owning pointer to the currently active concrete MFEM multigrid object. More... | |
Stable preconditioner object seen by outer MFEM solvers.
MFEM iterative solvers call SetOperator() on their preconditioner, but mfem::GeometricMultigrid::SetOperator() aborts. This proxy keeps a stable solver address for the outer solver and uses SetOperator() as the hook to rebuild the actual multigrid hierarchy.
Definition at line 82 of file MFEMGeometricMultigridSolver.h.
| MFEMGeometricMultigridSolver::MGProxy::MGProxy | ( | MFEMGeometricMultigridSolver & | owner | ) |
Constructs a proxy that delegates multigrid rebuilding to the owning MOOSE solver.
Definition at line 18 of file MFEMGeometricMultigridSolver.C.
|
override |
Applies the current concrete MFEM multigrid preconditioner.
Definition at line 42 of file MFEMGeometricMultigridSolver.C.
| void MFEMGeometricMultigridSolver::MGProxy::setMG | ( | mfem::GeometricMultigrid & | mg | ) |
Updates the concrete MFEM multigrid object used by Mult().
Definition at line 28 of file MFEMGeometricMultigridSolver.C.
Referenced by MFEMGeometricMultigridSolver::BuildMultigrid().
|
override |
Rebuilds the owner's multigrid hierarchy for the new outer-solver operator.
Definition at line 36 of file MFEMGeometricMultigridSolver.C.
|
private |
Non-owning pointer to the currently active concrete MFEM multigrid object.
Definition at line 102 of file MFEMGeometricMultigridSolver.h.
|
private |
Solver object that owns the concrete multigrid and level data.
Definition at line 99 of file MFEMGeometricMultigridSolver.h.
1.8.14