#include "elementFit.h" #include "mixedTools.h" elementFit::elementFit() : abstractElement() { setDefaultValues(); setDefaults(); elementName_ = nomdElements("fit"); nbParam_ = elementName_.getElementNbParameters(); parametersString_ = new string[nbParam_+1]; // transportOk_ = true; // parmelaIgnored_ = true; // registerAcceptableSoftware(nomDeLogiciel::transport, TBoolOk); // registerAcceptableSoftware(nomDeLogiciel::parmela, TBoolIgnore); } void elementFit::setDefaultValues() { defaultSpecificName_ = "fit"; variableNameDef_ = ""; variableValueDef_ = 0.0; toleranceDef_ = 0.0; } void elementFit::setDefaults() { specificName_ = defaultSpecificName_; variableName_ = variableNameDef_; variableValue_ = variableValueDef_; tolerance_ = toleranceDef_; } string* elementFit::getParametersString() const { int compteur = -1; parametersString_[++compteur] = mixedTools::intToString(nbParam_); parametersString_[++compteur] = specificName_; parametersString_[++compteur] = variableName_; parametersString_[++compteur] = mixedTools::doubleToString(variableValue_ ); parametersString_[++compteur] = mixedTools::doubleToString(tolerance_); if ( compteur != nbParam_ ) { cerr << " elementFit::getParametersString() : ERROR nr pf parameters dosnt match " << endl; return NULL; } return parametersString_; } void elementFit::setParametersString(string* param) { if ( param == NULL ) { cerr << " elementFit::setParametersString parameters empty parameter set"; return; } int compteur = -1; int nbparam = atoi(param[++compteur].c_str()); if ( nbparam != nbParam_ ) { cerr << " elementFit::setParametersString parameters do not match for a BEND" << endl; return; } specificName_ = param[++compteur]; variableName_ = param[++compteur]; variableValue_ = atof(param[++compteur].c_str()); tolerance_ = atof(param[++compteur].c_str()); } // string elementFit::parmelaOutputFlow() const // { // ostringstream sortie; // return sortie.str(); // } // string elementFit::transportOutputFlow() const // { // ostringstream sortie; // sortie << specificName_ << ":" << " FIT," << variableName_ << " = " << variableValue_ << ", TOLER = " << tolerance_ << " ;" << endl; // if ( variableName_ == "R11" || variableName_ == "R22" || variableName_ == "R12" || variableName_ == "R21" ) { // sortie << " PRINT, TRANS;" << endl; // } // return sortie.str(); // } string elementFit::FileOutputFlow() const { ostringstream sortie; // sortie << elementName_.getElementType() << endl; sortie << elementName_.getGenericLabel() << endl; sortie << specificName_ << endl; sortie << variableName_ << " " << variableValue_ << " " << tolerance_ << endl; return sortie.str(); } vector< pair > > elementFit::parametersToSoftware () const { vector< pair > > sortie; sortie.push_back( pair >("labelsGenericSpecific", vector() ) ); sortie.back().second.push_back(elementName_.getGenericLabel()); sortie.back().second.push_back(specificName_); sortie.push_back( pair >("variable", vector() ) ); sortie.back().second.push_back(variableName_); sortie.back().second.push_back(mixedTools::doubleToString(variableValue_)); sortie.back().second.push_back(mixedTools::doubleToString(tolerance_)); return sortie; } void elementFit::FileInput(ifstream& ifs) { ifs >> specificName_; ifs >> variableName_ >> variableValue_ >> tolerance_; } string elementFit::print() { string txt = ""; txt += specificName_; return txt; } void elementFit::InputRep(UAPNode* root) { UAPNode* ele = root->addChild("element"); ele->addAttribute("name",specificName_); UAPNode* node = ele->addChild("fit"); string txt = variableName_; node->addAttribute("attribute",txt); txt = mixedTools::doubleToString(variableValue_); node->addAttribute("design",txt); txt = mixedTools::doubleToString(tolerance_); node->addAttribute("err",txt); }