47std::shared_ptr<PhiTest>
PhiTest::getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput,
double viscosity, std::shared_ptr<PhiTestParameterStruct>
testPara, std::string dataToCalculate)
54 for (
uint i = 0;
i < postProStrategies.size();
i++)
55 phiDiff.push_back(postProStrategies.at(
i)->getPhiDiff(dataToCalculate));
57 orderOfAccuracy = calcOrderOfAccuracy(phiDiff);
77 return dataToCalculate;
82 std::vector<int>
lxINT;
83 for (
uint i = 0;
i < lx.size();
i++)
84 lxINT.push_back((
int)lx.at(
i));
95 return orderOfAccuracy;
98PhiTest::PhiTest(std::shared_ptr<ColorConsoleOutput> colorOutput,
double viscosity, std::shared_ptr<PhiTestParameterStruct>
testPara, std::string dataToCalculate)
99 :
TestImp(colorOutput), dataToCalculate(dataToCalculate)
101 minOrderOfAccuracy =
testPara->minOrderOfAccuracy;
102 startStepCalculation =
testPara->startTimeStepCalculation;
103 endStepCalculation =
testPara->endTimeStepCalculation;
109double PhiTest::calcOrderOfAccuracy(std::vector<double> data)
111 double ooa = std::log(data.at(0) / data.at(1)) / std::log(lx.at(1) / lx.at(0));
116TestStatus PhiTest::checkTestPassed(
double orderOfAccuracy)
118 if (orderOfAccuracy > minOrderOfAccuracy)
124std::vector<std::string> PhiTest::buildTestOutput()
126 std::vector<std::string> output = buildBasicTestOutput();
127 std::ostringstream oss;
129 for (
uint i = 0;
i < phiDiff.size();
i++) {
130 oss <<
"PhiDiff" <<
simInfos.at(
i)->getLx() <<
": " << phiDiff.at(
i);
131 output.push_back(oss.str());
132 oss.str(std::string());
134 oss <<
"OrderOfAccuracy: " << orderOfAccuracy;
135 output.push_back(oss.str());
136 oss.str(std::string());
141std::vector<std::string> PhiTest::buildBasicTestOutput()
143 std::vector<std::string> output;
144 std::ostringstream oss;
146 output.push_back(
"Phi Test");
148 oss <<
"Kernel: " <<
simInfos.at(0)->getKernelName();
149 output.push_back(oss.str());
150 oss.str(std::string());
152 oss <<
"Viscosity: " <<
simInfos.at(0)->getViscosity();
153 output.push_back(oss.str());
154 oss.str(std::string());
156 output.push_back(oss.str());
158 oss <<
simInfos.at(0)->getSimulationName();
159 output.push_back(oss.str());
160 oss.str(std::string());
163 oss <<
"L: " << std::setfill(
' ') << std::right << std::setw(4) <<
simInfos.at(
i)->getLx() <<
simInfos.at(
i)->getSimulationParameterString();
164 output.push_back(oss.str());
165 oss.str(std::string());
168 output.push_back(oss.str());
170 oss <<
"DataToCalculate: " << dataToCalculate;
171 output.push_back(oss.str());
172 oss.str(std::string());
174 oss <<
"StartTimeStep: " << startStepCalculation;
175 output.push_back(oss.str());
176 oss.str(std::string());
178 oss <<
"EndTimeStep: " << endStepCalculation;
179 output.push_back(oss.str());
180 oss.str(std::string());
182 output.push_back(oss.str());
187std::vector<std::string> PhiTest::buildErrorTestOutput()
189 std::vector<std::string> output = buildBasicTestOutput();
190 std::ostringstream oss;
192 oss <<
"Error Message: ";
193 output.push_back(oss.str());
194 oss.str(std::string());
std::shared_ptr< ColorConsoleOutput > colorOutput
std::vector< std::shared_ptr< SimulationInfo > > simInfos
std::string getDataToCalculate()
static std::shared_ptr< PhiTest > getNewInstance(std::shared_ptr< ColorConsoleOutput > colorOutput, double viscosity, std::shared_ptr< PhiTestParameterStruct > testPara, std::string dataToCalculate)
std::vector< int > getLx()
void addSimulation(std::shared_ptr< NumericalTestSimulation > sim, std::shared_ptr< SimulationInfo > simInfo, std::shared_ptr< PostProcessingStrategy > postProStrategy)
std::vector< double > getPhiDiff()
double getOrderOfAccuracy()
void addSimulation(std::shared_ptr< NumericalTestSimulation > sim, std::shared_ptr< SimulationInfo > simInfo, std::shared_ptr< PhiTestPostProcessingStrategy > postProStrategy)
void makeConsoleOutput() override
std::shared_ptr< T > SPtr