diff options
author | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-04 15:30:43 +0000 |
---|---|---|
committer | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-04 15:30:43 +0000 |
commit | 3e02a5a6ef3e820678f0d0736815b5c3fb1b9ae5 (patch) | |
tree | 003457ac70714c02cb0e4519d90bc374ad7d402c | |
parent | f7a98554a3d0d229397757a2865f43207f367860 (diff) | |
download | vhc-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.cc | 15 | ||||
-rw-r--r-- | src/test/ElementsSimulationTest.cc | 79 | ||||
-rw-r--r-- | src/test/exerciceP10Test.cc | 4 |
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(); |