summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Vazquez <christian.vazquez@epfl.ch>2011-05-04 15:30:43 +0000
committerChristian Vazquez <christian.vazquez@epfl.ch>2011-05-04 15:30:43 +0000
commit3e02a5a6ef3e820678f0d0736815b5c3fb1b9ae5 (patch)
tree003457ac70714c02cb0e4519d90bc374ad7d402c
parentf7a98554a3d0d229397757a2865f43207f367860 (diff)
downloadvhc-3e02a5a6ef3e820678f0d0736815b5c3fb1b9ae5.tar.gz
vhc-3e02a5a6ef3e820678f0d0736815b5c3fb1b9ae5.tar.bz2
vhc-3e02a5a6ef3e820678f0d0736815b5c3fb1b9ae5.zip
1)créé le fichier ElementsSimulationTest
2)mis a jour acceltest 3)mis a jour exerciceP10test
-rw-r--r--src/test/AccelTest.cc15
-rw-r--r--src/test/ElementsSimulationTest.cc79
-rw-r--r--src/test/exerciceP10Test.cc4
3 files changed, 96 insertions, 2 deletions
diff --git a/src/test/AccelTest.cc b/src/test/AccelTest.cc
index 0f76eb9..dc5b9c4 100644
--- a/src/test/AccelTest.cc
+++ b/src/test/AccelTest.cc
@@ -27,8 +27,19 @@ void printTest() {
Accelerator a;
Dipole* d = new Dipole(Vector3D(1,0,0), Vector3D(0,-1,0), 0.1, 1, Vector3D(0,0,7), NULL);
- Particle* p1 = new Particle(Vector3D( 1.00984,-0.191837,0 ), 0.938272, 1.60217653e-19, 2, Vector3D(-210200,-2.64754e+08,0));
- Particle* p2 = new Particle(Vector3D(0.99016,-0.191837,0), 0.938272, 1.60217653e-19, 2, Vector3D(210200,-2.64754e+08,0));
+ Particle* p1 = new Particle(
+ Vector3D( 1.00984,-0.191837,0 ),//position
+ constants::PROTON_MASS,//mass
+ constants::E,//charge
+ 2*constants::GeV,//energy
+ Vector3D(-1,-1,0));//direction
+
+ Particle* p2 = new Particle(
+ Vector3D(0.99016,-0.191837,0),
+ constants::PROTON_MASS,//mass
+ constants::E,//charge
+ 2*constants::GeV,//energy
+ Vector3D(1,-1,0));//direction
a.add(*d);
a.add(*p1);
diff --git a/src/test/ElementsSimulationTest.cc b/src/test/ElementsSimulationTest.cc
new file mode 100644
index 0000000..e6587eb
--- /dev/null
+++ b/src/test/ElementsSimulationTest.cc
@@ -0,0 +1,79 @@
+/*
+ * ElementsSimulationTest.cc
+ *
+ * Created on: 4 mai 2011
+ * Author: christian
+ */
+
+
+#include <iostream>
+#include "exceptions.h"
+#include "CurvedElement.h"
+#include "Dipole.h"
+#include "FODO.h"
+#include "Quadrupole.h"
+#include "Vector3D.h"
+#include "Accelerator.h"
+#include <vector>
+
+using namespace std;
+using namespace vhc;
+
+Particle* standpart(Accelerator* acc){
+
+ Particle* sp = new Particle(
+ acc->getElements().front()->getEntryPosition(),//position
+ constants::PROTON_MASS,//mass
+ constants::E,//charge
+ 2*constants::GeV,//energy
+ Vector3D(-1,-1,0));//direction
+
+ return sp;
+};
+
+int main() {
+
+ Dipole* d = new Dipole(Vector3D(0,0,0), Vector3D(1,2,0), 0.2, 0.2, Vector3D::Null, NULL);
+ Accelerator* a1 = new Accelerator();
+ a1->add(*d);
+
+ Quadrupole* fq = new Quadrupole(Vector3D(0,0,0), Vector3D(1, 0, 0), 0.1, 1.2);
+ Accelerator* a2 = new Accelerator();
+ a2->add(*fq);
+
+ FODO* fodo = new FODO(Vector3D(0,0,0), Vector3D(1, 0,0), 0.2, 0.2, 3);
+ Accelerator* a3 = new Accelerator();
+ a3->add(*fodo);
+
+ vector < Accelerator* > va;
+ va.push_back(a1); va.push_back(a2); va.push_back(a3);
+
+ // on va mettre dans chaque accélérateur une particule d'attributs standards,
+ // mais toutes situées à l'entrée de chaque accélérateur.
+ for(unsigned int i(0); i<va.size(); ++i){
+
+ //on construit trois fois une particule standard initialisée au début de chaque accélérateur
+ Particle* p = standpart( va[i] );
+
+ //on met ensuite ces particules dans les accélérateurs
+ va[i]->add(*p);
+
+ va[i]->enableLinear(true);
+
+ va[i]->close();
+
+ int it(100);
+
+ cout<<*va[i]<<endl;
+
+ //test de simulation
+ for(unsigned int j(0); j<it; ++j){
+ va[i]->step(10E-11);
+ cout<<"after "<<j+1<<" step :"<<endl << (va[i]->getParticles().size())<<endl;
+ }
+
+ }
+
+ return 0;
+}
+
diff --git a/src/test/exerciceP10Test.cc b/src/test/exerciceP10Test.cc
index d16982f..d67d812 100644
--- a/src/test/exerciceP10Test.cc
+++ b/src/test/exerciceP10Test.cc
@@ -68,6 +68,10 @@ int main() {
a.add(*p1);
a.add(*p2);
+ a.enableLinear(true);
+
+ a.close();
+
cout << a << endl;
a.clear();