| The Gaudi Framework v27r1

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

- File List
- File Members

EqSolver.h
Go to the documentation of this file.
1 #ifndef ALGTOOLS_EQSOLVER_H
2 #define ALGTOOLS_EQSOLVER_H 1
3 // Include files
4 // from CLHEP
5 #include "CLHEP/GenericFunctions/GenericFunctions.hh"
6 #include "CLHEP/GenericFunctions/Argument.hh"
7 #include "CLHEP/GenericFunctions/AbsFunction.hh"
8 // from Gaudi
9 #include "GaudiAlg/GaudiTool.h"
10 //from GSL
11 #include "gsl/gsl_multiroots.h"
12
13 // local
14 #include "GaudiGSL/IEqSolver.h"
15
23 class EqSolver : public extends<GaudiTool,
24 IEqSolver> {
25 public:
26 typedef std::vector<Equations> Jacobi ;
27 public:
28
34 StatusCode solver( const Equations& funcs ,
35 Arg& arg ) const override;
36
38 StatusCode initialize () override;
39 StatusCode finalize () override;
40
41 ~EqSolver( ) override;
42
43 class EqSolverMisc
44 {
45 public:
49 EqSolverMisc ( const Equations& funcs ,
50 Arg& arg ) ;
51 // destructor
52 ~EqSolverMisc ();
53 public:
54 inline const Arg& argument () const { return m_argum ; }
55 inline Arg& argument () { return m_argum ; }
56 inline const Equations* equations () const { return m_eqs ; }
57 inline const Jacobi& jacobi () const { return m_jac ; }
58 private:
59 // default constructor is disabled
60 EqSolverMisc () = delete;
61 // copy constructor is disabled
62 EqSolverMisc ( const EqSolverMisc& ) = delete;
63 // assignment operator is disabled
64 EqSolverMisc& operator=( const EqSolverMisc& ) = delete;
65 private:
66 Arg m_argum ;
67 const Equations* m_eqs ;
68 Jacobi m_jac ;
69 };
70
71
78 EqSolver( const std::string& type,
79 const std::string& name,
80 const IInterface* parent);
81
82 private:
83
85 EqSolver();
87 EqSolver ( const EqSolver& );
89 EqSolver& operator=( const EqSolver& );
90
91 private:
92
93 std::string m_algType ;
94 double m_max_iter ;
95 double m_norm_residual ;
96 const gsl_multiroot_fdfsolver_type* m_type ;
97
98 };
99
100 // ============================================================================
101 // The END
102 // ============================================================================
103 #endif // ALGTOOLS_EQSOLVER_H
104 // ============================================================================
EqSolver::Jacobi
std::vector< Equations > Jacobi
Definition: EqSolver.h:26
GaudiTool.h
Header file for class GaudiAlgorithm.
EqSolver::EqSolverMisc::m_eqs
const Equations * m_eqs
Definition: EqSolver.h:67
EqSolver::EqSolverMisc::m_argum
Arg m_argum
Definition: EqSolver.h:66
EqSolver::EqSolver
EqSolver()
default constructor is private
EqSolver::EqSolverMisc::EqSolverMisc
EqSolverMisc()=delete
EqSolver::EqSolverMisc::jacobi
const Jacobi & jacobi() const
Definition: EqSolver.h:57
EqSolver::solver
StatusCode solver(const Equations &funcs, Arg &arg) const override
Solving nonlinear system with N equations in N unknowns of the function "GenFunc".
Definition: EqSolver.cpp:188
std::string
STL class.
EqSolver::m_algType
std::string m_algType
Definition: EqSolver.h:93
EqSolver
The simplest concrete implementation of IEqSolver interface.
Definition: EqSolver.h:23
EqSolver::initialize
StatusCode initialize() override
Overriding initialize.
Definition: EqSolver.cpp:270
EqSolver::EqSolverMisc::argument
const Arg & argument() const
Definition: EqSolver.h:54
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
EqSolver::EqSolverMisc::~EqSolverMisc
~EqSolverMisc()
Definition: EqSolver.cpp:54
EqSolver::EqSolverMisc
Definition: EqSolver.h:43
EqSolver::m_norm_residual
double m_norm_residual
Definition: EqSolver.h:95
EqSolver::EqSolverMisc::equations
const Equations * equations() const
Definition: EqSolver.h:56
IInterface
Definition of the basic interface.
Definition: IInterface.h:234
EqSolver::operator=
EqSolver & operator=(const EqSolver &)
assignment operator is
EqSolver::EqSolverMisc::m_jac
Jacobi m_jac
Definition: EqSolver.h:68
IEqSolver.h
EqSolver::m_max_iter
double m_max_iter
Definition: EqSolver.h:94
std::vector< Equations >
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
EqSolver::finalize
StatusCode finalize() override
Definition: EqSolver.cpp:325
EqSolver::m_type
const gsl_multiroot_fdfsolver_type * m_type
Definition: EqSolver.h:96
AlgTool::type
const std::string & type() const override
Retrieve type (concrete class) of the sub-algtool.
Definition: AlgTool.cpp:72
EqSolver::EqSolverMisc::operator=
EqSolverMisc & operator=(const EqSolverMisc &)=delete
EqSolver::~EqSolver
~EqSolver() override
Destructor.
Definition: EqSolver.cpp:338
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:65
EqSolver::EqSolverMisc::argument
Arg & argument()
Definition: EqSolver.h:55
AlgTool::parent
const IInterface * parent() const override
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:79