From 2f179ab7e0c309eb7ca80f65f037935487f3db7a Mon Sep 17 00:00:00 2001 From: Henry <henry.korb@geo.uu.se> Date: Fri, 25 Nov 2022 13:55:44 +0100 Subject: [PATCH] update AL app --- apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp | 47 +++++++++++-------- .../LBM/ActuatorLine/configActuatorLine.txt | 16 +++++++ .../src/gpu/submodules/parameter.cpp | 1 + .../PreCollisionInteractor/ActuatorFarm.cu | 3 +- .../PreCollisionInteractor/ActuatorFarm.h | 3 -- 5 files changed, 45 insertions(+), 25 deletions(-) diff --git a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp index 045e69c17..117287abf 100644 --- a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp +++ b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp @@ -67,26 +67,10 @@ LbmOrGks lbmOrGks = LBM; -const real reference_diameter = 126.0; // diameter in m - -const real L_x = 16*reference_diameter; -const real L_y = 6*reference_diameter; -const real L_z = 6*reference_diameter; - -const real viscosity = 1.56e-5; - -const real velocity = 9.0; - -const real mach = 0.1; - -const uint nodes_per_diameter = 16; - std::string path("."); std::string simulationName("ActuatorLine"); -const float tOut = 100; -const float tEnd = 300; // total time of simulation in s //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -106,7 +90,31 @@ void multipleLevel(const std::string& configPath) vf::basics::ConfigurationFile config; config.load(configPath); - + + const real reference_diameter = config.getValue<real>("ReferenceDiameter"); + const uint nodes_per_diameter = config.getValue<uint>("NodesPerDiameter"); + const real velocity = config.getValue<real>("Velocity"); + + + const real L_x = 16*reference_diameter; + const real L_y = 6*reference_diameter; + const real L_z = 6*reference_diameter; + + const real viscosity = 1.56e-5; + + const real mach = 0.1; + + + const float tStartOut = config.getValue<real>("tStartOut"); + const float tOut = config.getValue<real>("tOut"); + const float tEnd = config.getValue<real>("tEnd"); // total time of simulation + + const float tStartAveraging = config.getValue<real>("tStartAveraging"); + const float tStartTmpAveraging = config.getValue<real>("tStartTmpAveraging"); + const float tAveraging = config.getValue<real>("tAveraging"); + const float tStartOutProbe = config.getValue<real>("tStartOutProbe"); + const float tOutProbe = config.getValue<real>("tOutProbe"); + SPtr<Parameter> para = std::make_shared<Parameter>(communicator.getNummberOfProcess(), communicator.getPID(), &config); BoundaryConditionFactory bcFactory = BoundaryConditionFactory(); GridScalingFactory scalingFactory = GridScalingFactory(); @@ -197,10 +205,9 @@ void multipleLevel(const std::string& configPath) SPtr<ActuatorFarm> actuator_farm = std::make_shared<ActuatorFarm>(nBlades, density, nBladeNodes, epsilon, level, dt, dx, true); std::vector<real> bladeRadii; - real dr = reference_diameter/nBladeNodes; - for(uint node=0; node<nBladeNodes; node++){bladeRadii.emplace_back(dr*(node+1));} + real dr = reference_diameter/(nBladeNodes*2); + for(uint node=0; node<nBladeNodes; node++){ bladeRadii.emplace_back(dr*(node+1)); } actuator_farm->addTurbine(turbPos[0], turbPos[1], turbPos[2], reference_diameter, omega, 0, 0, bladeRadii); - actuator_farm->setUseCalcForcesEllipticWing(true); para->addActuator( actuator_farm ); diff --git a/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt b/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt index 233994f0d..d4be0a6db 100644 --- a/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt +++ b/apps/gpu/LBM/ActuatorLine/configActuatorLine.txt @@ -6,3 +6,19 @@ Path = . #informations for reading ################################################## GridPath=. +################################################## +ReferenceDiameter=126 +NodesPerDiameter=32 +Velocity=9 +################################################## +tStartOut=500 +tOut=100 +tEnd=1000 +################################################## + +tStartTmpAveraging=100 +tStartAveraging=100 +tAveraging=100 +tTmpAveraging=100 +tStartOutProbe=100 +tOutProbe=100 \ No newline at end of file diff --git a/pythonbindings/src/gpu/submodules/parameter.cpp b/pythonbindings/src/gpu/submodules/parameter.cpp index 6d3520d8d..31b380a91 100644 --- a/pythonbindings/src/gpu/submodules/parameter.cpp +++ b/pythonbindings/src/gpu/submodules/parameter.cpp @@ -49,6 +49,7 @@ namespace parameter .def("set_velocity_ratio", &Parameter::setVelocityRatio) .def("set_density_ratio", &Parameter::setDensityRatio) .def("set_devices", &Parameter::setDevices) + .def("set_max_dev", &Parameter::setMaxDev) .def("set_is_body_force", &Parameter::setIsBodyForce) .def("set_use_streams", &Parameter::setUseStreams) .def("set_main_kernel", &Parameter::setMainKernel) diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu index d14e6ad4f..75c6ee9cf 100644 --- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu +++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.cu @@ -371,8 +371,7 @@ void ActuatorFarm::calcForcesEllipticWing() void ActuatorFarm::calcBladeForces() { - if(this->useCalcForcesEllipticWing) - this->calcForcesEllipticWing(); + this->calcForcesEllipticWing(); } void ActuatorFarm::getTaggedFluidNodes(Parameter *para, GridProvider* gridProvider) diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h index acdd47096..12b552d23 100644 --- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h +++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h @@ -137,8 +137,6 @@ public: void setTurbineBladeVelocities(uint turbine, real* _bladeVelocitiesX, real* _bladeVelocitiesY, real* _bladeVelocitiesZ); void setTurbineBladeForces(uint turbine, real* _bladeForcesX, real* _bladeForcesY, real* _bladeForcesZ); - void setUseCalcForcesEllipticWing(bool _useCalcForcesEllipticWing){ this->useCalcForcesEllipticWing = _useCalcForcesEllipticWing; } - virtual void calcBladeForces(); private: @@ -181,7 +179,6 @@ private: std::vector<real> preInitPosX, preInitPosY, preInitPosZ, preInitDiameters, preInitOmegas, preInitAzimuths, preInitYaws; std::vector<std::vector<real>> preInitBladeRadii; const bool useHostArrays; - bool useCalcForcesEllipticWing = false; const real density; real deltaT, deltaX; const uint numberOfBladeNodes, numberOfBlades; -- GitLab