42#include <helper_functions.h>
47LogFileWriterImp::LogFileWriterImp(std::shared_ptr<LogFileHead>
logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation>
basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> >
testLogFiles, std::shared_ptr<LogFileTimeInformation>
logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel,
double viscosity) : viscosity(viscosity)
52 logFileInfo.push_back(basicSimInfo);
53 this->simLogInfo = simLogInfo;
54 logFileInfo.push_back(simLogInfo);
61std::shared_ptr<LogFileWriterImp>
LogFileWriterImp::getNewInstance(std::shared_ptr<LogFileHead>
logFileHead, std::shared_ptr<BasicSimulationInfo> basicSimInfo, std::shared_ptr<BasicTestLogFileInformation>
basicTestInfo, std::vector<std::shared_ptr<TestLogFileInformation> >
testLogFiles, std::shared_ptr<LogFileTimeInformation>
logFileTimeInfo, std::shared_ptr<SimulationLogFileInformation> simLogInfo, std::string kernel,
double viscosity)
69 logFile.open(logFilePath, std::ios::out);
71 for (
int i = 0;
i < logFileInfo.size();
i++)
72 logFile << logFileInfo.at(
i)->getOutput();
78std::string LogFileWriterImp::calcDateAndTime()
80 std::ostringstream oss;
83 oss << std::setfill(
'0') << nowLocal.tm_year + 1900 << std::setw(2) << nowLocal.tm_mon + 1 << std::setw(2) << nowLocal.tm_mday <<
"_" << std::setw(2) << nowLocal.tm_hour << std::setw(2) << nowLocal.tm_min << std::setw(2) << nowLocal.tm_sec;
87std::string LogFileWriterImp::buildFilePath(std::string
basicFilePath)
89 std::ostringstream filePath;
90 filePath <<
basicFilePath << simLogInfo->getFilePathExtension().at(0) <<
"/viscosity_" << viscosity <<
"/" << simLogInfo->getFilePathExtension().at(1) <<
"/" << kernelName;
92 std::filesystem::path dir(filePath.str());
93 if (!(std::filesystem::exists(dir)))
94 std::filesystem::create_directories(dir);
96 filePath <<
"/logfile_" << calcDateAndTime() <<
"_" << kernelName <<
"_vis_" << viscosity <<
".txt";
97 return filePath.str();
void writeLogFile(std::string basicFilePath)
static std::shared_ptr< LogFileWriterImp > getNewInstance(std::shared_ptr< LogFileHead > logFileHead, std::shared_ptr< BasicSimulationInfo > basicSimInfo, std::shared_ptr< BasicTestLogFileInformation > basicTestInfo, std::vector< std::shared_ptr< TestLogFileInformation > > testLogFiles, std::shared_ptr< LogFileTimeInformation > logFileTimeInfo, std::shared_ptr< SimulationLogFileInformation > simLogInfo, std::string kernel, double viscosity)
std::shared_ptr< T > SPtr