20 #ifndef LIBMESH_DIFF_SOLVER_H 21 #define LIBMESH_DIFF_SOLVER_H 38 template <
typename T>
class NumericVector;
47 const double & norm_delta_u,
49 const double & norm_u,
51 const double & norm_res,
52 const unsigned int iteration) = 0;
92 static std::unique_ptr<DiffSolver> build(sys_type & s);
103 virtual void init ();
109 virtual void reinit ();
116 virtual unsigned int solve () = 0;
138 const sys_type &
system ()
const {
return _system; }
228 INVALID_SOLVE_RESULT = 0,
234 CONVERGED_NO_REASON = 1,
240 CONVERGED_ABSOLUTE_RESIDUAL = 2,
246 CONVERGED_RELATIVE_RESIDUAL = 4,
252 CONVERGED_ABSOLUTE_STEP = 8,
258 CONVERGED_RELATIVE_STEP = 16,
264 DIVERGED_NO_REASON = 32,
271 DIVERGED_MAX_NONLINEAR_ITERATIONS = 64,
277 DIVERGED_BACKTRACKING_FAILURE = 128,
283 DIVERGED_LINEAR_SOLVER_FAILURE = 256
334 #endif // LIBMESH_DIFF_SOLVER_H bool continue_after_max_iterations
Real minimum_linear_tolerance
Real absolute_step_tolerance
unsigned int solve_result()
unsigned int max_nonlinear_iterations
Real absolute_residual_tolerance
Real initial_linear_tolerance
unsigned int _solve_result
unsigned int _inner_iterations
unsigned int total_outer_iterations()
unsigned int max_linear_iterations
const sys_type & system() const
virtual ~LinearSolutionMonitor()
void init(triangulateio &t)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool continue_after_backtrack_failure
unsigned int _outer_iterations
unsigned int total_inner_iterations()
Real relative_residual_tolerance
Real relative_step_tolerance
std::unique_ptr< LinearSolutionMonitor > linear_solution_monitor
virtual void operator()(const NumericVector< Number > &delta_u, const double &norm_delta_u, const NumericVector< Number > &u, const double &norm_u, const NumericVector< Number > &res, const double &norm_res, const unsigned int iteration)=0
Used for solving implicit systems of equations.