20 #ifndef LIBMESH_NONLINEAR_IMPLICIT_SYSTEM_H 21 #define LIBMESH_NONLINEAR_IMPLICIT_SYSTEM_H 63 const std::string &
name,
64 const unsigned int number);
205 bool & changed_search_direction,
206 bool & changed_new_soln,
219 virtual void clear ()
override;
225 virtual void reinit ()
override;
230 virtual void solve ()
override;
237 virtual std::pair<unsigned int, Real>
244 virtual void assembly(
bool get_residual,
246 bool apply_heterogeneous_constraints =
false,
247 bool apply_no_constraints =
false)
override;
253 virtual std::string
system_type ()
const override {
return "NonlinearImplicit"; }
309 #endif // LIBMESH_NONLINEAR_IMPLICIT_SYSTEM_H void set_solver_parameters()
virtual ~ComputeResidual()
Manages multiples systems of equations.
std::unique_ptr< NonlinearSolver< Number > > nonlinear_solver
virtual void residual(const NumericVector< Number > &X, NumericVector< Number > &R, sys_type &S)=0
virtual ~ComputePostCheck()
virtual void bounds(NumericVector< Number > &XL, NumericVector< Number > &XU, sys_type &S)=0
NonlinearImplicitSystem(EquationSystems &es, const std::string &name, const unsigned int number)
unsigned int n_nonlinear_iterations() const
virtual void clear() override
virtual void postcheck(const NumericVector< Number > &old_soln, NumericVector< Number > &search_direction, NumericVector< Number > &new_soln, bool &changed_search_direction, bool &changed_new_soln, sys_type &S)=0
unsigned int number() const
Real final_nonlinear_residual() const
unsigned int _n_nonlinear_iterations
virtual ~NonlinearImplicitSystem()
virtual void jacobian(const NumericVector< Number > &X, SparseMatrix< Number > &J, sys_type &S)=0
Real _final_nonlinear_residual
Manages consistently variables, degrees of freedom, coefficient vectors, matrices and non-linear solv...
virtual void operator()(std::vector< NumericVector< Number > *> &sp, sys_type &s)=0
std::unique_ptr< DiffSolver > diff_solver
NonlinearImplicitSystem sys_type
unsigned get_current_nonlinear_iteration_number() const
virtual void solve() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void assembly(bool get_residual, bool get_jacobian, bool apply_heterogeneous_constraints=false, bool apply_no_constraints=false) override
virtual void reinit() override
virtual ~ComputeVectorSubspace()
virtual ~ComputeJacobian()
virtual std::string system_type() const override
const std::string & name() const
virtual void residual_and_jacobian(const NumericVector< Number > &X, NumericVector< Number > *R, SparseMatrix< Number > *J, sys_type &S)=0
Manages consistently variables, degrees of freedom, and coefficient vectors for explicit systems...
virtual ~ComputeResidualandJacobian()
virtual std::pair< unsigned int, Real > get_linear_solve_parameters() const override
Manages consistently variables, degrees of freedom, coefficient vectors, and matrices for implicit sy...