12 #ifndef MFEM_AUXILIARY
13 #define MFEM_AUXILIARY
15 #include "../config/config.hpp"
19 #include "../general/tic_toc.hpp"
27 class MatrixCoefficient;
29 class ParBilinearForm;
30 class ParDiscreteLinearOperator;
64 int cg_iterations = 0);
87 int cg_iterations = 1);
100 void SetupAMG(
int system_dimension);
105 int inner_cg_iterations);
117 mutable int inner_aux_iterations;
199 bool useAmgX =
false,
201 int inner_pi_its = 0,
int inner_g_its = 1,
202 Solver* nd_smoother = NULL);
228 #endif // MFEM_USE_MPI
Conjugate gradient method.
Pointer to an Operator of a specified type.
void SetOperator(const Operator &op)
in principle this should set A_ = op;
Abstract parallel finite element space.
MatrixFreeAuxiliarySpace(ParMesh &mesh_lor, Coefficient *alpha_coeff, Coefficient *beta_coeff, MatrixCoefficient *beta_mcoeff, Array< int > &ess_bdr, Operator &curlcurl_oper, Operator &pi,#ifdef MFEM_USE_AMGX bool useAmgX_,#endif int cg_iterations=0)
Pi space constructor.
An auxiliary Maxwell solver for a high-order curl-curl system without high-order assembly.
~MatrixFreeAuxiliarySpace()
Perform AMS cycle with generic Operator objects.
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
void SetOperator(const Operator &op)
Set/update the solver for the given operator.
void SetOperator(const Operator &op)
Set/update the solver for the given operator.
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
Base class for Matrix Coefficients that optionally depend on time and space.
Auxiliary space solvers for MatrixFreeAMS preconditioner.
GeneralAMS(const Operator &curlcurl_op_, const Operator &pi_, const Operator &gradient_, const Operator &pispacesolver_, const Operator &gspacesolver_, const Operator &smoother_, const Array< int > &ess_tdof_list_)
Constructor.
MatrixFreeAMS(ParBilinearForm &aform, Operator &oper, ParFiniteElementSpace &nd_fespace, Coefficient *alpha_coeff, Coefficient *beta_coeff, MatrixCoefficient *beta_mcoeff, Array< int > &ess_bdr,#ifdef MFEM_USE_AMGX bool useAmgX=false,#endif int inner_pi_its=0, int inner_g_its=1, Solver *nd_smoother=NULL)
Construct matrix-free AMS preconditioner.
Wrapper for hypre's ParCSR matrix class.
Class for parallel meshes.
virtual void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).