19#include "libmesh/transient_system.h"
20#include "libmesh/nonlinear_implicit_system.h"
33 virtual void solve()
override;
39 const std::set<TagID> & vector_tags_to_close)
override;
65 virtual SNES
getSNES()
override;
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Class for containing MooseEnum item information.
Nonlinear system to be solved.
Nonlinear system to be solved.
virtual void potentiallySetupFiniteDifferencing() override
Create finite differencing contexts for assembly of the Jacobian and/or approximating the action of t...
void setupColoringFiniteDifferencedPreconditioner()
According to the nonzero pattern provided in the matrix, a graph is constructed.
ComputeResidualFunctor _nl_residual_functor
virtual libMesh::NonlinearImplicitSystem & sys()
virtual unsigned int getCurrentNonlinearIterationNumber() override
Returns the current nonlinear iteration number.
virtual SNES getSNES() override
virtual ~NonlinearSystem()
void setupStandardFiniteDifferencedPreconditioner()
Form preconditioning matrix via a standard finite difference method column-by-column.
virtual bool matrixFromColoring() const override
Whether a system matrix is formed from coloring.
virtual void stopSolve(const ExecFlagType &exec_flag, const std::set< TagID > &vector_tags_to_close) override
Quit the current solve as soon as possible.
ComputeResidualAndJacobian _resid_and_jac_functor
virtual void setupFiniteDifferencedPreconditioner() override
ComputeFDResidualFunctor _fd_residual_functor
void computeScalingResidual() override
Compute a "residual" for automatic scaling purposes.
libMesh::NonlinearImplicitSystem & _nl_implicit_sys
virtual libMesh::NonlinearSolver< Number > * nonlinearSolver() override
virtual void attachPreconditioner(libMesh::Preconditioner< Number > *preconditioner) override
Attach a customized preconditioner that requires physics knowledge.
virtual void solve() override
Solve the system (using libMesh magic)
virtual void residualAndJacobianTogether() override
Call this method if you want the residual and Jacobian to be computed simultaneously.
virtual bool converged() override
Returns the convergence state.
void computeScalingJacobian() override
Compute a "Jacobian" for automatic scaling purposes.
bool _use_coloring_finite_difference
virtual NumericVector< Number > & RHS() override
virtual const std::string & name() const
NumericVector< Number > * rhs
unsigned get_current_nonlinear_iteration_number() const
std::unique_ptr< NonlinearSolver< Number > > nonlinear_solver