All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
newton_method_jacobian_functions.h
1 /* Copyright (C) 2004-2012 MBSim Development Team
2  *
3  * This library is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU Lesser General Public
5  * License as published by the Free Software Foundation; either
6  * version 2.1 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public
14  * License along with this library; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * Contact: martin.o.foerg@googlemail.com
18  */
19 
20 #ifndef NUMERICSNEWTONMEHTODFUNCTION_H_
21 #define NUMERICSNEWTONMEHTODFUNCTION_H_
22 
23 #include <fmatvec/fmatvec.h>
24 #include <mbsim/functions/function.h>
25 
26 namespace MBSim {
27 
31  class NewtonJacobianFunction : public Function<fmatvec::SqrMat(fmatvec::Vec)> {
32  public:
37 
38  /*
39  * \brief destructor
40  */
41  virtual ~NewtonJacobianFunction() {
42  }
43 
44  /* GETTER / SETTER*/
45  virtual void setFunction(Function<fmatvec::Vec(fmatvec::Vec)> * function_) {
46  function = function_;
47  }
48  /*****************/
49 
50  /*INHERITED INTERFACE*/
51  virtual fmatvec::SqrMat operator ()(const fmatvec::Vec &x) = 0;
52  /*********************/
53 
54  protected:
56  };
57 
62  public:
67 
68  /*
69  * \brief destructor
70  */
72  }
73 
74  /*INHERITED INTERFACE*/
75  virtual fmatvec::SqrMat operator ()(const fmatvec::Vec &x);
76  };
77 
78 // /*!
79 // * \brief class to compute a Jacobian matrix once at the beginning and then uses it over and over again
80 // *
81 // * \todo: implement
82 // */
83 // class ConstantNewtonJacobianFunction : public NewtonJacobianFunction {
84 // public:
85 // /**
86 // * \brief constructor
87 // */
88 // ConstantNewtonJacobianFunction();
89 //
90 // /*
91 // * \brief destructor
92 // */
93 // virtual ~ConstantNewtonJacobianFunction() {
94 // }
95 //
96 // /*INHERITED INTERFACE*/
97 // virtual fmatvec::SqrMat operator ()(const fmatvec::Vec &x, Function<fmatvec::Vec(fmatvec::Vec)> *function);
98 //
99 // };
100 
101 // /*!
102 // * \brief class use the identity matrix as Jacobian matrix in the newton method yields a fixpoint iteration
103 // *
104 // * \todo: implement
105 // */
106 // class FixpointNewtonJacobianFunction : public NewtonJacobianFunction {
107 // public:
108 // /**
109 // * \brief constructor
110 // */
111 // FixpointNewtonJacobianFunction();
112 //
113 // /*
114 // * \brief destructor
115 // */
116 // virtual ~FixpointNewtonJacobianFunction() {
117 // }
118 //
119 // /*INHERITED INTERFACE*/
120 // virtual fmatvec::SqrMat operator ()(const fmatvec::Vec &x, Function<fmatvec::Vec(fmatvec::Vec)> *function);
121 // };
122 }
123 #endif // NUMERICSNEWTONMEHTODFUNCTION_H_
class to compute the Jacobian matrix for the newton method numerically
Definition: newton_method_jacobian_functions.h:61
base class for square Jacobians used for the newton method
Definition: newton_method_jacobian_functions.h:31
Definition: planar_contour.h:31
NumericalNewtonJacobianFunction()
constructor
Definition: newton_method_jacobian_functions.cc:33
NewtonJacobianFunction()
constructor
Definition: newton_method_jacobian_functions.cc:29

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML