diff --git a/pythonbindings/src/gpu/gpu.cpp b/pythonbindings/src/gpu/gpu.cpp index be236654782c5538f9e50f4ead3185c169d7b65c..983465cb3a11b98b439b1875c81bae84af1b3655 100644 --- a/pythonbindings/src/gpu/gpu.cpp +++ b/pythonbindings/src/gpu/gpu.cpp @@ -12,6 +12,7 @@ #include "submodules/grid_generator.cpp" #include "submodules/turbulence_models.cpp" #include "submodules/velocity_setter.cpp" +#include "submodules/actuator_farm.cpp" namespace gpu { diff --git a/pythonbindings/src/gpu/submodules/actuator_farm.cpp b/pythonbindings/src/gpu/submodules/actuator_farm.cpp index 7963b92e4b04cb7e78a4574cac66de3363d000aa..2ab2f5128f00a84feb4520724e9fd0215b52b283 100644 --- a/pythonbindings/src/gpu/submodules/actuator_farm.cpp +++ b/pythonbindings/src/gpu/submodules/actuator_farm.cpp @@ -9,7 +9,7 @@ public: using ActuatorFarm::ActuatorFarm; // Inherit constructors void calcBladeForces() override { - PYBIND11_OVERRIDE_NAME(void, ActuatorFarm, "calc_blade_forces", calcBladeForces,); + PYBIND11_OVERRIDE_NAME(void, ActuatorFarm, "calc_blade_forces", calcBladeForces); } }; namespace actuator_farm @@ -29,9 +29,9 @@ namespace actuator_farm const real, const real, const bool>(), - "n_blades", + "number_of_blades_per_turbine", "density", - "n_blade_nodes", + "number_of_nodes_per_blade", "epsilon", "level", "delta_t", @@ -41,16 +41,23 @@ namespace actuator_farm .def_property_readonly("number_of_nodes_per_blade", &ActuatorFarm::getNumberOfNodesPerBlade) .def_property_readonly("number_of_blades_per_turbine", &ActuatorFarm::getNumberOfBladesPerTurbine) .def_property_readonly("number_of_nodes", &ActuatorFarm::getNumberOfNodes) - .def_property_readonly("number_of_indices", &ActuatorFarm::getNumerOfIndices) + .def_property_readonly("number_of_indices", &ActuatorFarm::getNumberOfIndices) .def_property_readonly("density", &ActuatorFarm::getDensity) + .def_property_readonly("delta_t", &ActuatorFarm::getDeltaT) + .def_property_readonly("delta_x", &ActuatorFarm::getDeltaX) .def("add_turbine", &ActuatorFarm::addTurbine) - .def("get_turbine_pos" [](ActuatorFarm& al, uint turbine){ return arr(3, {al.getTurbinePosX(turbine), al.getTurbinePosY(turbine), al.getTurbinePosZ(turbine)}); }) - - .def("get_all_turbine_pos_x", [](ActuatorFarm& al){ return arr(al.getTurbines(), al.getAllTurbinePosX()); }) - .def("get_all_turbine_pos_y", [](ActuatorFarm& al){ return arr(al.getTurbines(), al.getAllTurbinePosY()); }) - .def("get_all_turbine_pos_z", [](ActuatorFarm& al){ return arr(al.getTurbines(), al.getAllTurbinePosZ()); }) + .def("get_turbine_pos", [](ActuatorFarm& al, uint turbine){ real position[3] = {al.getTurbinePosX(turbine), al.getTurbinePosY(turbine), al.getTurbinePosZ(turbine)}; return arr(3, position); } ) + .def("get_turbine_azimuth", &ActuatorFarm::getTurbineAzimuth) + .def("get_turbine_yaw", &ActuatorFarm::getTurbineYaw) + .def("get_turbine_omega", &ActuatorFarm::getTurbineOmega) + .def("get_all_azimuths", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllAzimuths()); } ) + .def("get_all_yaws", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllYaws()); } ) + .def("get_all_omegas", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllOmegas()); } ) + .def("get_all_turbine_pos_x", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllTurbinePosX()); } ) + .def("get_all_turbine_pos_y", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllTurbinePosY()); } ) + .def("get_all_turbine_pos_z", [](ActuatorFarm& al){ return arr(al.getNumberOfTurbines(), al.getAllTurbinePosZ()); } ) .def("get_all_blade_radii", [](ActuatorFarm& al){ return arr({al.getNumberOfTurbines(), al.getNumberOfNodesPerBlade()}, al.getAllBladeRadii()); } ) .def("get_all_blade_coords_x", [](ActuatorFarm& al){ return arr({al.getNumberOfTurbines(), al.getNumberOfBladesPerTurbine(), al.getNumberOfNodesPerBlade()}, al.getAllBladeCoordsX()); } ) @@ -96,10 +103,14 @@ namespace actuator_farm .def("get_turbine_blade_forces_y_device", [](ActuatorFarm& al, uint turbine) -> intptr_t { return reinterpret_cast<intptr_t>(al.getTurbineBladeForcesYDevice(turbine)); } ) .def("get_turbine_blade_forces_z_device", [](ActuatorFarm& al, uint turbine) -> intptr_t { return reinterpret_cast<intptr_t>(al.getTurbineBladeForcesZDevice(turbine)); } ) + .def("set_turbine_azimuth", &ActuatorFarm::setTurbineAzimuth) + .def("set_turbine_yaw", &ActuatorFarm::setTurbineYaw) + .def("set_turbine_omega", &ActuatorFarm::setTurbineOmega) + .def("set_all_blade_coords", [](ActuatorFarm& al, arr coordsX, arr coordsY, arr coordsZ) { al.setAllBladeCoords(static_cast<float *>(coordsX.request().ptr), static_cast<float *>(coordsY.request().ptr), static_cast<float *>(coordsZ.request().ptr)); - }) + } ) .def("set_all_blade_velocities", [](ActuatorFarm& al, arr velocitiesX, arr velocitiesY, arr velocitiesZ) { al.setAllBladeVelocities(static_cast<float *>(velocitiesX.request().ptr), static_cast<float *>(velocitiesY.request().ptr), static_cast<float *>(velocitiesZ.request().ptr)); diff --git a/pythonbindings/src/gpu/submodules/boundary_conditions.cpp b/pythonbindings/src/gpu/submodules/boundary_conditions.cpp index 9ab758ffd6e9fc68e03eef40676508c093567df2..13e4fb56bd57569e7227298d05848068824d84cd 100644 --- a/pythonbindings/src/gpu/submodules/boundary_conditions.cpp +++ b/pythonbindings/src/gpu/submodules/boundary_conditions.cpp @@ -1,6 +1,6 @@ #include <pybind11/pybind11.h> #include <gpu/GridGenerator/grid/BoundaryConditions/Side.h> -#include "gpu/VirtualFluids_GPU/BoundaryConditions/BoundaryConditionFactory.h" +#include "gpu/VirtualFluids_GPU/Factories/BoundaryConditionFactory.h" namespace boundary_conditions { diff --git a/pythonbindings/src/gpu/submodules/simulation.cpp b/pythonbindings/src/gpu/submodules/simulation.cpp index 88716ebb38f765a94ae4c6c42e27eae4c93e1adb..501f7e59113a261593088af4091e95ba1865a247 100644 --- a/pythonbindings/src/gpu/submodules/simulation.cpp +++ b/pythonbindings/src/gpu/submodules/simulation.cpp @@ -8,7 +8,7 @@ #include <gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.h> #include <gpu/VirtualFluids_GPU/DataStructureInitializer/GridProvider.h> #include <gpu/VirtualFluids_GPU/Output/DataWriter.h> -#include "gpu/VirtualFluids_GPU/BoundaryConditions/BoundaryConditionFactory.h" +#include "gpu/VirtualFluids_GPU/Factories/BoundaryConditionFactory.h" #include "gpu/VirtualFluids_GPU/TurbulenceModels/TurbulenceModelFactory.h" namespace simulation diff --git a/setup.py b/setup.py index b5cd97056bd4696df8cfd1df1794f3689c23376f..5367d423e0382f3ac05da80e94c269ea55832fd9 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ install via python: set CMAKE Flags via -DBUILD_VF_GPU:BOOL=1 or install via pip: pip install -e . - set CMAKE Flags via --configure-settings -DBUILD_VF_GPU=1 + set CMAKE Flags via --config-settings -DBUILD_VF_GPU=1 """ init_py = inspect.cleandoc( diff --git a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu index ba0cf7bfa4cf0f05229e189a0ab9be5c06b5d824..6b64b05f16df0c0bc3bed6997cfdab4314d78d8d 100644 --- a/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu +++ b/src/gpu/VirtualFluids_GPU/Kernel/Kernels/TurbulentViscosityKernels/FluidFlow/Compressible/CumulantK17chim/TurbulentViscosityCumulantK17CompChim_Device.cu @@ -45,10 +45,10 @@ #include "Kernel/Utilities/DistributionHelper.cuh" #include "VirtualFluids_GPU/GPU/KernelUtilities.h" #include "GPU/TurbulentViscosityInlines.cuh" +#include "Kernel/Utilities/ChimeraTransformation.h" using namespace vf::lbm::constant; using namespace vf::lbm::dir; -#include "Kernel/Utilities/ChimeraTransformation.h" //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h index 346df7622c649acead19f966c73457123ebe8c7d..c9a842c994711830c5c4926d7371cdd0a2931961 100644 --- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h +++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/ActuatorFarm.h @@ -45,11 +45,16 @@ public: void write(uint t); real getDensity(){ return this->density; }; + real getDeltaT(){ return this->deltaT; }; + real getDeltaX(){ return this->deltaX; }; uint getNumberOfTurbines(){ return this->numberOfTurbines; }; uint getNumberOfNodesPerBlade(){ return this->numberOfBladeNodes; }; uint getNumberOfBladesPerTurbine(){ return this->numberOfBlades; }; + uint getNumberOfIndices(){ return this->numberOfIndices; }; + uint getNumberOfNodes(){ return this->numberOfNodes; }; + real* getAllAzimuths(){ return azimuthsH; }; real* getAllOmegas(){ return omegasH; }; real* getAllYaws(){ return yawsH; }; @@ -66,9 +71,6 @@ public: real getTurbinePosY(uint turbine){ return turbinePosYH[turbine]; }; real getTurbinePosZ(uint turbine){ return turbinePosZH[turbine]; }; - uint getNumberOfIndices(){ return this->numberOfIndices; }; - uint getNumberOfNodes(){ return this->numberOfNodes; }; - real* getAllBladeRadii(){ return this->bladeRadiiH; }; real* getAllBladeCoordsX(){ return this->bladeCoordsXH; }; real* getAllBladeCoordsY(){ return this->bladeCoordsYH; }; @@ -113,6 +115,10 @@ public: real* getTurbineBladeForcesYDevice(uint turbine){ return &this->bladeForcesYD[turbine*numberOfBladeNodes*numberOfBlades]; }; real* getTurbineBladeForcesZDevice(uint turbine){ return &this->bladeForcesZD[turbine*numberOfBladeNodes*numberOfBlades]; }; + void setTurbineAzimuth(uint turbine, real azimuth){ azimuthsH[turbine] = azimuth; }; + void setTurbineYaw(uint turbine, real yaw){ yawsH[turbine] = yaw; }; + void setTurbineOmega(uint turbine, real omega){ omegasH[turbine] = omega; }; + void setAllBladeCoords(real* _bladeCoordsX, real* _bladeCoordsY, real* _bladeCoordsZ); void setAllBladeVelocities(real* _bladeVelocitiesX, real* _bladeVelocitiesY, real* _bladeVelocitiesZ); void setAllBladeForces(real* _bladeForcesX, real* _bladeForcesY, real* _bladeForcesZ); @@ -121,6 +127,7 @@ public: void setTurbineBladeVelocities(uint turbine, real* _bladeVelocitiesX, real* _bladeVelocitiesY, real* _bladeVelocitiesZ); void setTurbineBladeForces(uint turbine, real* _bladeForcesX, real* _bladeForcesY, real* _bladeForcesZ); + virtual void calcBladeForces(); private: void initTurbineGeometries(CudaMemoryManager* cudaManager); @@ -131,7 +138,6 @@ private: void initBladeIndices(Parameter* para, CudaMemoryManager* cudaManager); void calcForcesEllipticWing(); - void calcBladeForces(); void rotateBlades(real angle, uint turbineID); void writeBladeCoords(uint t);