10#ifdef MOOSE_MFEM_ENABLED
27 void SetOperator(
const mfem::Operator & op)
override;
37 mfem::real_t contraction_factor,
38 mfem::real_t sufficient_decrease);
47 mfem::real_t
ComputeScalingFactor(
const mfem::Vector & x,
const mfem::Vector & b)
const override;
MooseObject wrapper for mfem::NewtonSolver-backed nonlinear solves.
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
void SetLinearSolver(mfem::Solver &solver) override
Configure the linear solver used inside the nonlinear solve.
bool RequiresGradient() const override
Return whether this nonlinear solver requires Jacobian/gradient information from the operator.
bool RequiresExternalLinearSolver() const override
Return whether this nonlinear solver requires an externally configured MFEM linear solver.
static InputParameters validParams()
const InputParameters & parameters() const
Get the parameters of the object.
mfem::NewtonSolver applying a constant damping factor to the Newton update, optionally shortening it ...
void SetDampingFactor(mfem::real_t damping_factor)
Set the fraction of the full Newton update applied.
mfem::real_t ComputeScalingFactor(const mfem::Vector &x, const mfem::Vector &b) const override
Return the fraction of the Newton update to apply at the iterate x.
unsigned int _ls_max_its
Maximum number of trial steps taken by the line search; 0 disables backtracking.
mfem::Vector _ls_x_trial
Trial iterate x - t c evaluated by the line search.
void SetBacktracking(unsigned int max_its, mfem::real_t contraction_factor, mfem::real_t sufficient_decrease)
Enable a backtracking line search taking at most max_its trial steps, each a factor contraction_facto...
DampedNewtonSolver(MPI_Comm comm)
mfem::real_t _ls_sufficient_decrease
Coefficient of the sufficient decrease (Armijo) condition on the residual norm.
void SetOperator(const mfem::Operator &op) override
mfem::real_t _ls_contraction_factor
Factor a rejected trial step is multiplied by to obtain the next one.
mfem::real_t _damping_factor
Fraction of the full Newton update applied, and the line search's initial trial step.
mfem::Vector _ls_r_trial
Residual at the trial iterate.
MooseObject base for nonlinear MFEM solve strategies configured in the input file.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).