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 
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
66  private:
68  const Equations* m_eqs ;
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 // ============================================================================
std::vector< Equations > Jacobi
Definition: EqSolver.h:27
virtual StatusCode solver(const Equations &funcs, Arg &arg) const
Solving nonlinear system with N equations in N unknowns of the function "GenFunc".
Definition: EqSolver.cpp:191
Header file for class GaudiAlgorithm.
virtual const std::string & type() const
Retrieve type (concrete class) of the sub-algtool.
Definition: AlgTool.cpp:58
const Equations * m_eqs
Definition: EqSolver.h:68
EqSolver()
default constructor is private
Genfun::Argument Arg
Argument of function "GenFunc" (.
Definition: IEqSolver.h:36
EqSolverMisc & operator=(const EqSolverMisc &)
const Jacobi & jacobi() const
Definition: EqSolver.h:58
std::string m_algType
Definition: EqSolver.h:94
The simplest concrete implementation of IEqSolver interface.
Definition: EqSolver.h:25
const Arg & argument() const
Definition: EqSolver.h:55
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
double m_norm_residual
Definition: EqSolver.h:96
const Equations * equations() const
Definition: EqSolver.h:57
Definition of the basic interface.
Definition: IInterface.h:160
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
EqSolver & operator=(const EqSolver &)
assignment operator is
virtual ~EqSolver()
Destructor.
Definition: EqSolver.cpp:341
double m_max_iter
Definition: EqSolver.h:95
std::vector< const GenFunc * > Equations
Vector of the function "GenFunc" which we solver.
Definition: IEqSolver.h:34
const gsl_multiroot_fdfsolver_type * m_type
Definition: EqSolver.h:97
virtual const IInterface * parent() const
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:65
virtual StatusCode finalize()
standard finalization method
Definition: EqSolver.cpp:328
virtual StatusCode initialize()
Overriding initialize.
Definition: EqSolver.cpp:273
virtual const std::string & name() const
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:51