The Gaudi Framework
v26r3
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
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
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 Tue Jul 21 2015 12:23:30 for The Gaudi Framework by
1.8.9.1