source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementSoleno.cc @ 257

Last change on this file since 257 was 257, checked in by garnier, 11 years ago

refactoring

File size: 3.2 KB
Line 
1#include "elementSoleno.h"
2#include "mixedTools.h"
3
4
5
6elementSoleno::elementSoleno() :  abstractElement() 
7{
8  cout << " passage constructeur elementSoleno " << endl;
9  setDefaultValues();
10  setDefaults();
11  elementName_ = nomdElements("lens");
12  nbParam_ = elementName_.getElementNbParameters();
13  parametersString_ = new string[nbParam_+1];
14  // transportOk_ = true;
15  // parmelaOk_ = true;
16  //  transportElementName_ = "*SOLE*";
17}
18
19
20  void elementSoleno::setDefaultValues()
21  {
22    B0Def_ = 0.0;
23    varyB0Def_ = false;
24  }
25
26  void elementSoleno::setDefaults()
27  {
28    B0_ = B0Def_;
29    varyB0_ = varyB0Def_;
30  }
31
32trivaluedBool elementSoleno::is_accepted_by_software(nomDeLogiciel soft) const {
33  if ( soft == nomDeLogiciel::transport ) return ok;
34  else if ( soft == nomDeLogiciel::parmela ) return ok;
35  else return error;
36}
37
38
39 string* elementSoleno::getParametersString() const 
40 {
41   cout << " passage elementSoleno::getParametersString() B0_= " << B0_ << endl;
42   int compteur = -1;
43   parametersString_[++compteur] = mixedTools::intToString(nbParam_);
44   parametersString_[++compteur] = label_;
45   parametersString_[++compteur] = mixedTools::doubleToString(lenghtElem_);
46   parametersString_[++compteur] = mixedTools::doubleToString(aperture_);
47   parametersString_[++compteur] = mixedTools::doubleToString(B0_);
48   parametersString_[++compteur] = mixedTools::intToString(varyB0_);
49   if ( compteur != nbParam_ ) {
50     cerr << " elementSoleno::getParametersString() : ERROR nr pf parameters dosnt match " << endl;
51     return NULL;
52   }
53   return parametersString_;
54 }
55
56
57 void  elementSoleno::setParametersString(string* param)
58 {
59        if ( param == NULL )
60        {
61          cerr << "  elementSoleno::setParametersString parameters empty parameter set";
62          return;
63        }
64   int compteur = -1;
65   int nbparam = atoi(param[++compteur].c_str());
66    if ( nbparam != nbParam_ ) 
67        {
68          cerr << "  elementSoleno::setParametersString parameters do not match for a SOLENOID";
69          return;
70        }
71  label_ = param[++compteur];
72    lenghtElem_ = atof(param[++compteur].c_str());
73    aperture_  = atof(param[++compteur].c_str());
74    B0_ = atof(param[++compteur].c_str());
75    varyB0_ = atoi(param[++compteur].c_str());
76 }
77
78string elementSoleno::parmelaOutputFlow() const
79  {
80    ostringstream sortie;
81    // on passe l'induction magnetique en Gauss
82    sortie << "SOLENOID /l=" << lenghtElem_ << "  /aper=" << aperture_ << "  /iout=1 /h=" << 1000.*B0_;
83    return sortie.str();
84  }
85
86string elementSoleno::transportOutputFlow() const
87  {
88    ostringstream sortie;
89    // on passe la longueur en metres
90    sortie << label_ << ":" << "  SOLENOID, L=" << 0.01*lenghtElem_ << ", B=" << B0_ << ";" << endl;
91    if ( varyB0_ ) {
92      sortie <<  "  VARY, " << label_+"[B]"  << ";";
93    }
94    return sortie.str();
95  }
96
97string elementSoleno::FileOutputFlow() const
98  {
99    ostringstream sortie;
100    //    sortie << elementName_.getElementType() << endl;
101    sortie << elementName_.getElementLabel() << endl;
102    sortie  << label_ << endl;
103    sortie << lenghtElem_ << "  " << aperture_<< " "  << B0_ << " " << varyB0_ << endl;
104    return sortie.str();
105  }
106
107void elementSoleno::FileInput(ifstream& ifs)
108{
109  ifs >> label_;
110  ifs >> lenghtElem_ >>  aperture_ >> B0_ >> varyB0_ ;
111}
Note: See TracBrowser for help on using the repository browser.