diff --git a/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp b/apps/gpu/LBM/ActuatorLine/ActuatorLine.cpp index 045e69c1792e50f1876ed0e7320078073ffba11c..117287abf2378e1416aa7fe1c8275c265233e294 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 233994f0d32a48190d84f7044500e24b06b926a9..d4be0a6dba11d311d075c5496204cbb0f5d27c21 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 6d3520d8d13ba3bd12d50219cdbf51ab1a00f01d..31b380a91de5e522a7391a5904b826166c259ed4 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 d14e6ad4f98a889e68d09375c2b9ed3a582b9ef3..75c6ee9cfd61e694eb8f229b04e8e2e2e1b4d4b7 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 acdd47096db8c2494c22b345a2eacdea2b38131c..12b552d239af5ff9399bec8afd8171477afd3099 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;