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