Commit 2a1021d6 authored by Marco Drache's avatar Marco Drache
Browse files

feature: assignment of transfer species can be determined

parent b77a049e
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);
+10 −0
Original line number Diff line number Diff line
@@ -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;
+22 −0
Original line number Diff line number Diff line
@@ -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
+27 −0
Original line number Diff line number Diff line
@@ -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;