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

ClassicalSolver.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id:
5 #include <cmath>
6 
7 namespace Genfun {
8 
9  FUNCTION_OBJECT_IMP(EnergyFunction)
10 
11  EnergyFunction::EnergyFunction(const Classical::Solver & xsolver):
12  solver(xsolver)
13  {}
14 
16  }
17 
19  :AbsFunction(right), solver(right.solver)
20  { }
21 
22 
23  double EnergyFunction::operator() (double t) const {
24  const Classical::PhaseSpace & phaseSpace=solver.phaseSpace();
25  const unsigned int DIM=phaseSpace.dim();
26  Genfun::Argument arg(2*DIM);
27  for (unsigned int i=0;i<phaseSpace.dim();i++) {
28  arg[i] =solver.equationOf(phaseSpace.coordinates()[i])(t);
29  arg[i+DIM]=solver.equationOf(phaseSpace.momenta()[i])(t);
30  }
31  Genfun::GENFUNCTION H = solver.hamiltonian();
32  return H(arg);
33  }
34 
35 
36 } // namespace Genfun
ClassicalSolver.hh
Genfun::AbsFunction
Definition: CLHEP/GenericFunctions/AbsFunction.hh:48
Classical::Solver::hamiltonian
virtual Genfun::GENFUNCTION hamiltonian() const =0
Classical::PhaseSpace::momenta
const Component & momenta() const
Definition: PhaseSpace.cc:70
Genfun::GENFUNCTION
const typedef AbsFunction & GENFUNCTION
Definition: CLHEP/GenericFunctions/AbsFunction.hh:125
PhaseSpace.hh
Genfun::EnergyFunction::operator()
virtual double operator()(double argument) const
Definition: ClassicalSolver.cc:23
Genfun::Argument
Definition: CLHEP/GenericFunctions/Argument.hh:17
Classical
Definition: CLHEP/GenericFunctions/ClassicalSolver.hh:23
Genfun::EnergyFunction
Definition: CLHEP/GenericFunctions/ClassicalSolver.hh:76
i
long i
Definition: JamesRandomSeeding.txt:27
Classical::PhaseSpace::dim
unsigned int dim() const
Definition: PhaseSpace.cc:98
Classical::PhaseSpace::coordinates
const Component & coordinates() const
Definition: PhaseSpace.cc:66
Classical::Solver::phaseSpace
virtual const PhaseSpace & phaseSpace() const =0
Classical::PhaseSpace
Definition: CLHEP/GenericFunctions/PhaseSpace.hh:17
Classical::Solver::equationOf
virtual Genfun::GENFUNCTION equationOf(const Genfun::Variable &v) const =0
FUNCTION_OBJECT_IMP
#define FUNCTION_OBJECT_IMP(classname)
Definition: CLHEP/GenericFunctions/AbsFunction.hh:156
Genfun::EnergyFunction::~EnergyFunction
virtual ~EnergyFunction()
Definition: ClassicalSolver.cc:15
Genfun::EnergyFunction::EnergyFunction
EnergyFunction(const Classical::Solver &)
Definition: ClassicalSolver.cc:11
Genfun
Definition: CLHEP/GenericFunctions/Abs.hh:14