- abs_tol1e-50Absolute nonlinear tolerance.
Default:1e-50
C++ Type:Real
Unit:(no unit assumed)
Controllable:No
Description:Absolute nonlinear tolerance.
- damping_factor1Fraction of the full Newton update applied on each nonlinear iteration, and the first trial step taken when 'line_search' is 'backtracking'.
Default:1
C++ Type:Real
Unit:(no unit assumed)
Range:damping_factor > 0 & damping_factor <= 1
Controllable:No
Description:Fraction of the full Newton update applied on each nonlinear iteration, and the first trial step taken when 'line_search' is 'backtracking'.
- line_searchnoneLine search used to shorten the Newton update.
Default:none
C++ Type:MooseEnum
Controllable:No
Description:Line search used to shorten the Newton update.
- line_search_contraction_factor0.5Factor a rejected backtracking trial step is multiplied by to obtain the next one.
Default:0.5
C++ Type:Real
Unit:(no unit assumed)
Range:line_search_contraction_factor > 0 & line_search_contraction_factor < 1
Controllable:No
Description:Factor a rejected backtracking trial step is multiplied by to obtain the next one.
- line_search_max_its10Maximum number of trial steps taken by the backtracking line search.
Default:10
C++ Type:unsigned int
Range:line_search_max_its > 0
Controllable:No
Description:Maximum number of trial steps taken by the backtracking line search.
- line_search_sufficient_decrease0.0001Coefficient of the sufficient decrease condition the backtracking line search requires of the residual norm.
Default:0.0001
C++ Type:Real
Unit:(no unit assumed)
Range:line_search_sufficient_decrease >= 0 & line_search_sufficient_decrease < 1
Controllable:No
Description:Coefficient of the sufficient decrease condition the backtracking line search requires of the residual norm.
- max_its1Maximum nonlinear iterations.
Default:1
C++ Type:unsigned int
Controllable:No
Description:Maximum nonlinear iterations.
- print_level1Solver verbosity.
Default:1
C++ Type:unsigned int
Controllable:No
Description:Solver verbosity.
- rel_tol1e-08Relative nonlinear tolerance.
Default:1e-08
C++ Type:Real
Unit:(no unit assumed)
Controllable:No
Description:Relative nonlinear tolerance.
- use_initial_guessTrueWhether to preserve the current MFEM solution vector as the initial guess for an iterative solver.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to preserve the current MFEM solution vector as the initial guess for an iterative solver.
MFEMNewtonNonlinearSolver
Overview
Defines and builds an mfem::NewtonSolver to solve nonlinear MFEM equation systems.
This solver requires Jacobian information from the MFEM operator and uses the externally configured MFEM linear solver for the inner linear solves.
Damping and line search
By default the full Newton update is applied at each nonlinear iteration. Setting damping_factor to a value below one applies that constant fraction of every update instead, which can keep an update from leaving the region in which the residual is well-behaved at the cost of a slower, linear convergence rate.
Setting line_search = backtracking enables a backtracking line search, which shortens the update only where needed. Starting from the trial step given by damping_factor, the update at the iterate is accepted if it sufficiently reduces the residual norm,
where is line_search_sufficient_decrease. If it does not, the trial step is multiplied by line_search_contraction_factor and tested again, for at most line_search_max_its trial steps. Each trial step costs one residual evaluation. If no trial step satisfies the condition the nonlinear solve is terminated and reported as not converged.
Define this object in the Solvers block.
Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.