/* * Construct an empty InterfaceKinetics reaction mechanism. * @param thermo This is an optional parameter that may be * used to initialize the inherited Kinetics class with * one ThermoPhase class object -> in other words it's * useful for initialization of homogeneous kinetics * mechanisms. */ InterfaceKinetics::InterfaceKinetics(thermo_t* thermo) : Kinetics(), m_kk(0), m_redo_rates(false), m_nirrev(0), m_nrev(0), m_surf(0), m_integrator(0), m_beta(0), m_ctrxn(0), m_ctrxn_ecdf(0), m_StandardConc(0), m_deltaG0(0), m_ProdStanConcReac(0), m_finalized(false), m_has_coverage_dependence(false), m_has_electrochem_rxns(false), m_has_exchange_current_density_formulation(false), m_phaseExistsCheck(false), m_phaseExists(0), m_phaseIsStable(0), m_rxnPhaseIsReactant(0), m_rxnPhaseIsProduct(0), m_ioFlag(0) { if (thermo != 0) addPhase(*thermo); m_kdata = new InterfaceKineticsData; m_kdata->m_temp = 0.0; }
void NIImporter_SUMO::myStartElement(int element, const SUMOSAXAttributes& attrs) { /* our goal is to reproduce the input net faithfully * there are different types of objects in the netfile: * 1) those which must be loaded into NBNetBuilder-Containers for processing * 2) those which can be ignored because they are recomputed based on group 1 * 3) those which are of no concern to NBNetBuilder but should be exposed to * NETEDIT. We will probably have to patch NBNetBuilder to contain them * and hand them over to NETEDIT * alternative idea: those shouldn't really be contained within the * network but rather in separate files. teach NETEDIT how to open those * (POI?) * 4) those which are of concern neither to NBNetBuilder nor NETEDIT and * must be copied over - need to patch NBNetBuilder for this. * copy unknown by default */ switch (element) { case SUMO_TAG_NET: { bool ok; myAmLefthand = attrs.getOpt<bool>(SUMO_ATTR_LEFTHAND, 0, ok, false); myCornerDetail = attrs.getOpt<int>(SUMO_ATTR_CORNERDETAIL, 0, ok, 0); myLinkDetail = attrs.getOpt<int>(SUMO_ATTR_LINKDETAIL, 0, ok, -1); break; } case SUMO_TAG_EDGE: addEdge(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_JUNCTION: addJunction(attrs); break; case SUMO_TAG_REQUEST: addRequest(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; case SUMO_TAG_TLLOGIC: myCurrentTL = initTrafficLightLogic(attrs, myCurrentTL); break; case SUMO_TAG_PHASE: addPhase(attrs, myCurrentTL); break; case SUMO_TAG_LOCATION: myLocation = loadLocation(attrs); break; case SUMO_TAG_PROHIBITION: addProhibition(attrs); break; case SUMO_TAG_ROUNDABOUT: addRoundabout(attrs); break; default: break; } }
BulkKinetics::BulkKinetics(thermo_t* thermo) : m_ROP_ok(false), m_temp(0.0), m_finalized(false) { if (thermo) { addPhase(*thermo); } }
void NIImporter_SUMO::myStartElement(int element, const SUMOSAXAttributes& attrs) { /* our goal is to reproduce the input net faithfully * there are different types of objects in the netfile: * 1) those which must be loaded into NBNetBuilder-Containers for processing * 2) those which can be ignored because they are recomputed based on group 1 * 3) those which are of no concern to NBNetBuilder but should be exposed to * NETEDIT. We will probably have to patch NBNetBuilder to contain them * and hand them over to NETEDIT * alternative idea: those shouldn't really be contained within the * network but rather in separate files. teach NETEDIT how to open those * (POI?) * 4) those which are of concern neither to NBNetBuilder nor NETEDIT and * must be copied over - need to patch NBNetBuilder for this. * copy unknown by default */ switch (element) { case SUMO_TAG_EDGE: addEdge(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_JUNCTION: addJunction(attrs); break; case SUMO_TAG_SUCC: addSuccEdge(attrs); break; case SUMO_TAG_SUCCLANE: addSuccLane(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; case SUMO_TAG_TLLOGIC__DEPRECATED: case SUMO_TAG_TLLOGIC: myCurrentTL = initTrafficLightLogic(attrs, myCurrentTL); break; case SUMO_TAG_PHASE: addPhase(attrs, myCurrentTL); break; case SUMO_TAG_LOCATION: myLocation = loadLocation(attrs); break; case SUMO_TAG_PROHIBITION: addProhibition(attrs); break; default: break; } }
/** * Construct an empty reaction mechanism. */ AqueousKinetics::AqueousKinetics(thermo_t* thermo) : Kinetics(), m_nfall(0), m_nirrev(0), m_nrev(0), m_ROP_ok(false), m_temp(0.0), m_finalized(false) { if (thermo != 0) { addPhase(*thermo); } }
AqueousKinetics::AqueousKinetics(thermo_t* thermo) : Kinetics(), m_nfall(0), m_nirrev(0), m_nrev(0), m_ROP_ok(false), m_temp(0.0), m_finalized(false) { warn_deprecated("AqueousKinetics", "Unfinished implementation of this class will be removed."); if (thermo != 0) { addPhase(*thermo); } }
/** * Construct an empty InterfaceKinetics reaction mechanism. * @param thermo This is an optional parameter that may be * used to initialize the inherited Kinetics class with * one ThermoPhase class object -> in other words it's * useful for initialization of homogeneous kinetics * mechanisms. */ InterfaceKinetics:: InterfaceKinetics(thermo_t* thermo) : Kinetics(), m_kk(0), m_redo_rates(false), m_nirrev(0), m_nrev(0), m_surf(0), m_integrator(0), m_finalized(false), m_has_coverage_dependence(false), m_has_electrochem_rxns(false), m_ioFlag(0) { if (thermo != 0) addPhase(*thermo); m_kdata = new InterfaceKineticsData; m_kdata->m_temp = 0.0; }
/* * Construct an empty reaction mechanism. */ GasKinetics:: GasKinetics(thermo_t* thermo) : Kinetics(), m_nfall(0), m_nirrev(0), m_nrev(0), m_logp_ref(0.0), m_logc_ref(0.0), m_logStandConc(0.0), m_ROP_ok(false), m_temp(0.0), m_finalized(false) { if (thermo != 0) { addPhase(*thermo); } m_temp = 0.0; }
void NLHandler::myStartElement(int element, const SUMOSAXAttributes& attrs) { try { switch (element) { case SUMO_TAG_EDGE: beginEdgeParsing(attrs); break; case SUMO_TAG_LANE: addLane(attrs); break; case SUMO_TAG_POLY: addPoly(attrs); break; case SUMO_TAG_POI: addPOI(attrs); break; case SUMO_TAG_JUNCTION: openJunction(attrs); initJunctionLogic(attrs); break; case SUMO_TAG_PHASE: addPhase(attrs); break; case SUMO_TAG_CONNECTION: addConnection(attrs); break; case SUMO_TAG_TLLOGIC: initTrafficLightLogic(attrs); break; case SUMO_TAG_REQUEST: addRequest(attrs); break; case SUMO_TAG_WAUT: openWAUT(attrs); break; case SUMO_TAG_WAUT_SWITCH: addWAUTSwitch(attrs); break; case SUMO_TAG_WAUT_JUNCTION: addWAUTJunction(attrs); break; case SUMO_TAG_E1DETECTOR: case SUMO_TAG_INDUCTION_LOOP: addE1Detector(attrs); break; case SUMO_TAG_E2DETECTOR: case SUMO_TAG_LANE_AREA_DETECTOR: addE2Detector(attrs); break; case SUMO_TAG_E3DETECTOR: case SUMO_TAG_ENTRY_EXIT_DETECTOR: beginE3Detector(attrs); break; case SUMO_TAG_DET_ENTRY: addE3Entry(attrs); break; case SUMO_TAG_DET_EXIT: addE3Exit(attrs); break; case SUMO_TAG_INSTANT_INDUCTION_LOOP: addInstantE1Detector(attrs); break; case SUMO_TAG_VSS: myTriggerBuilder.parseAndBuildLaneSpeedTrigger(myNet, attrs, getFileName()); break; case SUMO_TAG_CALIBRATOR: myTriggerBuilder.parseAndBuildCalibrator(myNet, attrs, getFileName()); break; case SUMO_TAG_REROUTER: myTriggerBuilder.parseAndBuildRerouter(myNet, attrs, getFileName()); break; case SUMO_TAG_BUS_STOP: myTriggerBuilder.parseAndBuildBusStop(myNet, attrs); break; case SUMO_TAG_VTYPEPROBE: addVTypeProbeDetector(attrs); break; case SUMO_TAG_ROUTEPROBE: addRouteProbeDetector(attrs); break; case SUMO_TAG_MEANDATA_EDGE: addEdgeLaneMeanData(attrs, SUMO_TAG_MEANDATA_EDGE); break; case SUMO_TAG_MEANDATA_LANE: addEdgeLaneMeanData(attrs, SUMO_TAG_MEANDATA_LANE); break; case SUMO_TAG_TIMEDEVENT: myActionBuilder.addAction(attrs, getFileName()); break; case SUMO_TAG_VAPORIZER: myTriggerBuilder.buildVaporizer(attrs); break; case SUMO_TAG_LOCATION: setLocation(attrs); break; case SUMO_TAG_TAZ: addDistrict(attrs); break; case SUMO_TAG_TAZSOURCE: addDistrictEdge(attrs, true); break; case SUMO_TAG_TAZSINK: addDistrictEdge(attrs, false); break; default: break; } } catch (InvalidArgument& e) { WRITE_ERROR(e.what()); } MSRouteHandler::myStartElement(element, attrs); if (element == SUMO_TAG_PARAM) { addParam(attrs); } }
bool WalkingEngineKick::load(const char* filePath, char* buf) { initialized = false; int lineNumber = 0; bool error = false; for(int i = 0; i < numOfTracks; ++i) { tracks[i].clear(); addPhase(Track(i), 0); } while(*buf) { ++lineNumber; try { while(*buf == ' ' || *buf == '\t') ++buf; if(*buf != '#' && *buf != ';' && *buf != '\r' && *buf != '\n') { String str = readString(buf); if(str == "setType") { String str = readString(buf); if(str == "standing") standKick = true; else if(str == "walking") standKick = false; else throw ParseException("expected 'standing' or 'walking'"); } else if(str == "setPreStepSize") { preStepSizeXValue = readValue(buf); preStepSizeYValue = readValue(buf); preStepSizeZValue = readValue(buf); readValue(buf); readValue(buf); preStepSizeRValue = readValue(buf); } else if(str == "setStepSize") { stepSizeXValue = readValue(buf); stepSizeYValue = readValue(buf); stepSizeZValue = readValue(buf); readValue(buf); readValue(buf); stepSizeRValue = readValue(buf); } else if(str == "setDuration") { durationValue = readValue(buf); } else if(str == "setRefX") { refXValue = readValue(buf); } else if(str == "proceed") { Value* value = readValue(buf); for(int i = 0; i < numOfTracks; ++i) { Phase& lastPhase = tracks[i].back(); if(!lastPhase.lengthValue) lastPhase.lengthValue = value; else lastPhase.lengthValue = new PlusExpression(*lastPhase.lengthValue, *value, *this); } } else if(str == "setLeg") { addPhase(footTranslationX, readValue(buf)); addPhase(footTranslationY, readValue(buf)); addPhase(footTranslationZ, readValue(buf)); addPhase(footRotationX, readValue(buf)); addPhase(footRotationY, readValue(buf)); addPhase(footRotationZ, readValue(buf)); } else if(str == "setArms") { addPhase(lShoulderPitch, readValue(buf)); addPhase(lShoulderRoll, readValue(buf)); addPhase(lElbowYaw, readValue(buf)); addPhase(lElbowRoll, readValue(buf)); addPhase(rShoulderPitch, readValue(buf)); addPhase(rShoulderRoll, readValue(buf)); addPhase(rElbowYaw, readValue(buf)); addPhase(rElbowRoll, readValue(buf)); } else if(str == "setHead") { addPhase(headYaw, readValue(buf)); addPhase(headPitch, readValue(buf)); } else throw ParseException("expected keyword"); while(*buf == ' ' || *buf == '\t') ++buf; } if(*buf == '#' || *buf == ';') { ++buf; while(*buf && *buf != '\r' && *buf != '\n') ++buf; } if(*buf && *buf != '\r' && *buf != '\n') throw ParseException("expected end of line"); } catch(ParseException e) { // OUTPUT(idText, text, filePath << ":" << lineNumber << ": " << e.message); (void)e; error = true; } while(*buf && *buf != '\r' && *buf != '\n') ++buf; if(*buf == '\r' && buf[1] == '\n') buf += 2; else if(*buf) ++buf; } if(error) { for(int i = 0; i < numOfTracks; ++i) tracks[i].clear(); // OUTPUT(idText, text, filePath << ": failed to load file"); return false; } for(int i = 0; i < numOfTracks; ++i) addPhase(Track(i), 0); return true; }