diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-05-19 08:33:16 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-05-19 08:33:16 +0000 |
commit | 2c8bb59d4ccca47c5342ee030f31e13c0cb2674b (patch) | |
tree | db127642457cd6bccf32f0d8a5dea3c83f8d67db /src/test/AcceleratorBenchmarkTest.cc | |
parent | b88deff7c45593bb6ad0780b70ce929346056aae (diff) | |
download | vhc-2c8bb59d4ccca47c5342ee030f31e13c0cb2674b.tar.gz vhc-2c8bb59d4ccca47c5342ee030f31e13c0cb2674b.tar.bz2 vhc-2c8bb59d4ccca47c5342ee030f31e13c0cb2674b.zip |
Migration des particules vers les faisceau.
Il reste une subtilite a gerer: pour des raisons de compatibilite, un accelerateur contient toujours une methode getParticles(). Celle-ci renvoi une concatenation de tous les particules de tous les faisceaux de l'accelerateur.
Or il y a un probleme d'allocation de la memoire avec cette methode (temporairement repare dans cette revision mais degeu!). Je vois deux solutions:
1) changer tous les test qui appellent la methode getParticles()
2) essayer de reparer le probleme d'allocation (difficile et je ne sais pas si c'est possible)
Diffstat (limited to 'src/test/AcceleratorBenchmarkTest.cc')
-rw-r--r-- | src/test/AcceleratorBenchmarkTest.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/test/AcceleratorBenchmarkTest.cc b/src/test/AcceleratorBenchmarkTest.cc index 671cf03..520d3fe 100644 --- a/src/test/AcceleratorBenchmarkTest.cc +++ b/src/test/AcceleratorBenchmarkTest.cc @@ -17,6 +17,7 @@ #include "FODO.h" #include "Vector3D.h" #include "constants.h" +#include "SingleBeam.h" using namespace vhc; using namespace std; @@ -57,8 +58,6 @@ Accelerator* standard() { acc->add(e7); acc->add(e8); - acc->close(); - Particle p1 = Particle(Vector3D(3.00, 0, 0), constants::PROTON_MASS, constants::E, 2 * constants::GeV, -Vector3D::j); Particle p2 = Particle(Vector3D(2.99, 0, 0), constants::PROTON_MASS, constants::E, 2 * constants::GeV, -Vector3D::j); acc->add(p1); @@ -70,7 +69,7 @@ Accelerator* standard() { acc->add(ps[i]); } - + acc->close(); return acc; } @@ -82,7 +81,10 @@ int main() { int steps = 1000; double dt = 1E-11; - cout << "Simulating " << steps << " steps with " << accelerator->getParticles().size() << " particles..."; + cout << "Simulating " << steps << " steps with " << accelerator->getParticles().size() << " particles in " << accelerator->getBeams().size() << " beams..."; + for (Accelerator::BeamCollection::const_iterator i = accelerator->getBeams().begin(); i != accelerator->getBeams().end(); ++i) { + cout << (**i).getParticles().size(); + } cout.flush(); int t0 = clock(); for (int i = 0; i < steps; ++i) { |