From 7618cc12748702a8e42adb3b061b19167cad0dc1 Mon Sep 17 00:00:00 2001
From: Timon Habenicht <t.habenicht@tu-bs.de>
Date: Fri, 2 Nov 2018 11:05:45 +0100
Subject: [PATCH] adds Kernel variables to Parameter

---
 src/VirtualFluids_GPU/Parameter/Parameter.cpp | 41 +++++++++++++++++++
 src/VirtualFluids_GPU/Parameter/Parameter.h   | 20 ++++++++-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/src/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/VirtualFluids_GPU/Parameter/Parameter.cpp
index cf4b7cb24..fb9aef132 100644
--- a/src/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -2716,6 +2716,10 @@ void Parameter::setDiffOn(bool isDiff)
 {
 	diffOn = isDiff;
 }
+void Parameter::setCompOn(bool isComp)
+{
+	compOn = isComp;
+}
 void Parameter::setDiffMod(int DiffMod)
 {
 	diffMod = DiffMod;
@@ -3534,6 +3538,22 @@ void Parameter::setOutflowBoundaryNormalZ(std::string outflowNormalZ)
 {
 	ic.outflowNormalZ = outflowNormalZ;
 }
+void Parameter::setMainKernel(std::string kernelName)
+{
+	this->mainKernelName = kernelName;
+}
+void Parameter::setMultiKernelOn(bool isOn)
+{
+	this->multiKernelOn = isOn;
+}
+void Parameter::setMultiKernelLevel(std::vector< int> kernelLevel)
+{
+	this->multiKernelLevel = multiKernelLevel;
+}
+void Parameter::setMultiKernelName(std::vector< std::string> kernelName)
+{
+	this->multiKernelName = kernelName;
+}
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
@@ -3641,6 +3661,10 @@ bool Parameter::getDiffOn()
 {
 	return diffOn;
 }
+bool Parameter::getCompOn()
+{
+	return compOn;
+}
 int Parameter::getDiffMod()
 {
 	return diffMod;
@@ -4400,6 +4424,23 @@ curandState* Parameter::getRandomState()
 {
 	return this->devState;
 }
+
+std::string Parameter::getMainKernelName()
+{
+	return mainKernelName;
+}
+bool Parameter::getMultiKernelOn()
+{
+	return multiKernelOn;
+}
+std::vector< int> Parameter::getMultiKernelLevel()
+{
+	return multiKernelLevel;
+}
+std::vector< std::string> Parameter::getMultiKernelName()
+{
+	return multiKernelName;
+}
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
diff --git a/src/VirtualFluids_GPU/Parameter/Parameter.h b/src/VirtualFluids_GPU/Parameter/Parameter.h
index b5bb7c85f..7833d404b 100644
--- a/src/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/VirtualFluids_GPU/Parameter/Parameter.h
@@ -557,6 +557,7 @@ public:
 	void setStartTurn(unsigned int inStartTurn);
 	void setSizeMatSparse(int level);
 	void setDiffOn(bool isDiff);
+	void setCompOn(bool isComp);
 	void setDiffMod(int DiffMod);
 	void setDiffusivity(real Diffusivity);
 	void setD3Qxx(int d3qxx);
@@ -731,6 +732,11 @@ public:
 	void setOutflowBoundaryNormalX(std::string outflowNormalX);
 	void setOutflowBoundaryNormalY(std::string outflowNormalY);
 	void setOutflowBoundaryNormalZ(std::string outflowNormalZ);
+	//Kernel
+	void setMainKernel(std::string kernelName);
+	void setMultiKernelOn(bool isOn);
+	void setMultiKernelLevel(std::vector< int> kernelLevel);
+	void setMultiKernelName(std::vector< std::string> kernelName);
 
 	//getter
 	double* getForcesDouble();
@@ -746,6 +752,7 @@ public:
 	unsigned int getStartTurn();
 	bool getEvenOrOdd(int level);
 	bool getDiffOn();
+	bool getCompOn();
 	bool getPrintFiles();
 	bool getReadGeo();
 	bool getCalcMedian();
@@ -924,7 +931,11 @@ public:
 	std::string getOutflowBoundaryNormalZ();
 	//CUDA random number
 	curandState* getRandomState();
-
+	//Kernel
+	std::string getMainKernelName();
+	bool getMultiKernelOn();
+	std::vector< int> getMultiKernelLevel();
+	std::vector< std::string> getMultiKernelName();
 
     public:
         //Forcing///////////////
@@ -934,6 +945,7 @@ public:
 protected:
 private:
 	static Parameter* instanz;
+	bool compOn;
 	bool diffOn;
 	int diffMod;
 	int coarse, fine, maxlevel;
@@ -944,6 +956,12 @@ private:
 	unsigned int limitOfNodesForVTK;
 	unsigned int outputCount;
 
+	//Kernel
+	std::string mainKernelName;
+	bool multiKernelOn;
+	std::vector< int> multiKernelLevel;
+	std::vector< std::string> multiKernelName;
+
 	//////////////////////////////////////////////////////////////////////////
 	//particles
 	int particleBasicLevel, particleInitLevel;
-- 
GitLab