10 #ifdef MOOSE_MFEM_ENABLED 26 :
Moose::MFEM::NonlinearSolverBase(parameters)
35 solver->iterative_mode = getParam<bool>(
"use_initial_guess");
36 solver->SetRelTol(getParam<mfem::real_t>(
"rel_tol"));
37 solver->SetAbsTol(getParam<mfem::real_t>(
"abs_tol"));
38 solver->SetMaxIter(getParam<unsigned int>(
"max_its"));
39 solver->SetPrintLevel(getParam<unsigned int>(
"print_level"));
52 static_cast<mfem::NewtonSolver &
>(
GetSolver()).SetSolver(solver);
void Mult(const mfem::Vector &rhs, mfem::Vector &x) override
Solve the nonlinear system for the provided right-hand side and solution vector.
MFEMProblem & getMFEMProblem()
Return the owning MFEM problem.
mfem::Solver & GetSolver()
Returns the wrapped MFEM solver.
static InputParameters validParams()
void SetLinearSolver(mfem::Solver &solver) override
Configure the linear solver used inside the nonlinear solve.
MFEMNewtonNonlinearSolver(const InputParameters ¶meters)
std::unique_ptr< mfem::Solver > _solver
Solver to be used for the problem.
registerMooseObject("MooseApp", MFEMNewtonNonlinearSolver)
void SetOperator(const mfem::Operator &op) override
Configure the nonlinear solver with the residual/Jacobian operator.
MPI_Comm getComm()
Return the MPI communicator associated with this FE problem's mesh.
static InputParameters validParams()
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
MooseObject wrapper for mfem::NewtonSolver-backed nonlinear solves.