From 1e5fb04339ceb2c5e4e967720d7862fb32eb70d1 Mon Sep 17 00:00:00 2001
From: Timon Habenicht <t.habenicht@tu-bs.de>
Date: Thu, 22 Nov 2018 11:56:00 +0100
Subject: [PATCH] adds level to Results

---
 .../Utilities/DataWriter/ToVectorWriter.cpp              | 1 +
 .../NumericalTests/Utilities/DataWriter/ToVectorWriter.h | 1 +
 .../DataWriter/Y2dSliceToResults/Y2dSliceToResults.cpp   | 9 ++++-----
 .../DataWriter/Y2dSliceToResults/Y2dSliceToResults.h     | 1 -
 .../Results/AnalyticalResults/AnalyticalResult.cpp       | 1 +
 targets/tests/NumericalTests/Utilities/Results/Results.h | 1 +
 .../NumericalTests/Utilities/Results/ResultsImp.cpp      | 7 ++++++-
 .../tests/NumericalTests/Utilities/Results/ResultsImp.h  | 2 ++
 .../Results/SimulationResults/SimulationResults.cpp      | 3 ++-
 .../Results/SimulationResults/SimulationResults.h        | 2 +-
 10 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp b/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp
index ddd0cabb0..0c1e474cd 100644
--- a/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp
+++ b/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.cpp
@@ -11,6 +11,7 @@ ToVectorWriter::ToVectorWriter(unsigned int ySliceForCalculation, unsigned int s
 	this->startTimeY2dSliceToVector = startTimeY2dSliceToVector;
 	this->startTimeDataWriter = startTimeDataWriter;
 	this->endTime = endTime;
+	this->timeStepLength = timeStepLength;
 }
 
 void ToVectorWriter::writeInit(std::shared_ptr<Parameter> para)
diff --git a/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h b/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h
index 3298004fe..d4626ad52 100644
--- a/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h
+++ b/targets/tests/NumericalTests/Utilities/DataWriter/ToVectorWriter.h
@@ -24,6 +24,7 @@ protected:
 
 	unsigned int ySliceForCalculation;
 	unsigned int counterTimeSteps;
+	unsigned int timeStepLength;
 	unsigned int startTimeY2dSliceToVector, startTimeDataWriter;
 	unsigned int endTime;
 	unsigned int maxX, maxY, maxZ;
diff --git a/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.cpp b/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.cpp
index e5fd2e9c3..3a10d7833 100644
--- a/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.cpp
+++ b/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.cpp
@@ -7,13 +7,11 @@
 Y2dSliceToResults::Y2dSliceToResults(std::shared_ptr<SimulationResults> simResults, unsigned int ySliceForCalculation, unsigned int startTimeY2dSliceToVector, unsigned int endTime, unsigned int timeStepLength, bool writeFiles, std::shared_ptr<FileWriter> fileWriter, unsigned int startTimeDataWriter): ToVectorWriter(ySliceForCalculation, startTimeY2dSliceToVector, endTime, timeStepLength, writeFiles, fileWriter, startTimeDataWriter)
 {
 	this->simResults = simResults;
-	counterTimeSteps = 0;
 }
 
 void Y2dSliceToResults::writeTimestep(std::shared_ptr<Parameter> para, unsigned int t, int level)
 {
-	counterTimeSteps++;
-
+	int timestep = t / timeStepLength;
 	maxX = para->getGridX().at(level);
 	maxY = para->getGridY().at(level);
 	maxZ = para->getGridZ().at(level);
@@ -22,6 +20,7 @@ void Y2dSliceToResults::writeTimestep(std::shared_ptr<Parameter> para, unsigned
 	std::vector<double> x(numberNodes), y(numberNodes), z(numberNodes);
 	std::vector<double> vx(numberNodes), vy(numberNodes), vz(numberNodes);
 	std::vector<double> press(numberNodes), rho(numberNodes);
+	std::vector<unsigned int> levels(numberNodes);
 
 	for (int posZ = 0; posZ < maxZ - 1; posZ++)
 	{
@@ -38,10 +37,10 @@ void Y2dSliceToResults::writeTimestep(std::shared_ptr<Parameter> para, unsigned
 			vz.at(posResults) = (double)para->getParH(level)->vz_SP[posPara] * (double)para->getVelocityRatio();
 			press.at(posResults) = (double)para->getParH(level)->press_SP[posPara] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio();
 			rho.at(posResults) = (double)para->getParH(level)->rho_SP[posPara] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio();
+			levels.at(posResults) = level;
 		}
 	}
-	simResults->addTimeStep(counterTimeSteps, t, x, y, z, vx, vy, vz, press, rho);
-	counterTimeSteps++;
+	simResults->addTimeStep(timestep, t, levels, x, y, z, vx, vy, vz, press, rho);
 }
 
 int Y2dSliceToResults::CoordPara3DTo1D(int x, int y, int z)
diff --git a/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h b/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h
index be143d9a6..c71077bf4 100644
--- a/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h
+++ b/targets/tests/NumericalTests/Utilities/DataWriter/Y2dSliceToResults/Y2dSliceToResults.h
@@ -19,6 +19,5 @@ private:
 	std::shared_ptr<SimulationResults> simResults;
 	int CoordPara3DTo1D(int x, int y, int z);
 	int CoordResults2DTo1D(int x, int z);
-	int counterTimeSteps;
 };
 #endif
