44std::shared_ptr<L2NormTest>
L2NormTest::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct>
testParameter, std::string dataToCalculate,
double maxL2NormDiff, std::string normalizeData)
62 std::vector<double>
results = l2NormPostProStrategies.at(0)->getL2Norm(dataToCalculate, normalizeData);
64 resultBasicTimestep =
results.at(0);
65 resultDivergentTimeStep =
results.at(1);
66 diffL2Norm = resultDivergentTimeStep - resultBasicTimestep;
68 if (resultBasicTimestep < 0 || resultDivergentTimeStep < 0) {
73 testPassed = maxL2NormDiff > diffL2Norm;
85 std::ostringstream oss;
86 oss <<
"L2Norm_BasicTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() <<
"_" << dataToCalculate <<
"_" << normalizeData <<
"=" << resultBasicTimestep << std::endl;
87 oss <<
"L2Norm_DivergentTimeStep_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() <<
"_" << dataToCalculate <<
"_" << normalizeData <<
"=" << resultDivergentTimeStep << std::endl;
88 oss <<
"L2Norm_Diff_L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() <<
"_" << dataToCalculate <<
"_" << normalizeData <<
"=" << diffL2Norm << std::endl << std::endl;
94 std::ostringstream oss;
95 oss <<
"L" << l2NormPostProStrategies.at(0)->getNumberOfXNodes() <<
"_" << dataToCalculate <<
"_" << normalizeData;
99L2NormTest::L2NormTest(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct>
testParameter, std::string dataToCalculate,
double maxL2NormDiff, std::string normalizeData)
100 :
TestImp(colorOutput), dataToCalculate(dataToCalculate), normalizeData(normalizeData)
104 this->maxL2NormDiff = maxL2NormDiff;
107std::vector<std::string> L2NormTest::buildTestOutput()
109 std::vector<std::string> output = buildBasicTestOutput();
110 std::ostringstream oss;
112 oss <<
"L2Norm BasicTimeStep: " << resultBasicTimestep;
113 output.push_back(oss.str());
114 oss.str(std::string());
116 oss <<
"L2Norm DivergentTimeStep: " << resultDivergentTimeStep;
117 output.push_back(oss.str());
118 oss.str(std::string());
120 oss <<
"L2NormDiff: " << diffL2Norm;
121 output.push_back(oss.str());
122 oss.str(std::string());
127std::vector<std::string> L2NormTest::buildBasicTestOutput()
129 std::vector<std::string> output;
130 std::ostringstream oss;
132 output.push_back(
"L2 Norm Test");
134 oss <<
"Kernel: " <<
simInfos.at(0)->getKernelName();
135 output.push_back(oss.str());
136 oss.str(std::string());
138 oss <<
"Viscosity: " <<
simInfos.at(0)->getViscosity();
139 output.push_back(oss.str());
140 oss.str(std::string());
142 output.push_back(oss.str());
144 oss <<
simInfos.at(0)->getSimulationName();
145 output.push_back(oss.str());
146 oss.str(std::string());
148 oss <<
"L: " <<
simInfos.at(0)->getLx() <<
simInfos.at(0)->getSimulationParameterString();
149 output.push_back(oss.str());
150 oss.str(std::string());
152 output.push_back(oss.str());
154 oss <<
"DataToCalculate: " << dataToCalculate;
155 output.push_back(oss.str());
156 oss.str(std::string());
158 oss <<
"NormalizeData: " << normalizeData;
159 output.push_back(oss.str());
160 oss.str(std::string());
162 output.push_back(oss.str());
164 oss <<
"BasicTimeStep: " << basicTimeStep;
165 output.push_back(oss.str());
166 oss.str(std::string());
168 oss <<
"DivergentTimeStep: " << divergentTimeStep;
169 output.push_back(oss.str());
170 oss.str(std::string());
172 output.push_back(oss.str());
177std::vector<std::string> L2NormTest::buildErrorTestOutput()
179 std::vector<std::string> output = buildBasicTestOutput();
180 std::ostringstream oss;
182 oss <<
"Error Message: " << l2NormPostProStrategies.at(0)->getErrorMessage(normalizeData);
183 output.push_back(oss.str());
184 oss.str(std::string());
std::shared_ptr< ColorConsoleOutput > colorOutput
std::vector< std::shared_ptr< SimulationInfo > > simInfos
std::string getLogFileOutput()
void addSimulation(std::shared_ptr< NumericalTestSimulation > sim, std::shared_ptr< SimulationInfo > simInfo, std::shared_ptr< PostProcessingStrategy > postProStrategy)
void addSimulation(std::shared_ptr< NumericalTestSimulation > sim, std::shared_ptr< SimulationInfo > simInfo, std::shared_ptr< L2NormPostProcessingStrategy > postProStrategy)
static std::shared_ptr< L2NormTest > getNewInstance(std::shared_ptr< ColorConsoleOutput > colorOutput, std::shared_ptr< L2NormTestParameterStruct > testParameter, std::string dataToCalculate, double maxL2NormDiff, std::string normalizeData)
std::string getErrorLogFileOutput()
void makeConsoleOutput() override
std::shared_ptr< T > SPtr