From 477e2516fd053fa9596b3a17a5ba8250c0196e83 Mon Sep 17 00:00:00 2001
From: Anna <a.wellmann@tu-bs.de>
Date: Mon, 27 Jun 2022 13:36:35 +0000
Subject: [PATCH] Remove Parameter Singelton

---
 .../DiluteGravityCurrents_Case1.cpp           |  2 +-
 .../DiluteGravityCurrents_Case2.cpp           |  2 +-
 .../DiluteGravityCurrents_Case3.cpp           |  2 +-
 .../DiluteGravityCurrents_Case4.cpp           |  2 +-
 .../DiluteGravityCurrents_Case5.cpp           |  4 ++--
 .../DiluteGravityCurrents_Case6.cpp           |  2 +-
 .../DiluteGravityCurrents_Case7.cpp           |  2 +-
 .../DiluteGravityCurrents_Case8.cpp           |  2 +-
 .../gpu/FlowAroundSphere/FlowAroundSphere.cpp |  5 +++--
 .../LidDrivenCavityGPU/LidDrivenCavity.cpp    |  2 +-
 .../VirtualFluids_GPU/Parameter/Parameter.cpp | 15 -------------
 .../VirtualFluids_GPU/Parameter/Parameter.h   | 22 ++++++-------------
 12 files changed, 20 insertions(+), 42 deletions(-)

diff --git a/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp b/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
index 838b2ccd5..3662855a6 100644
--- a/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp b/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
index dcbb47c4b..9fe76d9fb 100644
--- a/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp b/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
index e77d5f6eb..7fe830cc5 100644
--- a/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp b/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
index 7427aa9b7..140150730 100644
--- a/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp b/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
index 9df9da287..6263ad530 100644
--- a/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
@@ -119,8 +119,8 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
-
+            SPtr<Parameter> para =std::make_shared<Parameter>();
+            
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
             const uint timeStepOut = (int)DeltaT;
diff --git a/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp b/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
index f1c8aa5c2..64f0343d6 100644
--- a/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp b/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
index d6d468436..ac8b6f230 100644
--- a/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp b/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
index 09459acd8..93aaf9b8d 100644
--- a/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp b/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
index 10dfd23ba..4cc501260 100644
--- a/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
+++ b/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
@@ -46,6 +46,7 @@
 #include "Core/LbmOrGks.h"
 #include "Core/Logger/Logger.h"
 #include "Core/VectorTypes.h"
+#include "config/ConfigurationFile.h"
 #include "PointerDefinitions.h"
 
 //////////////////////////////////////////////////////////////////////////
@@ -123,8 +124,8 @@ int main(int argc, char *argv[])
         // setup simulation parameters
         //////////////////////////////////////////////////////////////////////////
 
-        SPtr<Parameter> para = Parameter::make();
-
+        SPtr<Parameter> para =std::make_shared<Parameter>();
+        
         //////////////////////////////////////////////////////////////////////////
         // compute parameters in lattice units
         //////////////////////////////////////////////////////////////////////////
diff --git a/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp b/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
index 61b528d49..836374dfa 100644
--- a/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
+++ b/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
@@ -142,7 +142,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             //////////////////////////////////////////////////////////////////////////
             // compute parameters in lattice units
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
index 10075ed9c..1e79d5cf5 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -36,11 +36,6 @@
 #include <stdlib.h>
 #include <math.h>
 
-SPtr<Parameter> Parameter::make()
-{
-    return SPtr<Parameter>(new Parameter());
-}
-
 Parameter::Parameter()
 {
     this->setOutputPath("C:/Output/");
@@ -81,16 +76,6 @@ Parameter::Parameter()
     // Advection Diffusion
     this->setIsADcalculationOn(false);
 }
-Parameter::~Parameter()
-{
-}
-Parameter* Parameter::instance = 0;
-Parameter* Parameter::getInstance()
-{
-    if( instance == 0 )
-        instance = new Parameter();
-    return instance;
-}
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //init-method
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index a974b8220..776ba8382 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -37,6 +37,7 @@
 #include "LBM/LB.h"
 #include "PointerDefinitions.h"
 #include "VirtualFluids_GPU_export.h"
+#include "basics/config/ConfigurationFile.h"
 
 //! \struct ParameterStruct
 //! \brief struct holds and manages the LB-parameter of the simulation that correspond to a certain level
@@ -111,17 +112,18 @@ class VIRTUALFLUIDS_GPU_EXPORT Parameter
 {
 public:
     ////////////////////////////////////////////////////////////////////////////
-    //! \brief generate a new instance of parameter object
-    static SPtr<Parameter> make();
-    //! \brief returns the instance generate a new instance of parameter object
-    static Parameter* getInstance();
+    //! \brief generate a new instance of parameter object, sets some defaults
+    Parameter();
+    
+    ~Parameter() = default;
+
     //! \brief Pointer to instance of ParameterStruct - stored on Host System
     ParameterStruct* getParH();
     //! \brief Pointer to instance of ParameterStruct - stored on Device (GPU)
     ParameterStruct* getParD();
 
     //////////////////////////////////////////////////////////////////////////
-    //! \brief initialization of necessary parameters at startup
+    //! \brief initialization of necessary parameters at simulation startup
     void initParameter();
 
     //////////////////////////////////////////////////////////////////////////
@@ -255,13 +257,7 @@ public:
     void setInitialConditionAD(std::function<void(real, real, real, real &)> initialConditionAD);
     std::function<void(real, real, real, real &)> &getInitialConditionAD();
 
-    //////////////////////////////////////////////////////////////////////////
-    //! Class destructor
-    ~Parameter();
-protected:
 private:
-    //! \brief instance of parameter object 
-    static Parameter* instance;
     //! \brief stencil for the LB simulation, number of node neighbors
     int D3Qxx;
     //! \brief limit of nodes, that can be written to a binary unstructured grid VTK file  
@@ -306,10 +302,6 @@ private:
     ParameterStruct* parametersOnHost;
     //! \brief pointer to LB-parameter struct on device/GPU
     ParameterStruct* parametersOnDevice;
-
-    //! Class default constructor
-    Parameter();
-    //Parameter(const Parameter&);
 };
 
 #endif
-- 
GitLab