#include #include "elementSextupole.h" #include "mixedTools.h" elementSextupole::elementSextupole() : abstractElement() { defaultSpecificName_ = "spole"; specificName_ = defaultSpecificName_; length_ = 0; component_ = 0.0; elementName_ = nomdElements("spole"); nbParam_ = elementName_.getElementNbParameters(); parametersString_ = new string[nbParam_+1]; } string* elementSextupole::getParametersString() const { int compteur = -1; parametersString_[++compteur]= mixedTools::intToString(nbParam_); parametersString_[++compteur]= specificName_; parametersString_[++compteur]= mixedTools::doubleToString(length_); parametersString_[++compteur]= mixedTools::doubleToString(component_); if ( compteur != nbParam_ ) { cerr << "ERROR::elementSextupole::getParametersString() : " << nbParam_ << endl; return NULL; } else { return parametersString_; } } void elementSextupole::setParametersString(string* param) { if ( param == NULL ) { cerr << "elementSextupole::setParametersString:: empty parameter set" << endl; return; } int compteur = -1; int nbparam = atoi(param[++compteur].c_str()); if ( nbparam != nbParam_ ) { cerr << "elementSextupole::setParametersString:: parameters do not match for a sextupole"; return; } specificName_ = param[++compteur]; length_ = atof(param[++compteur].c_str()); component_ = atof(param[++compteur].c_str()); } string elementSextupole::FileOutputFlow() const { ostringstream sortie; sortie << elementName_.getGenericLabel() << endl; sortie << specificName_ << endl; sortie << length_ << " " << component_ < > > elementSextupole::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 >("attributes",vector() ) ); sortie.back().second.push_back(mixedTools::doubleToString(length_)); sortie.back().second.push_back(mixedTools::doubleToString(component_)); return sortie; } void elementSextupole::FileInput(ifstream& ifs) { ifs >> specificName_; ifs >> length_ >> component_; } string elementSextupole::print() { string txt = ""; txt += specificName_; txt += "\nlength (m): "; txt += mixedTools::doubleToString(length_); txt += "\ncomponent (m^-3): "; txt += mixedTools::doubleToString(component_); return txt; } void elementSextupole::InputRep(UAPNode* root) { UAPNode* ele = root->addChild("element"); ele->addAttribute("name",specificName_); string txt = ""; UAPNode* node = ele->addChild("sextupole"); UAPNode* knl = node->addChild("k"); txt = mixedTools::doubleToString(component_); knl->addAttribute("design",txt); txt = mixedTools::doubleToString(length_); ele->addChild("length")->addAttribute("design",txt); }