Loading include/SimulationController.h +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ public: void initConcentrationNumMoleculesExport() const; void initReactionsCountExport() const; void exportConcentrationNumMolecules(double _reactionTime) const; void exportLogToCSV(mcPolymerParameter _simulationParameter, const vector<speciesObject>& _speciesList, vector<logInformation>& _collectedLogInformations); void exportReactionsCount(double _reactionTime) const; void exportPolymers(std::string _prefixFilename, double _reactionTime, bool _binaryExport, bool _writeHeader); void exportPolymerSegments(std::string _filename, int _speciesID, double _molPolymerSegments); Loading src/SimulationController.cpp +35 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,40 @@ void SimulationController::amendLog(MnMw _currentMnMw) { void SimulationController::exportLogJSON() { exportLogToJSON(simulationParameter, currentModel->getSpecies(), collectedLogInformations); } void SimulationController::exportLogToCSV(mcPolymerParameter _simulationParameter, const vector<speciesObject>& _speciesList, vector<logInformation>& _collectedLogInformations) { ofstream concentration_file(_simulationParameter.modelFile_export + ".concentrations.csv", std::ios::binary); if (!concentration_file.is_open()) { cout << "error open file: " << _simulationParameter.modelFile_export + ".concentrations.csv" << endl; return; } ofstream numMolecules_file(_simulationParameter.modelFile_export + ".numMolecules.csv", std::ios::binary); if (!numMolecules_file.is_open()) { cout << "error open file: " << _simulationParameter.modelFile_export + ".numMolecules.csv" << endl; return; } concentration_file << "time"; numMolecules_file << "time"; for (size_t idxSpecies = 0; idxSpecies < _speciesList.size(); idxSpecies++) { concentration_file << ","; numMolecules_file << ","; concentration_file << _speciesList.at(idxSpecies).name; numMolecules_file << _speciesList.at(idxSpecies).name; } concentration_file << "\r\n"; numMolecules_file << "\r\n"; for (size_t idxLogRecords = 0; idxLogRecords < _collectedLogInformations.size(); idxLogRecords++) { concentration_file << _collectedLogInformations.at(idxLogRecords).time; numMolecules_file << _collectedLogInformations.at(idxLogRecords).time; for (size_t idxConcentration = 0; idxConcentration < _collectedLogInformations.back().concentrations.size(); idxConcentration++) { concentration_file << ","; numMolecules_file << ","; concentration_file << _collectedLogInformations.at(idxLogRecords).concentrations.at(idxConcentration); numMolecules_file << _collectedLogInformations.at(idxLogRecords).numMolecules.at(idxConcentration); } concentration_file << "\r\n"; numMolecules_file << "\r\n"; } } void SimulationController::initCurrentModel() { if (simulationParameter.controlVolume == 0.0) { currentState = new macroState(simulationParameter.temperature, simulationParameter.pressure, simulationParameter.volume, static_cast <uint64_t>(simulationParameter.numMolecules)); Loading Loading @@ -287,6 +321,7 @@ void SimulationController::runSimulation() { if (simulationParameter.CmdlSetLogJSON) { exportLogJSON(); } exportLogToCSV(simulationParameter, currentModel->getSpecies(), collectedLogInformations); exportComplete(timerStart, terminationConditions); randBufferInstance->setExit(); } Loading Loading
include/SimulationController.h +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ public: void initConcentrationNumMoleculesExport() const; void initReactionsCountExport() const; void exportConcentrationNumMolecules(double _reactionTime) const; void exportLogToCSV(mcPolymerParameter _simulationParameter, const vector<speciesObject>& _speciesList, vector<logInformation>& _collectedLogInformations); void exportReactionsCount(double _reactionTime) const; void exportPolymers(std::string _prefixFilename, double _reactionTime, bool _binaryExport, bool _writeHeader); void exportPolymerSegments(std::string _filename, int _speciesID, double _molPolymerSegments); Loading
src/SimulationController.cpp +35 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,40 @@ void SimulationController::amendLog(MnMw _currentMnMw) { void SimulationController::exportLogJSON() { exportLogToJSON(simulationParameter, currentModel->getSpecies(), collectedLogInformations); } void SimulationController::exportLogToCSV(mcPolymerParameter _simulationParameter, const vector<speciesObject>& _speciesList, vector<logInformation>& _collectedLogInformations) { ofstream concentration_file(_simulationParameter.modelFile_export + ".concentrations.csv", std::ios::binary); if (!concentration_file.is_open()) { cout << "error open file: " << _simulationParameter.modelFile_export + ".concentrations.csv" << endl; return; } ofstream numMolecules_file(_simulationParameter.modelFile_export + ".numMolecules.csv", std::ios::binary); if (!numMolecules_file.is_open()) { cout << "error open file: " << _simulationParameter.modelFile_export + ".numMolecules.csv" << endl; return; } concentration_file << "time"; numMolecules_file << "time"; for (size_t idxSpecies = 0; idxSpecies < _speciesList.size(); idxSpecies++) { concentration_file << ","; numMolecules_file << ","; concentration_file << _speciesList.at(idxSpecies).name; numMolecules_file << _speciesList.at(idxSpecies).name; } concentration_file << "\r\n"; numMolecules_file << "\r\n"; for (size_t idxLogRecords = 0; idxLogRecords < _collectedLogInformations.size(); idxLogRecords++) { concentration_file << _collectedLogInformations.at(idxLogRecords).time; numMolecules_file << _collectedLogInformations.at(idxLogRecords).time; for (size_t idxConcentration = 0; idxConcentration < _collectedLogInformations.back().concentrations.size(); idxConcentration++) { concentration_file << ","; numMolecules_file << ","; concentration_file << _collectedLogInformations.at(idxLogRecords).concentrations.at(idxConcentration); numMolecules_file << _collectedLogInformations.at(idxLogRecords).numMolecules.at(idxConcentration); } concentration_file << "\r\n"; numMolecules_file << "\r\n"; } } void SimulationController::initCurrentModel() { if (simulationParameter.controlVolume == 0.0) { currentState = new macroState(simulationParameter.temperature, simulationParameter.pressure, simulationParameter.volume, static_cast <uint64_t>(simulationParameter.numMolecules)); Loading Loading @@ -287,6 +321,7 @@ void SimulationController::runSimulation() { if (simulationParameter.CmdlSetLogJSON) { exportLogJSON(); } exportLogToCSV(simulationParameter, currentModel->getSpecies(), collectedLogInformations); exportComplete(timerStart, terminationConditions); randBufferInstance->setExit(); } Loading