OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
newton.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // $Id: newton.h 1348 2013-08-16 00:45:07Z secanell $
3 //
4 // Copyright (C) 2006, 2007, 2008, 2009 by Guido Kanschat
5 //
6 // This file is subject to QPL and may not be distributed
7 // without copyright and license information. Please refer
8 // to the file deal.II/doc/license.html for the text and
9 // further information on this license.
10 //
11 //---------------------------------------------------------------------------
12 
13 #ifndef __deal2__appframe__newton_h
14 #define __deal2__appframe__newton_h
15 
16 #include <appframe/base.h>
17 #include <appframe/residual.h>
18 #include <lac/solver_control.h>
19 
20 
21 namespace dealii
22 {
23  class ParameterHandler;
24  template <typename T> class BlockVector;
25 }
26 
27 namespace AppFrame
28 {
29  template <int dim> class DoFApplication;
30  template <int dim> class LocalIntegrator;
36  class Newton : public ApplicationCopy
37  {
38  public:
45  static const Event bad_derivative;
46 
54 
62  Newton (ApplicationBase& app, const Residual& res);
63 
64  virtual double residual(FEVector& start,
65  const FEVectors& rhs);
66 
70  virtual void solve(FEVector& start,
71  const FEVectors& rhs);
72 
73  virtual void declare_parameters (ParameterHandler& param);
74 
78  void _initialize (ParameterHandler& param);
79 
80  virtual void initialize (ParameterHandler& param);
81 
89  double threshold(double new_value);
90 
95  ReductionControl control;
96  private:
104 
108  SmartPointer<const Residual> compute_residual;
109 
118 
132  unsigned int n_stepsize_iterations;
133 
171  unsigned int debug;
172  };
173 
174 }
175 
176 
177 
178 
179 #endif