10 #ifdef MOOSE_MFEM_ENABLED 22 "Chebyshev polynomial smoother backed by mfem::OperatorChebyshevSmoother. " 23 "Symmetric positive definite by construction; the maximum eigenvalue of D^{-1}A " 24 "is estimated automatically via a power method. Suitable as a multigrid smoother.");
25 params.
addParam<
int>(
"order", 2,
"Degree of the Chebyshev polynomial (1-4).");
30 : LinearSolverBase(parameters), _order(getParam<
int>(
"order"))
46 _diag.SetSize(op.Height());
47 op.AssembleDiagonal(
_diag);
48 _solver = std::make_unique<mfem::OperatorChebyshevSmoother>(
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
MFEMProblem & getMFEMProblem()
Return the owning MFEM problem.
mfem::Vector _diag
Assembled diagonal.
registerMooseObject("MooseApp", MFEMOperatorChebyshevSmoother)
std::unique_ptr< mfem::Solver > _solver
Solver to be used for the problem.
mfem::Array< int > _empty_tdofs
The operator supplied by MOOSE is already constrained.
static InputParameters validParams()
Wrapper for mfem::OperatorChebyshevSmoother.
void SetOperator(mfem::Operator &op) override
Updates the solver at the operator level.
MPI_Comm getComm()
Return the MPI communicator associated with this FE problem's mesh.
MFEMOperatorChebyshevSmoother(const InputParameters ¶meters)
static InputParameters validParams()
const int _order
Degree of the Chebyshev polynomial used by the MFEM smoother.
void ErrorVector unsigned int