/usr/include/CLHEP/GenericFunctions/PhaseSpace.hh is in libclhep-dev 2.1.2.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | // This is a class the creates an N-Dimensional Phase Space //
// It is for use in computing the time development of classical //
// Hamiltonian Systems. //
// Joe Boudreau October 2011 //
//--------------------------------------------------------------//
#ifndef _PHASE_SPACE_
#define _PHASE_SPACE_
#include "CLHEP/GenericFunctions/Variable.hh"
#include <vector>
namespace Classical {
class PhaseSpace {
public:
// A component is like a vector: of coordinates or momenta:
class Component;
// constructor
PhaseSpace(unsigned int NDIM);
// Destructor
~PhaseSpace();
// Get the dimensionality:
unsigned int dim() const;
// Get the coordinates:
const Component & coordinates() const;
// Get the momenta:
const Component & momenta() const;
// Set starting values for the coordinates or momenta:
void start (const Genfun::Variable & variable, double value);
// Get starting values for the coordinates or momenta:
double startValue(const Genfun::Variable & component) const ;
// Each component has N-dimensions:
class Component {
public:
// Access to the ith element;
Genfun::Variable operator [] (unsigned int i) const;
private:
// Constructor:
Component(unsigned int NDIM, bool isMomentum);
// Destructor:
~Component();
// Illegal operations:
Component (const Component &);
Component & operator=(const Component &);
// Internal clockwork;
class Clockwork;
Clockwork *c;
friend class PhaseSpace;
};
private:
Component _coordinates;
Component _momenta;
std::vector<double> _q0;
std::vector<double> _p0;
unsigned int DIM;
};
}
#endif
|