From 6d1fdd2150af9499704e6ec7feb0c30384115d81 Mon Sep 17 00:00:00 2001
From: Anna Wellmann <a.wellmann@tu-bs.de>
Date: Wed, 21 Dec 2022 08:17:30 +0000
Subject: [PATCH] OhnePole

---
 apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp    | 22 ++++++++++---------
 .../LBM/ActuatorLine/configActuatorLine.txt   |  4 ++--
 src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp  |  4 ++--
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
index 820b6d8d4..77fa28738 100644
--- a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
+++ b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp
@@ -132,7 +132,7 @@ void multipleLevel(const std::string& configPath)
 
     const real viscosity = 1.56e-5;
 
-    const real mach = 0.2;
+    const real mach = 0.1;
 
 
     const float tStartOut   = config.getValue<real>("tStartOut");
@@ -164,10 +164,9 @@ void multipleLevel(const std::string& configPath)
     para->setMaxLevel(2);
     scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible);
 
-    std::string stlPath = "./VirtualFluids_dev/apps/gpu/LBM/ActuatorLine/Pole.stl";
-
-    Object *sphere = TriangularMesh::make(stlPath);
-    gridBuilder->addGeometry(sphere);
+    // std::string stlPath = "./VirtualFluids_dev/apps/gpu/LBM/ActuatorLine/Pole.stl";
+    // Object *sphere = TriangularMesh::make(stlPath);
+    // gridBuilder->addGeometry(sphere);
 
     gridBuilder->setPeriodicBoundaryCondition(false, false, false);
 
@@ -189,6 +188,7 @@ void multipleLevel(const std::string& configPath)
     VF_LOG_INFO("velocity  [m/s] = {}", velocity);
     VF_LOG_INFO("velocity  [dx/dt] = {}", velocityLB);
     VF_LOG_INFO("viscosity [10^8 dx^2/dt] = {}", viscosityLB*1e8);
+    VF_LOG_INFO("Ma = {}", mach);
     VF_LOG_INFO("nodes/turbine diameter = {}", reference_diameter/dx);
 
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -227,15 +227,16 @@ void multipleLevel(const std::string& configPath)
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     gridBuilder->setVelocityBoundaryCondition(SideType::MX,  velocityLB, 0.0, 0.0);
-    gridBuilder->setVelocityBoundaryCondition(SideType::MY,  0.0, 0.0, 0.0);
+    gridBuilder->setSlipBoundaryCondition(SideType::MY,0.0, 0.0, 0.0 );
     gridBuilder->setVelocityBoundaryCondition(SideType::PY,  velocityLB, 0.0, 0.0);
     gridBuilder->setVelocityBoundaryCondition(SideType::MZ,  velocityLB, 0.0, 0.0);
     gridBuilder->setVelocityBoundaryCondition(SideType::PZ,  velocityLB, 0.0, 0.0);
     gridBuilder->setPressureBoundaryCondition(SideType::PX, 0.0);
 
-    gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0);
-    bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::NoSlipBC::NoSlipCompressible);
+    // gridBuilder->setVelocityBoundaryCondition(SideType::GEOMETRY, 0.0, 0.0, 0.0);
+    // bcFactory.setGeometryBoundaryCondition(BoundaryConditionFactory::NoSlipBC::NoSlipCompressible);
 
+    bcFactory.setSlipBoundaryCondition(BoundaryConditionFactory::SlipBC::SlipCompressible);
     bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityAndPressureCompressible);
     bcFactory.setPressureBoundaryCondition(BoundaryConditionFactory::PressureBC::OutflowNonReflective);
 
@@ -247,10 +248,11 @@ void multipleLevel(const std::string& configPath)
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
     int level = 1; // grid level at which the turbine samples velocities and distributes forces
-    const real epsilon = dx*exp2(-level)*1.5; // width of gaussian smearing
+    const real epsilon = dx*exp2(-level)*2.0; // width of gaussian smearing
     const real density = 1.225f;
     const uint nBlades = 3;
-    const uint nBladeNodes = 401; // passt zu auflösung von 105 Knoten
+    const uint nBladeNodes = 404; // passt zu auflösung von 105 Knoten
+    VF_LOG_INFO("number of blade nodes ALM = {}", nBladeNodes);
     const real tipspeed_ratio = 7.5f; // tipspeed ratio = angular vel * radius / inflow vel
     const real omega = 2*tipspeed_ratio*velocity/reference_diameter;
 
diff --git a/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt b/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt
index a9b33144e..f637c47f2 100644
--- a/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt
+++ b/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt
@@ -12,8 +12,8 @@ NodesPerDiameter=105
 Velocity=9
 ##################################################
 tStartOut=0
-tOut=10000
-tEnd=10000
+tOut=5000
+tEnd=5000
 ##################################################
 
 # tStartTmpAveraging=100
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index 74e37b4cb..83f39ee82 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -370,8 +370,8 @@ void Simulation::init(GridProvider &gridProvider, BoundaryConditionFactory *bcFa
     //////////////////////////////////////////////////////////////////////////
     // Write Initialized Files
     //////////////////////////////////////////////////////////////////////////
-    VF_LOG_INFO("Write initialized Files ...");
-    dataWriter->writeInit(para, cudaMemoryManager);
+    // VF_LOG_INFO("Write initialized Files ...");
+    // dataWriter->writeInit(para, cudaMemoryManager);
     if (para->getCalcParticles())
         copyAndPrintParticles(para.get(), cudaMemoryManager.get(), 0, true);
     VF_LOG_INFO("... done.");
-- 
GitLab