CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

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__
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  //
28  //
29  // Destructor:
30  //
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:
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