From 734d47d022b6582ba09b2cf139517de7550198e3 Mon Sep 17 00:00:00 2001 From: Timon Habenicht <t.habenicht@tu-bs.de> Date: Wed, 20 Feb 2019 12:31:12 +0100 Subject: [PATCH] refactoring data structure in order of accuracy --- .../NyTest/LogFileData/NyLogFileDataImp.cpp | 2 +- .../NyTest/LogFileData/NyLogFileDataImp.h | 2 +- .../Utilities/LogFileReader/LogFileReader.cpp | 74 +++++++++++++------ 3 files changed, 55 insertions(+), 23 deletions(-) diff --git a/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp b/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp index 4b63ddfc7..4f7be6d1c 100644 --- a/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp +++ b/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.cpp @@ -55,7 +55,7 @@ void NyLogFileDataImp::setEndTimeStepCalculation(int endTimeStepCalculation) this->endTimeStepCalculation = endTimeStepCalculation; } -void NyLogFileDataImp::setDataToCalcPhiAndNu(std::string dataToCalc) +void NyLogFileDataImp::setDataToCalc(std::string dataToCalc) { this->dataToCalc = dataToCalc; } diff --git a/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h b/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h index 789077718..ece73a134 100644 --- a/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h +++ b/targets/tests/NumericalTestPostProcessing/Tests/NyTest/LogFileData/NyLogFileDataImp.h @@ -21,7 +21,7 @@ public: void setBasicGridLengths(std::vector<double> basicGridLengths); void setStartTimeStepCalculation(int startTimeStepCalculation); void setEndTimeStepCalculation(int endTimeStepCalculation); - void setDataToCalcPhiAndNu(std::string dataToCalcPhiAndNu); + void setDataToCalc(std::string dataToCalcPhiAndNu); void setNy(std::vector<double> ny); void setNyDiff(std::vector<double> nyDiff); void setOrderOfAccuracy(std::vector<std::vector<double> > orderOfAccuracy); diff --git a/targets/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp b/targets/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp index 576cec549..f1dc47d8d 100644 --- a/targets/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp +++ b/targets/tests/NumericalTestPostProcessing/Utilities/LogFileReader/LogFileReader.cpp @@ -158,6 +158,9 @@ std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string logFileData->setL2NormTestBetweenKernelRun(StringUtil::toBool(input->getValue("L2NormTestBetweenKernel"))); if (logFileData->getPhiTestRun()) { + std::vector<std::string> failPhi = StringUtil::toStringVector(input->getValue("FailTests_Phi_PhiTest")); + std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue("FailTests_OOA_PhiTest")); + std::vector<std::string> dataToCalc = StringUtil::toStringVector(input->getValue("DataToCalc_PhiTest")); std::vector<std::shared_ptr<PhiLogFileData> > aPhiLogGroup; for (int i = 0; i < dataToCalc.size(); i++) { @@ -170,24 +173,47 @@ std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string std::vector<double> phiDiff; std::vector<std::vector<double> > orderOfAccuracy; for (int j = 0; j < logFileData->getBasicGridLengths().size(); j++) { - std::ostringstream phiDiffString; - phiDiffString << "PhiDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); - phiDiff.push_back(StringUtil::toDouble(input->getValue(phiDiffString.str()))); + std::ostringstream phiBasicString, phiString, phiDiffString; + phiBasicString << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failPhi.size(); k++) { + if (phiBasicString.str() == failPhi.at(k)) + failData = true; + } + if (!failData) { + phiDiffString << "PhiDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << dataToCalc.at(i); + phiDiff.push_back(StringUtil::toDouble(input->getValue(phiDiffString.str()))); + } + - std::vector<double> aOrderOfAccuracyGroup; for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { - std::ostringstream phiDiff; - phiDiff << "OrderOfAccuracy_PhiDiff_" << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); - aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue(phiDiff.str()))); + std::vector<double> aOrderOfAccuracyGroup; + std::ostringstream phiDiffOOA, phiDiffBasicOOA; + phiDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); + bool failData = false; + for (int k = 0; k < failOOA.size(); k++) { + if (phiDiffBasicOOA.str() == failOOA.at(k)) + failData = true; + } + if (!failData) { + phiDiffOOA << "OrderOfAccuracy_PhiDiff_" << phiDiffBasicOOA.str(); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); + aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue(phiDiffOOA.str()))); + } + if (aOrderOfAccuracyGroup.size() > 0) + orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + } - if(aOrderOfAccuracyGroup.size() > 0) - orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + + } - if(phiDiff.size() > 0) + if (phiDiff.size() > 0) { phiLog->setPhiDiff(phiDiff); - if(orderOfAccuracy.size() > 0) + } + if (orderOfAccuracy.size() > 0) phiLog->setOrderOfAccuracy(orderOfAccuracy); - if(phiDiff.size() > 0 || orderOfAccuracy.size() > 0) + if (phiDiff.size() > 0 || orderOfAccuracy.size() > 0) aPhiLogGroup.push_back(phiLog); } if (aPhiLogGroup.size() > 0) @@ -196,6 +222,7 @@ std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string logFileData->setPhiTestRun(false); } + if (logFileData->getNyTestRun()) { std::vector<std::string> failNy = StringUtil::toStringVector(input->getValue("FailTests_Ny_NyTest")); std::vector<std::string> failOOA = StringUtil::toStringVector(input->getValue("FailTests_OOA_NyTest")); @@ -205,7 +232,7 @@ std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string for (int i = 0; i < dataToCalc.size(); i++) { std::shared_ptr<NyLogFileDataImp> nyLog = NyLogFileDataImp::getNewInstance(); nyLog->setBasicGridLengths(logFileData->getBasicGridLengths()); - nyLog->setDataToCalcPhiAndNu(dataToCalc.at(i)); + nyLog->setDataToCalc(dataToCalc.at(i)); nyLog->setStartTimeStepCalculation(StringUtil::toInt(input->getValue("StartTimeStepCalculation_NyTest"))); nyLog->setEndTimeStepCalculation(StringUtil::toInt(input->getValue("EndTimeStepCalculation_NyTest"))); @@ -226,22 +253,27 @@ std::shared_ptr<LogFileData> LogFileReader::readLogFileToLogFileData(std::string nyDiff.push_back(StringUtil::toDouble(input->getValue(nyDiffString.str()))); } - std::vector<double> aOrderOfAccuracyGroup; + for (int k = j + 1; k < logFileData->getBasicGridLengths().size(); k++) { - std::ostringstream nyDiff, nyDiffBasic; - nyDiffBasic << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); + std::vector<double> aOrderOfAccuracyGroup; + std::ostringstream nyDiffOOA, nyDiffBasicOOA; + nyDiffBasicOOA << logFileData->getBasicGridLengths().at(j) << "_" << logFileData->getBasicGridLengths().at(k) << "_" << dataToCalc.at(i); bool failData = false; for (int k = 0; k < failOOA.size(); k++) { - if (nyDiffBasic.str() == failOOA.at(k)) + if (nyDiffBasicOOA.str() == failOOA.at(k)) failData = true; } if (!failData) { - nyDiff << "OrderOfAccuracy_NyDiff_" << nyDiffBasic.str(); - aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue(nyDiff.str()))); + nyDiffOOA << "OrderOfAccuracy_NyDiff_" << nyDiffBasicOOA.str(); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(j)); + aOrderOfAccuracyGroup.push_back(logFileData->getBasicGridLengths().at(k)); + aOrderOfAccuracyGroup.push_back(StringUtil::toDouble(input->getValue(nyDiffOOA.str()))); } + if (aOrderOfAccuracyGroup.size() > 0) + orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + } - if(aOrderOfAccuracyGroup.size() > 0) - orderOfAccuracy.push_back(aOrderOfAccuracyGroup); + } if (ny.size() > 0) { -- GitLab