| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EqSolver.h
Go to the documentation of this file.
1 // $Id: EqSolver.h,v 1.3 2006/11/30 10:40:53 mato Exp $
2 // ============================================================================
3 #ifndef ALGTOOLS_EQSOLVER_H
4 #define ALGTOOLS_EQSOLVER_H 1
5 // Include files
6 // from CLHEP
7 #include "CLHEP/GenericFunctions/GenericFunctions.hh"
8 #include "CLHEP/GenericFunctions/Argument.hh"
9 #include "CLHEP/GenericFunctions/AbsFunction.hh"
10 // from Gaudi
11 #include "GaudiAlg/GaudiTool.h"
12 //from GSL
13 #include "gsl/gsl_multiroots.h"
14
15 // local
16 #include "GaudiGSL/IEqSolver.h"
17
25 class EqSolver : public extends1<GaudiTool, IEqSolver> {
26 public:
27 typedef std::vector<Equations> Jacobi ;
28 public:
29
35 virtual StatusCode solver( const Equations& funcs ,
36 Arg& arg ) const;
37
39 virtual StatusCode initialize ();
40 virtual StatusCode finalize ();
41
42 virtual ~EqSolver( );
43
44 class EqSolverMisc
45 {
46 public:
50 EqSolverMisc ( const Equations& funcs ,
51 Arg& arg ) ;
52 // destructor
53 ~EqSolverMisc ();
54 public:
55 inline const Arg& argument () const { return m_argum ; }
56 inline Arg& argument () { return m_argum ; }
57 inline const Equations* equations () const { return m_eqs ; }
58 inline const Jacobi& jacobi () const { return m_jac ; }
59 private:
60 // default constructor is disabled
61 EqSolverMisc () ;
62 // copy constructor is disabled
63 EqSolverMisc ( const EqSolverMisc& );
64 // assignment operator is disabled
65 EqSolverMisc& operator=( const EqSolverMisc& );
66 private:
67 Arg m_argum ;
68 const Equations* m_eqs ;
69 Jacobi m_jac ;
70 };
71
72
79 EqSolver( const std::string& type,
80 const std::string& name,
81 const IInterface* parent);
82
83 private:
84
86 EqSolver();
88 EqSolver ( const EqSolver& );
90 EqSolver& operator=( const EqSolver& );
91
92 private:
93
94 std::string m_algType ;
95 double m_max_iter ;
96 double m_norm_residual ;
97 const gsl_multiroot_fdfsolver_type* m_type ;
98
99 };
100
101 // ============================================================================
102 // The END
103 // ============================================================================
104 #endif // ALGTOOLS_EQSOLVER_H
105 // ============================================================================