From 3cb2f636286a40ff7c98021a23b57e934d990f37 Mon Sep 17 00:00:00 2001 From: Henry <henry.korb@geo.uu.se> Date: Thu, 5 Oct 2023 17:42:34 +0200 Subject: [PATCH] slightly change reg test --- .../ActuatorLineRegression.cpp | 47 ++++++++++++++----- .../configActuatorLine.txt | 23 ++++----- 2 files changed, 46 insertions(+), 24 deletions(-) diff --git a/apps/gpu/ActuatorLineRegression/ActuatorLineRegression.cpp b/apps/gpu/ActuatorLineRegression/ActuatorLineRegression.cpp index d5008ac92..5ff3151d1 100644 --- a/apps/gpu/ActuatorLineRegression/ActuatorLineRegression.cpp +++ b/apps/gpu/ActuatorLineRegression/ActuatorLineRegression.cpp @@ -111,7 +111,7 @@ void multipleLevel(const std::string& configPath) const uint nodes_per_diameter = config.getValue<uint>("NodesPerDiameter"); const real velocity = config.getValue<real>("Velocity"); - const real L_x = 8 * reference_diameter; + const real L_x = 10 * reference_diameter; const real L_y = 4 * reference_diameter; const real L_z = 4 * reference_diameter; @@ -157,6 +157,7 @@ void multipleLevel(const std::string& configPath) const real viscosityLB = viscosity * dt / (dx * dx); // LB units + VF_LOG_INFO("dx = {}m", dx); VF_LOG_INFO("velocity [dx/dt] = {}", velocityLB); VF_LOG_INFO("viscosity [10^8 dx^2/dt] = {}", viscosityLB*1e8); @@ -190,11 +191,11 @@ void multipleLevel(const std::string& configPath) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - gridBuilder->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0); - gridBuilder->setVelocityBoundaryCondition(SideType::MY, velocityLB, 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->setVelocityBoundaryCondition(SideType::MX, velocityLB, 0.0, 0.0); + gridBuilder->setVelocityBoundaryCondition(SideType::MY, velocityLB, 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); bcFactory.setVelocityBoundaryCondition(BoundaryConditionFactory::VelocityBC::VelocityAndPressureCompressible); @@ -206,7 +207,8 @@ void multipleLevel(const std::string& configPath) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int level = 0; // grid level at which the turbine samples velocities and distributes forces - const real smearing_width = dx*exp2(-level)*1.5; // width of gaussian smearing + const real smearing_width = dx*exp2(-level)*2; // width of gaussian smearing + VF_LOG_INFO("smearing_width = {}m", smearing_width); const real density = 1.225f; const uint nBlades = 3; const uint nBladeNodes = 32; @@ -221,12 +223,31 @@ void multipleLevel(const std::string& configPath) actuator_farm->addTurbine(turbPos[0], turbPos[1], turbPos[2], reference_diameter, rotor_speed, 0, 0, bladeRadii); para->addActuator( actuator_farm ); - SPtr<PlaneProbe> planeProbe = std::make_shared<PlaneProbe>("planeProbe", para->getOutputPath(), tStartTmpAveraging/dt, tAveraging/dt, tStartOutProbe/dt, tOutProbe/dt); - planeProbe->setProbePlane(5 * reference_diameter, -0.5 * L_y, -0.5 * L_z, dx, L_y, L_z); - planeProbe->addStatistic(Statistic::Means); - planeProbe->addStatistic(Statistic::Variances); - planeProbe->addStatistic(Statistic::Instantaneous); - para->addProbe( planeProbe ); + std::vector<real> planePositions = {-1*reference_diameter, 1*reference_diameter, 3*reference_diameter}; + + for(int i=0; i < planePositions.size(); i++) + { + SPtr<PlaneProbe> planeProbe = std::make_shared<PlaneProbe>("planeProbe_" + std::to_string(i), para->getOutputPath(), tStartTmpAveraging/dt, tAveraging/dt, tStartOutProbe/dt, tOutProbe/dt); + planeProbe->setProbePlane(turbPos[0]+planePositions[i], -0.5 * L_y, -0.5 * L_z, dx, L_y, L_z); + planeProbe->addStatistic(Statistic::Means); + planeProbe->addStatistic(Statistic::Variances); + planeProbe->addStatistic(Statistic::Instantaneous); + para->addProbe( planeProbe ); + } + SPtr<PlaneProbe> planeProbeVert = std::make_shared<PlaneProbe>("planeProbeVertical", para->getOutputPath(), tStartTmpAveraging/dt, tAveraging/dt, tStartOutProbe/dt, tOutProbe/dt); + planeProbeVert->setProbePlane(0, turbPos[1], -0.5 * L_z, L_x, dx, L_z); + planeProbeVert->addStatistic(Statistic::Means); + planeProbeVert->addStatistic(Statistic::Variances); + planeProbeVert->addStatistic(Statistic::Instantaneous); + para->addProbe( planeProbeVert ); + + SPtr<PlaneProbe> planeProbeHorz = std::make_shared<PlaneProbe>("planeProbeHorizontal", para->getOutputPath(), tStartTmpAveraging/dt, tAveraging/dt, tStartOutProbe/dt, tOutProbe/dt); + planeProbeHorz->setProbePlane(0, -0.5 * L_y, turbPos[2], L_x, L_y, dx); + planeProbeHorz->addStatistic(Statistic::Means); + planeProbeHorz->addStatistic(Statistic::Variances); + planeProbeHorz->addStatistic(Statistic::Instantaneous); + para->addProbe( planeProbeHorz ); + auto cudaMemoryManager = std::make_shared<CudaMemoryManager>(para); diff --git a/apps/gpu/ActuatorLineRegression/configActuatorLine.txt b/apps/gpu/ActuatorLineRegression/configActuatorLine.txt index b2f799fa0..06080d82f 100644 --- a/apps/gpu/ActuatorLineRegression/configActuatorLine.txt +++ b/apps/gpu/ActuatorLineRegression/configActuatorLine.txt @@ -7,28 +7,29 @@ Path = ./output/ActuatorLine/ ################################################## GridPath=. ################################################## -ReferenceDiameter=126 -NodesPerDiameter=24 -Velocity=9 +ReferenceDiameter = 126 +NodesPerDiameter = 24 +Velocity = 9 + ################################################## -tStartOut=300 +tStartOut=1000000 tOut=100 -tEnd=200 -################################################## +tEnd=402 +################################################## tStartTmpAveraging=100 tStartAveraging=100 tAveraging=100 tTmpAveraging=100 tStartOutProbe=100 -tOutProbe=100 - +tOutProbe=100 + ################################################## TurbulenceModel = QR SGSconstant = 0.3333333 -QuadricLimiterP = 100000.0 -QuadricLimiterM = 100000.0 -QuadricLimiterD = 100000.0 +QuadricLimiterP = 1.0 +QuadricLimiterM = 1.0 +QuadricLimiterD = 1.0 ################################################## -- GitLab