[225] | 1 | #include "elementFit.h" |
---|
| 2 | #include "mixedTools.h" |
---|
| 3 | |
---|
| 4 | elementFit::elementFit() : abstractElement() |
---|
| 5 | { |
---|
[424] | 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); |
---|
[225] | 15 | } |
---|
| 16 | |
---|
| 17 | void elementFit::setDefaultValues() |
---|
[287] | 18 | { |
---|
[424] | 19 | defaultSpecificName_ = "fit"; |
---|
| 20 | variableNameDef_ = ""; |
---|
| 21 | variableValueDef_ = 0.0; |
---|
| 22 | toleranceDef_ = 0.0; |
---|
[287] | 23 | } |
---|
[225] | 24 | |
---|
| 25 | void elementFit::setDefaults() |
---|
[287] | 26 | { |
---|
[424] | 27 | specificName_ = defaultSpecificName_; |
---|
| 28 | variableName_ = variableNameDef_; |
---|
| 29 | variableValue_ = variableValueDef_; |
---|
| 30 | tolerance_ = toleranceDef_; |
---|
[287] | 31 | } |
---|
[225] | 32 | |
---|
[287] | 33 | string* elementFit::getParametersString() const |
---|
| 34 | { |
---|
[424] | 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_; |
---|
[287] | 46 | } |
---|
[225] | 47 | |
---|
| 48 | void elementFit::setParametersString(string* param) |
---|
| 49 | { |
---|
[424] | 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()); |
---|
[225] | 65 | } |
---|
| 66 | |
---|
[418] | 67 | // string elementFit::parmelaOutputFlow() const |
---|
| 68 | // { |
---|
| 69 | // ostringstream sortie; |
---|
| 70 | // return sortie.str(); |
---|
| 71 | // } |
---|
[225] | 72 | |
---|
[418] | 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 | // } |
---|
[225] | 82 | |
---|
| 83 | string elementFit::FileOutputFlow() const |
---|
[287] | 84 | { |
---|
[424] | 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(); |
---|
[287] | 91 | } |
---|
[225] | 92 | |
---|
[424] | 93 | vector< pair<string, vector<string> > > elementFit::parametersToSoftware () const |
---|
| 94 | { |
---|
[418] | 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 | |
---|
[225] | 106 | void elementFit::FileInput(ifstream& ifs) |
---|
| 107 | { |
---|
[424] | 108 | ifs >> specificName_; |
---|
| 109 | ifs >> variableName_ >> variableValue_ >> tolerance_; |
---|
[225] | 110 | } |
---|
[287] | 111 | |
---|
[424] | 112 | string elementFit::print() |
---|
| 113 | { |
---|
| 114 | string txt = ""; |
---|
| 115 | txt += specificName_; |
---|
| 116 | return txt; |
---|
| 117 | } |
---|
[287] | 118 | |
---|
[424] | 119 | void 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); |
---|
[287] | 131 | } |
---|