\ No newline at end of file
diff --git a/targets/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.cpp b/targets/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.cpp
index 1c6756c7e..d2a0646c9 100644
--- a/targets/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.cpp
+++ b/targets/tests/NumericalTests/Utilities/Results/AnalyticalResults/AnalyticalResult.cpp
@@ -14,6 +14,7 @@ void AnalyticalResults::init(std::shared_ptr<SimulationResults> simResults)
 	this->x = simResults->getXNodes();
 	this->y = simResults->getYNodes();
 	this->z = simResults->getZNodes();
+	this->level = simResults->getLevels();
 
 	this->vx.resize(numberOfTimeSteps);
 	this->vy.resize(numberOfTimeSteps);
diff --git a/targets/tests/NumericalTests/Utilities/Results/Results.h b/targets/tests/NumericalTests/Utilities/Results/Results.h
index 9e34de76d..43983b91e 100644
--- a/targets/tests/NumericalTests/Utilities/Results/Results.h
+++ b/targets/tests/NumericalTests/Utilities/Results/Results.h
@@ -18,6 +18,7 @@ public:
 	virtual std::vector<std::vector<double>> getZNodes() = 0;
 	virtual int getTimeStepLength() = 0;
 	virtual std::vector<unsigned int> getTimeSteps() = 0;
+	virtual std::vector < std::vector< unsigned int>> getLevels() = 0;
 
 private:
 
diff --git a/targets/tests/NumericalTests/Utilities/Results/ResultsImp.cpp b/targets/tests/NumericalTests/Utilities/Results/ResultsImp.cpp
index 2846b9c00..d8aabcc29 100644
--- a/targets/tests/NumericalTests/Utilities/Results/ResultsImp.cpp
+++ b/targets/tests/NumericalTests/Utilities/Results/ResultsImp.cpp
@@ -58,4 +58,9 @@ int ResultsImp::getTimeStepLength()
 std::vector<unsigned int> ResultsImp::getTimeSteps()
 {
 	return timeStep;
-}
\ No newline at end of file
+}
+
+std::vector<std::vector<unsigned int>> ResultsImp::getLevels()
+{
+	return level;
+}
diff --git a/targets/tests/NumericalTests/Utilities/Results/ResultsImp.h b/targets/tests/NumericalTests/Utilities/Results/ResultsImp.h
index c13c7e283..0cd41be29 100644
--- a/targets/tests/NumericalTests/Utilities/Results/ResultsImp.h
+++ b/targets/tests/NumericalTests/Utilities/Results/ResultsImp.h
@@ -18,6 +18,7 @@ public:
 	std::vector<std::vector<double>> getZNodes();
 	int getTimeStepLength();
 	std::vector<unsigned int> getTimeSteps();
+	std::vector< std::vector< unsigned int> > getLevels();
 
 protected:
 	ResultsImp() {};
@@ -33,6 +34,7 @@ protected:
 	std::vector<std::vector<double>> vx, vy, vz;
 	std::vector<std::vector<double>> press;
 	std::vector<std::vector<double>> rho;
+	std::vector<std::vector<unsigned int>> level;
 
 private:
 
diff --git a/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp b/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp
index 21c91358a..6e7fafe23 100644
--- a/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp
+++ b/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.cpp
@@ -18,7 +18,7 @@ std::shared_ptr<SimulationResults> SimulationResults::getNewInstance(unsigned in
 	return std::shared_ptr<SimulationResults>(new SimulationResults(lx, ly, lz, timeStepLength));
 }
 
-void SimulationResults::addTimeStep(unsigned int timeStep, unsigned int time, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> vx, std::vector<double> vy, std::vector<double> vz, std::vector<double> press, std::vector<double> rho)
+void SimulationResults::addTimeStep(unsigned int timeStep, unsigned int time, std::vector<unsigned int> level, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> vx, std::vector<double> vy, std::vector<double> vz, std::vector<double> press, std::vector<double> rho)
 {
 	this->timeStep.push_back(timeStep);
 	this->time.push_back(time);
@@ -30,5 +30,6 @@ void SimulationResults::addTimeStep(unsigned int timeStep, unsigned int time, st
 	this->vz.push_back(vz);
 	this->press.push_back(press);
 	this->rho.push_back(rho);
+	this->level.push_back(level);
 	numberOfTimeSteps++;
 }
\ No newline at end of file
diff --git a/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.h b/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.h
index e9f9cf03d..0b48cc89a 100644
--- a/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.h
+++ b/targets/tests/NumericalTests/Utilities/Results/SimulationResults/SimulationResults.h
@@ -8,7 +8,7 @@ class SimulationResults : public ResultsImp
 {
 public:
 	static std::shared_ptr<SimulationResults> getNewInstance(unsigned int lx, unsigned int ly, unsigned int lz, unsigned int timeStepLength);
-	void addTimeStep(unsigned int timeStep, unsigned int time, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> vx, std::vector<double> vy, std::vector<double> vz, std::vector<double> press, std::vector<double> rho);
+	void addTimeStep(unsigned int timeStep, unsigned int time, std::vector<unsigned int> level, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> vx, std::vector<double> vy, std::vector<double> vz, std::vector<double> press, std::vector<double> rho);
 
 private:
 	SimulationResults(unsigned int lx, unsigned int ly, unsigned int lz, unsigned int timeStepLength);
-- 
GitLab