summaryrefslogtreecommitdiff
path: root/src/test/AcceleratorBenchmarkTest.cc
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-05-19 08:33:16 +0000
committerJakob Odersky <jodersky@gmail.com>2011-05-19 08:33:16 +0000
commit2c8bb59d4ccca47c5342ee030f31e13c0cb2674b (patch)
treedb127642457cd6bccf32f0d8a5dea3c83f8d67db /src/test/AcceleratorBenchmarkTest.cc
parentb88deff7c45593bb6ad0780b70ce929346056aae (diff)
downloadvhc-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.cc10
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) {