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

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

ajout de tooltip et nettoyage de code

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