The Gaudi Framework
v25r3
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
// ============================================================================
EqSolver::Jacobi
std::vector< Equations > Jacobi
Definition:
EqSolver.h:27
EqSolver::solver
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
GaudiTool.h
Header file for class GaudiAlgorithm.
AlgTool::type
virtual const std::string & type() const
Retrieve type (concrete class) of the sub-algtool.
Definition:
AlgTool.cpp:58
EqSolver::EqSolverMisc::m_eqs
const Equations * m_eqs
Definition:
EqSolver.h:68
EqSolver::EqSolverMisc::m_argum
Arg m_argum
Definition:
EqSolver.h:67
EqSolver::EqSolver
EqSolver()
default constructor is private
IEqSolver::Arg
Genfun::Argument Arg
Argument of function "GenFunc" (.
Definition:
IEqSolver.h:36
EqSolver::EqSolverMisc::operator=
EqSolverMisc & operator=(const EqSolverMisc &)
EqSolver::EqSolverMisc::jacobi
const Jacobi & jacobi() const
Definition:
EqSolver.h:58
EqSolver::EqSolverMisc::EqSolverMisc
EqSolverMisc()
EqSolver::m_algType
std::string m_algType
Definition:
EqSolver.h:94
EqSolver
The simplest concrete implementation of IEqSolver interface.
Definition:
EqSolver.h:25
EqSolver::EqSolverMisc::argument
const Arg & argument() const
Definition:
EqSolver.h:55
StatusCode
This class is used for returning status codes from appropriate routines.
Definition:
StatusCode.h:30
EqSolver::EqSolverMisc::~EqSolverMisc
~EqSolverMisc()
Definition:
EqSolver.cpp:57
EqSolver::EqSolverMisc
Definition:
EqSolver.h:44
EqSolver::m_norm_residual
double m_norm_residual
Definition:
EqSolver.h:96
EqSolver::EqSolverMisc::equations
const Equations * equations() const
Definition:
EqSolver.h:57
IInterface
Definition of the basic interface.
Definition:
IInterface.h:160
extends1
Base class used to extend a class implementing other interfaces.
Definition:
extends.h:10
EqSolver::operator=
EqSolver & operator=(const EqSolver &)
assignment operator is
EqSolver::EqSolverMisc::m_jac
Jacobi m_jac
Definition:
EqSolver.h:69
EqSolver::~EqSolver
virtual ~EqSolver()
Destructor.
Definition:
EqSolver.cpp:341
IEqSolver.h
EqSolver::m_max_iter
double m_max_iter
Definition:
EqSolver.h:95
IEqSolver::Equations
std::vector< const GenFunc * > Equations
Vector of the function "GenFunc" which we solver.
Definition:
IEqSolver.h:34
EqSolver::m_type
const gsl_multiroot_fdfsolver_type * m_type
Definition:
EqSolver.h:97
AlgTool::parent
virtual const IInterface * parent() const
Retrieve parent of the sub-algtool.
Definition:
AlgTool.cpp:65
EqSolver::finalize
virtual StatusCode finalize()
standard finalization method
Definition:
EqSolver.cpp:328
EqSolver::initialize
virtual StatusCode initialize()
Overriding initialize.
Definition:
EqSolver.cpp:273
AlgTool::name
virtual const std::string & name() const
Retrieve full identifying name of the concrete tool object.
Definition:
AlgTool.cpp:51
EqSolver::EqSolverMisc::argument
Arg & argument()
Definition:
EqSolver.h:56
GaudiGSL
src
Components
EqSolver.h
Generated on Wed Jul 9 2014 09:54:13 for The Gaudi Framework by
1.8.7