CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
GenericFunctions
CLHEP
GenericFunctions
CLHEP/GenericFunctions/RungeKuttaClassicalSolver.hh
Go to the documentation of this file.
1
// This is a class the creates an N-Dimensional Phase Space //
2
3
// It is for use in computing the time development of classical //
4
// Hamiltonian Systems. //
5
6
// Joe Boudreau October 2011 //
7
8
//--------------------------------------------------------------//
9
10
#ifndef _RKClassicalSolver_h__
11
#define _RKClassicalSolver_h__
12
#include "
CLHEP/GenericFunctions/PhaseSpace.hh
"
13
#include "
CLHEP/GenericFunctions/ClassicalSolver.hh
"
14
#include "
CLHEP/GenericFunctions/RKIntegrator.hh
"
15
#include "
CLHEP/GenericFunctions/Variable.hh
"
16
#include "
CLHEP/GenericFunctions/Parameter.hh
"
17
#include <vector>
18
19
namespace
Classical
{
20
21
class
RungeKuttaSolver
:
public
Solver
{
22
23
public
:
24
//
25
// Constructor--takes a hamiltonian and a point in p-space:
26
//
27
RungeKuttaSolver
(
Genfun::GENFUNCTION
H,
const
PhaseSpace
&
phaseSpace
,
const
Genfun::RKIntegrator::RKStepper
*stepper=NULL);
28
//
29
// Destructor:
30
//
31
~RungeKuttaSolver
();
32
//
33
// Returns the time evolution for a variable (q_i or p_i)
34
//
35
virtual
Genfun::GENFUNCTION
equationOf
(
const
Genfun::Variable
&
v
)
const
;
36
//
37
// Returns the phase space
38
//
39
virtual
const
PhaseSpace
&
phaseSpace
()
const
;
40
//
41
// Returns the Hamiltonian (function of the 2N phase space variables).
42
//
43
virtual
Genfun::GENFUNCTION
hamiltonian
()
const
;
44
//
45
// Returns the energy (function of time).
46
//
47
virtual
Genfun::GENFUNCTION
energy
()
const
;
48
//
49
// This is in the rare case that the user needs to edit starting values.
50
// or parameterize the Hamiltonian. Most users: can ignore.
51
virtual
Genfun::Parameter
*
takeQ0
(
unsigned
int
index);
52
virtual
Genfun::Parameter
*
takeP0
(
unsigned
int
index);
53
virtual
Genfun::Parameter
*
createControlParameter
(
const
std::string & variableName=
"anon"
,
54
double
defStartingValue=0.0,
55
double
startingValueMin=0.0,
56
double
startingValueMax=0.0)
const
;
57
58
59
60
private
:
61
62
// Illegal Operations:
63
RungeKuttaSolver
(
const
RungeKuttaSolver
&);
64
RungeKuttaSolver
& operator=(
const
RungeKuttaSolver
&);
65
66
// Clockwork
67
class
Clockwork
;
68
Clockwork
*c;
69
};
70
71
}
72
73
#endif
Classical::RungeKuttaSolver::~RungeKuttaSolver
~RungeKuttaSolver()
Definition:
RungeKuttaClassicalSolver.cc:44
Classical::Solver
Definition:
CLHEP/GenericFunctions/ClassicalSolver.hh:26
ClassicalSolver.hh
Classical::RungeKuttaSolver::Clockwork
Definition:
RungeKuttaClassicalSolver.cc:8
Parameter.hh
RKIntegrator.hh
Classical::RungeKuttaSolver::createControlParameter
virtual Genfun::Parameter * createControlParameter(const std::string &variableName="anon", double defStartingValue=0.0, double startingValueMin=0.0, double startingValueMax=0.0) const
Definition:
RungeKuttaClassicalSolver.cc:64
Genfun::Variable
Definition:
CLHEP/GenericFunctions/Variable.hh:19
Classical::RungeKuttaSolver::phaseSpace
virtual const PhaseSpace & phaseSpace() const
Definition:
RungeKuttaClassicalSolver.cc:56
Classical::RungeKuttaSolver::energy
virtual Genfun::GENFUNCTION energy() const
Definition:
RungeKuttaClassicalSolver.cc:59
Genfun::GENFUNCTION
const typedef AbsFunction & GENFUNCTION
Definition:
CLHEP/GenericFunctions/AbsFunction.hh:125
Classical::RungeKuttaSolver
Definition:
CLHEP/GenericFunctions/RungeKuttaClassicalSolver.hh:21
PhaseSpace.hh
Genfun::RKIntegrator::RKStepper
Definition:
CLHEP/GenericFunctions/RKIntegrator.hh:172
Classical::RungeKuttaSolver::takeQ0
virtual Genfun::Parameter * takeQ0(unsigned int index)
Definition:
RungeKuttaClassicalSolver.cc:71
Variable.hh
Classical::RungeKuttaSolver::takeP0
virtual Genfun::Parameter * takeP0(unsigned int index)
Definition:
RungeKuttaClassicalSolver.cc:74
v
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
Definition:
keyMergeIssues.doc:324
Classical
Definition:
CLHEP/GenericFunctions/ClassicalSolver.hh:23
Classical::PhaseSpace
Definition:
CLHEP/GenericFunctions/PhaseSpace.hh:17
Classical::RungeKuttaSolver::hamiltonian
virtual Genfun::GENFUNCTION hamiltonian() const
Definition:
RungeKuttaClassicalSolver.cc:53
Genfun::Parameter
Definition:
CLHEP/GenericFunctions/Parameter.hh:35
Classical::RungeKuttaSolver::equationOf
virtual Genfun::GENFUNCTION equationOf(const Genfun::Variable &v) const
Definition:
RungeKuttaClassicalSolver.cc:50
Classical::RungeKuttaSolver::RungeKuttaSolver
RungeKuttaSolver(Genfun::GENFUNCTION H, const PhaseSpace &phaseSpace, const Genfun::RKIntegrator::RKStepper *stepper=NULL)
Definition:
RungeKuttaClassicalSolver.cc:21
Generated by
1.8.17