Loading include/SimulationController.h +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ public: void updateSolidsContent(double _solidsContent); std::vector<std::string> getSpeciesNames(); std::vector<std::string> getCoefficientNames(); int getSpeciesIDTransferSpecies(TransferSpeciesDefinition _transferObject); bool speciesIsPolymer(size_t _speciesID); void updateCoefficient(int _coefficientID, double _value); void updateCoefficient(int _coefficientID, double _A0, double _Ea); Loading include/modelObjects.h +10 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,16 @@ enum class VolumeBalanceMode { None }; enum class TransferSpeciesDefinition { EntryRadical, MonomerM1, MonomerM2, DeadPolymer, Undefined = 99 }; ReactionTemplate StringToReactionTemplate(const std::string& _str); std::string TransferSpeciesDefinitionToString(TransferSpeciesDefinition _template); struct polymerSpeciesProperties { size_t numPolymers = 0; std::vector<uint64_t> numMonomers; Loading src/SimulationController.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -463,5 +463,27 @@ void SimulationController::exportPolymers(std::string _prefixFilename, double _r kMC->exportPolymersCLD(simulationParameter.outputdir + "/" + "Polymers." + to_string(_reactionTime), currentModel); } } int SimulationController::getSpeciesIDTransferSpecies(TransferSpeciesDefinition _transferObject) { vector<parameterObject> parameterObjects = currentModel->getParameters(); string speciesName = ""; for (auto& elem : parameterObjects) { if (elem.name == TransferSpeciesDefinitionToString(_transferObject)) { speciesName = elem.description; break; } } if (speciesName != "") { vector<speciesObject> speciesList = currentModel->getSpecies(); for (size_t idxSpecies = 0; idxSpecies < speciesList.size(); idxSpecies++) { if (speciesList.at(idxSpecies).name == speciesName) { return idxSpecies; } } } else { return -1; } return -1; } } // namespace src/modelObjects.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,33 @@ ReactionTemplate StringToReactionTemplate(const std::string& _str) { } return ReactionTemplate::Undefined; } std::string TransferSpeciesDefinitionToString(TransferSpeciesDefinition _template) { switch (_template) { case TransferSpeciesDefinition::EntryRadical: return "EntryRadical"; case TransferSpeciesDefinition::MonomerM1: return "MonomerM1"; case TransferSpeciesDefinition::MonomerM2: return "MonomerM2"; case TransferSpeciesDefinition::DeadPolymer: return "DeadPolymer"; } } TransferSpeciesDefinition StringToTransferSpeciesDefinition(const std::string& _str) { if (_str == "EntryRadical") { return TransferSpeciesDefinition::EntryRadical; } if (_str == "MonomerM1") { return TransferSpeciesDefinition::MonomerM1; } if (_str == "MonomerM2") { return TransferSpeciesDefinition::MonomerM2; } if (_str == "DeadPolymer") { return TransferSpeciesDefinition::DeadPolymer; } } uint8_t ConnectTypeToInt(ConnectType _type) { if (_type == ConnectType::Termination) { return 0; Loading Loading
include/SimulationController.h +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ public: void updateSolidsContent(double _solidsContent); std::vector<std::string> getSpeciesNames(); std::vector<std::string> getCoefficientNames(); int getSpeciesIDTransferSpecies(TransferSpeciesDefinition _transferObject); bool speciesIsPolymer(size_t _speciesID); void updateCoefficient(int _coefficientID, double _value); void updateCoefficient(int _coefficientID, double _A0, double _Ea); Loading
include/modelObjects.h +10 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,16 @@ enum class VolumeBalanceMode { None }; enum class TransferSpeciesDefinition { EntryRadical, MonomerM1, MonomerM2, DeadPolymer, Undefined = 99 }; ReactionTemplate StringToReactionTemplate(const std::string& _str); std::string TransferSpeciesDefinitionToString(TransferSpeciesDefinition _template); struct polymerSpeciesProperties { size_t numPolymers = 0; std::vector<uint64_t> numMonomers; Loading
src/SimulationController.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -463,5 +463,27 @@ void SimulationController::exportPolymers(std::string _prefixFilename, double _r kMC->exportPolymersCLD(simulationParameter.outputdir + "/" + "Polymers." + to_string(_reactionTime), currentModel); } } int SimulationController::getSpeciesIDTransferSpecies(TransferSpeciesDefinition _transferObject) { vector<parameterObject> parameterObjects = currentModel->getParameters(); string speciesName = ""; for (auto& elem : parameterObjects) { if (elem.name == TransferSpeciesDefinitionToString(_transferObject)) { speciesName = elem.description; break; } } if (speciesName != "") { vector<speciesObject> speciesList = currentModel->getSpecies(); for (size_t idxSpecies = 0; idxSpecies < speciesList.size(); idxSpecies++) { if (speciesList.at(idxSpecies).name == speciesName) { return idxSpecies; } } } else { return -1; } return -1; } } // namespace
src/modelObjects.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,33 @@ ReactionTemplate StringToReactionTemplate(const std::string& _str) { } return ReactionTemplate::Undefined; } std::string TransferSpeciesDefinitionToString(TransferSpeciesDefinition _template) { switch (_template) { case TransferSpeciesDefinition::EntryRadical: return "EntryRadical"; case TransferSpeciesDefinition::MonomerM1: return "MonomerM1"; case TransferSpeciesDefinition::MonomerM2: return "MonomerM2"; case TransferSpeciesDefinition::DeadPolymer: return "DeadPolymer"; } } TransferSpeciesDefinition StringToTransferSpeciesDefinition(const std::string& _str) { if (_str == "EntryRadical") { return TransferSpeciesDefinition::EntryRadical; } if (_str == "MonomerM1") { return TransferSpeciesDefinition::MonomerM1; } if (_str == "MonomerM2") { return TransferSpeciesDefinition::MonomerM2; } if (_str == "DeadPolymer") { return TransferSpeciesDefinition::DeadPolymer; } } uint8_t ConnectTypeToInt(ConnectType _type) { if (_type == ConnectType::Termination) { return 0; Loading