source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementFit.cc @ 424

Last change on this file since 424 was 424, checked in by touze, 11 years ago

sauvgarde de la configuration sur fichier format AML

File size: 4.0 KB
Line 
1#include "elementFit.h"
2#include "mixedTools.h"
3
4elementFit::elementFit() : abstractElement()
5{
6  setDefaultValues();
7  setDefaults();
8  elementName_ = nomdElements("fit");
9  nbParam_ = elementName_.getElementNbParameters();
10  parametersString_ = new string[nbParam_+1];
11  // transportOk_ = true;
12  // parmelaIgnored_ = true;
13  // registerAcceptableSoftware(nomDeLogiciel::transport, TBoolOk);
14  // registerAcceptableSoftware(nomDeLogiciel::parmela, TBoolIgnore);
15}
16
17void elementFit::setDefaultValues()
18{
19  defaultSpecificName_ = "fit";
20  variableNameDef_ = "";
21  variableValueDef_ = 0.0;
22  toleranceDef_ = 0.0;
23}
24
25void elementFit::setDefaults()
26{
27  specificName_ = defaultSpecificName_;
28  variableName_ = variableNameDef_;
29  variableValue_ = variableValueDef_;
30  tolerance_ = toleranceDef_;
31}
32
33string* elementFit::getParametersString() const
34{
35  int compteur = -1;
36  parametersString_[++compteur] = mixedTools::intToString(nbParam_);
37  parametersString_[++compteur] = specificName_;
38  parametersString_[++compteur] = variableName_;
39  parametersString_[++compteur] = mixedTools::doubleToString(variableValue_ );
40  parametersString_[++compteur] = mixedTools::doubleToString(tolerance_);
41  if ( compteur != nbParam_ ) {
42    cerr << " elementFit::getParametersString() : ERROR nr pf parameters dosnt match " << endl;
43    return NULL;
44  }
45  return parametersString_;
46}
47
48void elementFit::setParametersString(string* param)
49{
50  if ( param == NULL ) {
51    cerr << "  elementFit::setParametersString parameters empty parameter set";
52    return;
53  }
54  int compteur = -1;
55  int nbparam = atoi(param[++compteur].c_str());
56  if ( nbparam != nbParam_ ) {
57    cerr << "  elementFit::setParametersString parameters do not match for a BEND" << endl;
58    return;
59  }
60 
61  specificName_ = param[++compteur];
62  variableName_ = param[++compteur];
63  variableValue_ = atof(param[++compteur].c_str());
64  tolerance_ = atof(param[++compteur].c_str());
65}
66
67// string elementFit::parmelaOutputFlow() const
68// {
69//     ostringstream sortie;
70//     return sortie.str();
71// }
72
73// string elementFit::transportOutputFlow() const
74// {
75//     ostringstream sortie;
76//     sortie << specificName_ << ":" << "  FIT," << variableName_ << " = " << variableValue_ << ", TOLER = " << tolerance_ << " ;" << endl;
77//     if ( variableName_ == "R11" || variableName_ == "R22" || variableName_ == "R12" || variableName_ == "R21" ) {
78//         sortie << " PRINT, TRANS;" << endl;
79//     }
80//     return sortie.str();
81// }
82
83string elementFit::FileOutputFlow() const
84{
85  ostringstream sortie;
86  //    sortie << elementName_.getElementType() << endl;
87  sortie << elementName_.getGenericLabel() << endl;
88  sortie  << specificName_ << endl;
89  sortie  <<    variableName_ << " " << variableValue_ << " " << tolerance_ << endl;
90  return sortie.str();
91}
92
93vector< pair<string, vector<string> > > elementFit::parametersToSoftware () const 
94{
95  vector< pair<string, vector<string> > >  sortie;
96  sortie.push_back( pair<string, vector<string> >("labelsGenericSpecific",  vector<string>() ) );
97  sortie.back().second.push_back(elementName_.getGenericLabel());
98  sortie.back().second.push_back(specificName_);
99  sortie.push_back( pair<string, vector<string> >("variable",  vector<string>() ) );
100  sortie.back().second.push_back(variableName_);
101  sortie.back().second.push_back(mixedTools::doubleToString(variableValue_));
102  sortie.back().second.push_back(mixedTools::doubleToString(tolerance_));
103  return sortie;
104}
105
106void elementFit::FileInput(ifstream& ifs)
107{
108  ifs >> specificName_;
109  ifs  >>  variableName_ >>  variableValue_   >> tolerance_;
110}
111
112string elementFit::print() 
113{
114  string txt = "";
115  txt += specificName_;
116  return txt;
117}
118
119void elementFit::InputRep(UAPNode* root)
120{
121  UAPNode* ele = root->addChild("element");
122  ele->addAttribute("name",specificName_);
123
124  UAPNode* node = ele->addChild("fit");
125  string txt = variableName_;
126  node->addAttribute("attribute",txt);
127  txt = mixedTools::doubleToString(variableValue_);
128  node->addAttribute("design",txt);
129  txt = mixedTools::doubleToString(tolerance_);
130  node->addAttribute("err",txt);
131}
Note: See TracBrowser for help on using the repository browser.