source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementSextupole.cc @ 495

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

lecture fichier sauvegarde AML

File size: 3.5 KB
RevLine 
[487]1
2#include <iostream>
3
4#include "elementSextupole.h"
5#include "mixedTools.h"
6
7elementSextupole::elementSextupole() : abstractElement() 
8{
9  defaultSpecificName_ = "spole";
10  specificName_ = defaultSpecificName_;
[488]11  //  length_ = 0;
[487]12  component_ = 0.0;
13 
14  elementName_ = nomdElements("spole");
15  nbParam_ = elementName_.getElementNbParameters();
16  parametersString_ = new string[nbParam_+1];
17}
18
19string* elementSextupole::getParametersString() const 
20{
21  int compteur = -1;
22  parametersString_[++compteur]= mixedTools::intToString(nbParam_);
23  parametersString_[++compteur]= specificName_;
[488]24  parametersString_[++compteur]= mixedTools::doubleToString(lenghtElem_);
[487]25  parametersString_[++compteur]= mixedTools::doubleToString(component_);
26  if ( compteur != nbParam_ ) {
27    cerr << "ERROR::elementSextupole::getParametersString() : " << nbParam_ << endl;
28    return NULL;
29  } else {
30    return parametersString_;
31  }
32}
33
34void elementSextupole::setParametersString(string* param)
35{
36  if ( param == NULL ) {
37    cerr << "elementSextupole::setParametersString:: empty parameter set" << endl;
38    return;
39  }
40
41  int compteur = -1;
42  int nbparam = atoi(param[++compteur].c_str());
43  if ( nbparam != nbParam_ ) {
44    cerr << "elementSextupole::setParametersString:: parameters do not match for a sextupole";
45    return;
46  }
47
48  specificName_ = param[++compteur];
[488]49  lenghtElem_ = atof(param[++compteur].c_str());
[487]50  component_ = atof(param[++compteur].c_str());
51}
52
[488]53// string elementSextupole::FileOutputFlow() const
54// {
55//   ostringstream sortie;
56//   sortie << elementName_.getGenericLabel() << endl;
57//   sortie  << specificName_ << endl;
58//   sortie << lenghtElem_ << "  " << component_ <<endl;
59//   return sortie.str();
60// }
[487]61
62vector< pair<string, vector<string> > > elementSextupole::parametersToSoftware () const 
63{
64  vector< pair<string, vector<string> > >  sortie;
65  sortie.push_back( pair<string, vector<string> >("labelsGenericSpecific",  vector<string>() ) );
66  sortie.back().second.push_back(elementName_.getGenericLabel());
67  sortie.back().second.push_back(specificName_);
68  sortie.push_back( pair<string, vector<string> >("attributes",vector<string>() ) );
[488]69  sortie.back().second.push_back(mixedTools::doubleToString(lenghtElem_));
[487]70  sortie.back().second.push_back(mixedTools::doubleToString(component_));
71  return sortie;
72}
73
[488]74// void elementSextupole::FileInput(ifstream& ifs)
75// {
76//   ifs >> specificName_;
77//   ifs >> lenghtElem_ >> component_;
78// }
[487]79
80string elementSextupole::print() 
81{
82  string txt = "";
83  txt += specificName_;
84  txt += "\nlength (m): ";
[488]85  txt += mixedTools::doubleToString(lenghtElem_);
[487]86  txt += "\ncomponent (m^-3): ";
87  txt += mixedTools::doubleToString(component_); 
88  return txt;
89}
90
91void elementSextupole::InputRep(UAPNode* root)
92{
[488]93  UAPNode* ele = setAMLelementHeader(root);
[487]94
95  string txt = "";
96  UAPNode* node = ele->addChild("sextupole");
97  UAPNode* knl = node->addChild("k");
98  txt = mixedTools::doubleToString(component_);
99  knl->addAttribute("design",txt);
100
[488]101  txt = mixedTools::doubleToString(lenghtElem_);
[487]102  ele->addChild("length")->addAttribute("design",txt);
103}
[488]104
105void elementSextupole::FileAMLInput(UAPNode* entree) 
106{
107  if ( !checkAMLelementGenericName(entree) ) return;
108
109 AMLtools::readAMLParameterAttribut(entree, "length", "design", lenghtElem_);
110
111
112  UAPNode* sextupole = entree->getChildByName("sextupole");
113  if ( ! sextupole ) {
114    cout << " elementSextupole::FileAMLInput ERREUR pas de noeud AML <sextupole>  " << endl;
115    return;
116  }
117  AMLtools::readAMLParameterAttribut(sextupole, "k", "design", component_);
118}
Note: See TracBrowser for help on using the repository browser.