source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementRfgun.cc @ 271

Last change on this file since 271 was 271, checked in by lemeur, 11 years ago

etiquettes par defaut

File size: 3.8 KB
Line 
1#include "elementRfgun.h"
2
3
4#include "mathematicalTools.h"
5#include "mixedTools.h"
6
7
8
9elementRfgun::elementRfgun() : abstractElement() 
10    {
11      setDefaultValues();
12      setDefaults();
13      elementName_ = nomdElements("rfgun");
14      nbParam_ = elementName_.getElementNbParameters();
15      parametersString_ = new string[nbParam_+1];
16      //      parmelaOk_ = true;
17    }
18
19  void elementRfgun::setDefaultValues()
20  {
21    defaultLabel_ = "rfgun999";
22    defaultPhaseStep_ = 1.0;
23    defaultNmacrop_ = 0;
24    defaultSigma_t_ = 0.0;
25    defaultSigma_r_ = 0.0;
26    defaultE_cin_ = 0.0;
27    defaultSigma_E_ = 0.0;
28    defaultNb_true_particles_ = 1.0;
29  }
30
31  void elementRfgun::setDefaults()
32  {
33    label_ = defaultLabel_;
34    phaseStep_ = defaultPhaseStep_;
35    nmacrop_ = defaultNmacrop_;
36    sigma_t_ = defaultSigma_t_;
37    sigma_r_ = defaultSigma_r_ ;
38    E_cin_ = defaultE_cin_;
39    sigma_E_ = defaultSigma_E_;
40    nb_true_particles_ = defaultNb_true_particles_ ;
41  }
42
43trivaluedBool elementRfgun::is_accepted_by_software(nomDeLogiciel soft) const {
44  cout << " elementRfgun : c'est le bon is_accepted_by_software " << endl;
45  if ( soft == nomDeLogiciel::parmela ) return ok;
46  else return error;
47}
48
49 string* elementRfgun::getParametersString() const 
50  {
51   int compteur = -1;
52    parametersString_[++compteur] = mixedTools::intToString(nbParam_);
53  parametersString_[++compteur] = label_;
54    parametersString_[++compteur] = mixedTools::intToString(nmacrop_);
55    parametersString_[++compteur] = mixedTools::doubleToString(sigma_t_);
56    parametersString_[++compteur] = mixedTools::doubleToString(sigma_r_);
57    parametersString_[++compteur] = mixedTools::doubleToString(E_cin_);
58    parametersString_[++compteur] = mixedTools::doubleToString(sigma_E_);
59    parametersString_[++compteur] = mixedTools::doubleToString(nb_true_particles_);
60    return parametersString_;
61  }
62
63  void elementRfgun::setParametersString(string* param)
64  {
65    if ( param == NULL )
66      {
67        cerr << "  elementRfgun::setParametersString parameters empty parameter set";
68        return;
69      }
70   int compteur = -1;
71    int nbparam = atoi(param[++compteur].c_str());
72    if ( nbparam != nbParam_ ) 
73      {
74        cerr << "  elementRfgun::setParametersString parameters do not match for a DRIFT";
75        return;
76      }
77
78    label_ = param[++compteur];
79    nmacrop_ = atoi(param[++compteur].c_str());
80    sigma_t_ = atof(param[++compteur].c_str());
81    sigma_r_ = atof(param[++compteur].c_str());
82    E_cin_ = atof(param[++compteur].c_str());
83    sigma_E_ = atof(param[++compteur].c_str());
84    nb_true_particles_ = atof(param[++compteur].c_str());
85
86  }
87
88string elementRfgun::parmelaOutputFlow() const
89  {
90    ostringstream sortie;
91    // on prend les troncatures tmax et rmax à 3 sigmas
92    sortie << "INPUT 10 /np=" << nmacrop_ << "  /sigt=" << sigma_t_ << endl;
93    sortie << "  /tmax=" << 3.3*sigma_t_ << " /sigr=" << sigma_r_ << endl;
94    sortie << " /rmax=" << 3.0*sigma_r_ << " /W0=" << E_cin_ << " /dw0=" << sigma_E_ << endl;
95    sortie << " /dwt=" << phaseStep_ << " /ran=2" << endl;
96
97    sortie << "SCHEFF /beami=" << -nb_true_particles_ << " /nprog=2 /point=-1.7";
98 
99    return sortie.str();
100  }
101
102string elementRfgun::FileOutputFlow() const
103  {
104    ostringstream sortie;
105    // on prend les troncatures tmax et rmax à 3 sigmas
106    //    sortie << elementName_.getElementType() << endl;
107    sortie << elementName_.getElementLabel() << endl;
108    sortie  << label_ << endl;
109    sortie <<  nmacrop_ << "  " << sigma_t_ << "  " << sigma_r_ << endl;
110    sortie << E_cin_ << " " << sigma_E_ << endl;
111    sortie << phaseStep_ << "  "  << nb_true_particles_ << endl; 
112    return sortie.str();
113  }
114
115void elementRfgun::FileInput(ifstream& ifs)
116{
117  ifs >> label_;
118  ifs >> nmacrop_ >> sigma_t_ >> sigma_r_;
119  ifs >> E_cin_ >> sigma_E_;
120  ifs >> phaseStep_ >> nb_true_particles_;
121}
Note: See TracBrowser for help on using the repository browser.