From c8ae3832e7d3faad433432118fbf9340e9881321 Mon Sep 17 00:00:00 2001 From: Anna Wellmann <a.wellmann@tu-braunschweig.de> Date: Thu, 17 Aug 2023 16:09:45 +0000 Subject: [PATCH] Make getters in Object const and add some functions for getting rotating grid to GridGenerator --- src/basics/geometry3d/Axis.h | 17 +++++++ .../geometries/Conglomerate/Conglomerate.cpp | 18 +++---- .../geometries/Conglomerate/Conglomerate.h | 18 +++---- .../geometries/Cuboid/Cuboid.cpp | 18 +++---- .../GridGenerator/geometries/Cuboid/Cuboid.h | 18 +++---- .../geometries/Cylinder/Cylinder.cpp | 32 ++++++------- .../geometries/Cylinder/Cylinder.h | 48 ++++++++----------- .../geometries/Cylinder/CylinderTest.cpp | 6 +-- src/gpu/GridGenerator/geometries/Object.h | 18 +++---- .../geometries/Sphere/Sphere.cpp | 18 +++---- .../GridGenerator/geometries/Sphere/Sphere.h | 18 +++---- .../TriangularMesh/TriangularMesh.h | 18 +++---- .../VerticalCylinder/VerticalCylinder.cpp | 18 +++---- .../VerticalCylinder/VerticalCylinder.h | 18 +++---- .../grid/GridBuilder/GridBuilder.h | 2 + .../grid/GridBuilder/LevelGridBuilder.cpp | 5 ++ .../grid/GridBuilder/LevelGridBuilder.h | 4 ++ .../grid/GridBuilder/MultipleGridBuilder.h | 2 - .../GridBuilder/MultipleGridBuilderTest.cpp | 2 +- 19 files changed, 159 insertions(+), 139 deletions(-) create mode 100644 src/basics/geometry3d/Axis.h diff --git a/src/basics/geometry3d/Axis.h b/src/basics/geometry3d/Axis.h new file mode 100644 index 000000000..5662483f6 --- /dev/null +++ b/src/basics/geometry3d/Axis.h @@ -0,0 +1,17 @@ +#ifndef AXIS +#define AXIS + +#include <array> +#include <map> + +enum Axis { + x = 0, + y = 1, + z = 2, +}; + +const std::map<Axis, std::array<double, 3>> unitVectors{ { x, { 1, 0, 0 } }, + { y, { 0, 1, 0 } }, + { z, { 0, 0, 1 } } }; + +#endif \ No newline at end of file diff --git a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp index fbbf7460e..821a385df 100644 --- a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp +++ b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.cpp @@ -72,12 +72,12 @@ SPtr<Object> Conglomerate::clone() const return conglomerate; } -double Conglomerate::getX1Centroid() +double Conglomerate::getX1Centroid() const { return (getX1Minimum() + getX1Maximum()) * 0.5; } -double Conglomerate::getX1Minimum() +double Conglomerate::getX1Minimum() const { double minimum = addObjects[0]->getX1Minimum(); for(uint i = 1; i < numberOfAddObjects; i++) @@ -85,7 +85,7 @@ double Conglomerate::getX1Minimum() return minimum; } -double Conglomerate::getX1Maximum() +double Conglomerate::getX1Maximum() const { double maximum = addObjects[0]->getX1Maximum(); for (uint i = 1; i < numberOfAddObjects; i++) @@ -93,12 +93,12 @@ double Conglomerate::getX1Maximum() return maximum; } -double Conglomerate::getX2Centroid() +double Conglomerate::getX2Centroid() const { return (getX2Minimum() + getX2Maximum()) * 0.5; } -double Conglomerate::getX2Minimum() +double Conglomerate::getX2Minimum() const { double minimum = addObjects[0]->getX2Minimum(); for (uint i = 1; i < numberOfAddObjects; i++) @@ -106,7 +106,7 @@ double Conglomerate::getX2Minimum() return minimum; } -double Conglomerate::getX2Maximum() +double Conglomerate::getX2Maximum() const { double maximum = addObjects[0]->getX2Maximum(); for (uint i = 1; i < numberOfAddObjects; i++) @@ -114,12 +114,12 @@ double Conglomerate::getX2Maximum() return maximum; } -double Conglomerate::getX3Centroid() +double Conglomerate::getX3Centroid() const { return (getX3Minimum() + getX3Maximum()) * 0.5; } -double Conglomerate::getX3Minimum() +double Conglomerate::getX3Minimum() const { double minimum = addObjects[0]->getX3Minimum(); for (uint i = 1; i < numberOfAddObjects; i++) @@ -127,7 +127,7 @@ double Conglomerate::getX3Minimum() return minimum; } -double Conglomerate::getX3Maximum() +double Conglomerate::getX3Maximum() const { double maximum = addObjects[0]->getX3Maximum(); for (uint i = 1; i < numberOfAddObjects; i++) diff --git a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h index ed6caace2..a8eb1a7ca 100644 --- a/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h +++ b/src/gpu/GridGenerator/geometries/Conglomerate/Conglomerate.h @@ -53,15 +53,15 @@ public: SPtr<Object> clone() const override; - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid() override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid() override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() const override; + double getX1Minimum() const override; + double getX1Maximum() const override; + double getX2Centroid() const override; + double getX2Minimum() const override; + double getX2Maximum() const override; + double getX3Centroid() const override; + double getX3Minimum() const override; + double getX3Maximum() const override; void changeSizeByDelta(double delta) override; diff --git a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp index e6c05313b..f5fa08ec8 100644 --- a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp +++ b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.cpp @@ -46,47 +46,47 @@ SPtr<Object> Cuboid::clone() const return std::make_shared<Cuboid>(minX1, minX2, minX3, maxX1, maxX2, maxX3); } -double Cuboid::getX1Centroid() +double Cuboid::getX1Centroid() const { return getCenter(minX1, maxX1); } -double Cuboid::getX1Minimum() +double Cuboid::getX1Minimum() const { return getMinimum(minX1, maxX1); } -double Cuboid::getX1Maximum() +double Cuboid::getX1Maximum() const { return getMaximum(minX1, maxX1); } -double Cuboid::getX2Centroid() +double Cuboid::getX2Centroid() const { return getCenter(minX2, maxX2); } -double Cuboid::getX2Minimum() +double Cuboid::getX2Minimum() const { return getMinimum(minX2, maxX2); } -double Cuboid::getX2Maximum() +double Cuboid::getX2Maximum() const { return getMaximum(minX2, maxX2); } -double Cuboid::getX3Centroid() +double Cuboid::getX3Centroid() const { return getCenter(minX3, maxX3); } -double Cuboid::getX3Minimum() +double Cuboid::getX3Minimum() const { return getMinimum(minX3, maxX3); } -double Cuboid::getX3Maximum() +double Cuboid::getX3Maximum() const { return getMaximum(minX3, maxX3); } diff --git a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h index 152a8dc6b..35d5d04c7 100644 --- a/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h +++ b/src/gpu/GridGenerator/geometries/Cuboid/Cuboid.h @@ -44,15 +44,15 @@ public: SPtr<Object> clone() const override; - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid() override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid() override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() const override; + double getX1Minimum() const override; + double getX1Maximum() const override; + double getX2Centroid() const override; + double getX2Minimum() const override; + double getX2Maximum() const override; + double getX3Centroid() const override; + double getX3Minimum() const override; + double getX3Maximum() const override; void changeSizeByDelta(double delta) override; diff --git a/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.cpp b/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.cpp index 40d21f4f9..a82e8e01f 100644 --- a/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.cpp +++ b/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.cpp @@ -1,12 +1,12 @@ #include "Cylinder.h" #include <numeric> -Cylinder::Cylinder(double centerX, double centerY, double centerZ, double radius, double height, RotationalAxis axis) - : center({ centerX, centerY, centerZ }), radius(radius), height(height), rotationalAxis(axis) +Cylinder::Cylinder(double centerX, double centerY, double centerZ, double radius, double height, Axis rotationalAxis) + : center({ centerX, centerY, centerZ }), radius(radius), height(height), rotationalAxis(rotationalAxis) { } -Cylinder::Cylinder(std::array<double, 3> center, double radius, double height, RotationalAxis axis) +Cylinder::Cylinder(std::array<double, 3> center, double radius, double height, Axis axis) : center(center), radius(radius), height(height), rotationalAxis(axis) { } @@ -16,66 +16,66 @@ SPtr<Object> Cylinder::clone() const return std::make_shared<Cylinder>(center, radius, height, rotationalAxis); } -double Cylinder::getCentroidCoordinate(RotationalAxis coordinateDirection) const +double Cylinder::getCentroidCoordinate(Axis coordinateDirection) const { return center.at(coordinateDirection); } -double Cylinder::getMinimunCoordinate(RotationalAxis coordinateDirection) const +double Cylinder::getMinimunCoordinate(Axis coordinateDirection) const { const auto unitVector = unitVectors.at(rotationalAxis); return center.at(coordinateDirection) - 0.5 * height * unitVector.at(coordinateDirection) + radius * (unitVector.at(coordinateDirection) - 1); } -double Cylinder::getMaximumCoordinate(RotationalAxis coordinateDirection) const +double Cylinder::getMaximumCoordinate(Axis coordinateDirection) const { const auto unitVector = unitVectors.at(rotationalAxis); return center.at(coordinateDirection) + 0.5 * height * unitVector.at(coordinateDirection) - radius * (unitVector.at(coordinateDirection) - 1); } -double Cylinder::getX1Centroid() +double Cylinder::getX1Centroid() const { return getCentroidCoordinate(x); } -double Cylinder::getX1Minimum() +double Cylinder::getX1Minimum() const { return getMinimunCoordinate(x); } -double Cylinder::getX1Maximum() +double Cylinder::getX1Maximum() const { return getMaximumCoordinate(x); } -double Cylinder::getX2Centroid() +double Cylinder::getX2Centroid() const { return getCentroidCoordinate(y); } -double Cylinder::getX2Minimum() +double Cylinder::getX2Minimum() const { return getMinimunCoordinate(y); } -double Cylinder::getX2Maximum() +double Cylinder::getX2Maximum() const { return getMaximumCoordinate(y); } -double Cylinder::getX3Centroid() +double Cylinder::getX3Centroid() const { return getCentroidCoordinate(z); } -double Cylinder::getX3Minimum() +double Cylinder::getX3Minimum() const { return getMinimunCoordinate(z); } -double Cylinder::getX3Maximum() +double Cylinder::getX3Maximum() const { return getMaximumCoordinate(z); } @@ -90,7 +90,7 @@ double Cylinder::getHeight() const return height; } -Cylinder::RotationalAxis Cylinder::getRotationalAxis() const +Axis Cylinder::getRotationalAxis() const { return rotationalAxis; } diff --git a/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.h b/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.h index 1a3439aae..7a42ec86f 100644 --- a/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.h +++ b/src/gpu/GridGenerator/geometries/Cylinder/Cylinder.h @@ -35,54 +35,48 @@ #ifndef CYLINDER_H #define CYLINDER_H -#include "geometries/Object.h" -#include <basics/geometry3d/GbCylinder3D.h> #include <map> +#include <basics/geometry3d/GbCylinder3D.h> +#include <basics/geometry3d/Axis.h> + +#include "geometries/Object.h" + class GRIDGENERATOR_EXPORT Cylinder : public Object { public: - enum RotationalAxis { - x = 0, - y = 1, - z = 2, - }; - Cylinder(double centerX, double centerY, double centerZ, double radius, double height, RotationalAxis axis); - Cylinder(std::array<double, 3> center, double radius, double height, RotationalAxis axis); + Cylinder(double centerX, double centerY, double centerZ, double radius, double height, Axis rotationalAxis); + Cylinder(std::array<double, 3> center, double radius, double height, Axis axis); SPtr<Object> clone() const override; - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid() override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid() override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() const override; + double getX1Minimum() const override; + double getX1Maximum() const override; + double getX2Centroid() const override; + double getX2Minimum() const override; + double getX2Maximum() const override; + double getX3Centroid() const override; + double getX3Minimum() const override; + double getX3Maximum() const override; double getRadius() const; double getHeight() const; - RotationalAxis getRotationalAxis() const; + Axis getRotationalAxis() const; bool isPointInObject(const double &x1, const double &x2, const double &x3, const double &minOffset, const double &maxOffset) override; void changeSizeByDelta(double delta) override; private: - double getCentroidCoordinate(RotationalAxis coordinateDirection) const; - double getMinimunCoordinate(RotationalAxis coordinateDirection) const; - double getMaximumCoordinate(RotationalAxis coordinateDirection) const; + double getCentroidCoordinate(Axis coordinateDirection) const; + double getMinimunCoordinate(Axis coordinateDirection) const; + double getMaximumCoordinate(Axis coordinateDirection) const; bool isInCircle(double delta1, double delta2, double offset) const; - const std::map<RotationalAxis, std::array<double, 3>> unitVectors{ { x, { 1, 0, 0 } }, - { y, { 0, 1, 0 } }, - { z, { 0, 0, 1 } } }; - - RotationalAxis rotationalAxis; + Axis rotationalAxis; const std::array<double, 3> center; double radius; diff --git a/src/gpu/GridGenerator/geometries/Cylinder/CylinderTest.cpp b/src/gpu/GridGenerator/geometries/Cylinder/CylinderTest.cpp index cc636a94a..1f23df544 100644 --- a/src/gpu/GridGenerator/geometries/Cylinder/CylinderTest.cpp +++ b/src/gpu/GridGenerator/geometries/Cylinder/CylinderTest.cpp @@ -36,7 +36,7 @@ public: std::array<double, 3> center = { 0.1, 0.2, 0.3 }; double radius = 2.0; double height = 8.0; - Cylinder cylinder = Cylinder(center[0], center[1], center[2], radius, height, Cylinder::RotationalAxis::x); + Cylinder cylinder = Cylinder(center[0], center[1], center[2], radius, height, Axis::x); }; TEST_F(CylinderTestAxisNormalToX, getCentroid) @@ -97,7 +97,7 @@ protected: std::array<double, 3> center = { 0.1, 0.2, 0.3 }; double radius = 2.0; double height = 8.0; - Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::RotationalAxis::y); + Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Axis::y); }; TEST_F(CylinderTestAxisNormalToY, getCentroid) @@ -158,7 +158,7 @@ protected: std::array<double, 3> center = { 0.1, 0.2, 0.3 }; double radius = 2.0; double height = 8.0; - Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::RotationalAxis::z); + Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Axis::z); }; TEST_F(CylinderTestAxisNormalToZ, getCentroid) diff --git a/src/gpu/GridGenerator/geometries/Object.h b/src/gpu/GridGenerator/geometries/Object.h index 4448a45ae..116bb8fc2 100644 --- a/src/gpu/GridGenerator/geometries/Object.h +++ b/src/gpu/GridGenerator/geometries/Object.h @@ -46,17 +46,17 @@ public: virtual ~Object() = default; virtual SPtr<Object> clone() const = 0; - virtual double getX1Centroid() = 0; - virtual double getX1Minimum() = 0; - virtual double getX1Maximum() = 0; + virtual double getX1Centroid() const = 0; + virtual double getX1Minimum() const = 0; + virtual double getX1Maximum() const = 0; - virtual double getX2Centroid() = 0; - virtual double getX2Minimum() = 0; - virtual double getX2Maximum() = 0; + virtual double getX2Centroid() const = 0; + virtual double getX2Minimum() const = 0; + virtual double getX2Maximum() const = 0; - virtual double getX3Centroid() = 0; - virtual double getX3Minimum() = 0; - virtual double getX3Maximum() = 0; + virtual double getX3Centroid() const = 0; + virtual double getX3Minimum() const = 0; + virtual double getX3Maximum() const = 0; virtual void changeSizeByDelta(double delta) = 0; diff --git a/src/gpu/GridGenerator/geometries/Sphere/Sphere.cpp b/src/gpu/GridGenerator/geometries/Sphere/Sphere.cpp index 212ecc900..2a54c710c 100644 --- a/src/gpu/GridGenerator/geometries/Sphere/Sphere.cpp +++ b/src/gpu/GridGenerator/geometries/Sphere/Sphere.cpp @@ -54,47 +54,47 @@ SPtr<Object> Sphere::clone() const return std::make_shared<Sphere>(centerX, centerY, centerZ, radius); } -double Sphere::getX1Centroid() +double Sphere::getX1Centroid() const { return centerX; } -double Sphere::getX1Minimum() +double Sphere::getX1Minimum() const { return centerX - radius; } -double Sphere::getX1Maximum() +double Sphere::getX1Maximum() const { return centerX + radius; } -double Sphere::getX2Centroid() +double Sphere::getX2Centroid() const { return centerY; } -double Sphere::getX2Minimum() +double Sphere::getX2Minimum() const { return centerY - radius; } -double Sphere::getX2Maximum() +double Sphere::getX2Maximum() const { return centerY + radius; } -double Sphere::getX3Centroid() +double Sphere::getX3Centroid() const { return centerZ; } -double Sphere::getX3Minimum() +double Sphere::getX3Minimum() const { return centerZ - radius; } -double Sphere::getX3Maximum() +double Sphere::getX3Maximum() const { return centerZ + radius; } diff --git a/src/gpu/GridGenerator/geometries/Sphere/Sphere.h b/src/gpu/GridGenerator/geometries/Sphere/Sphere.h index 99d055ec1..92f600d20 100644 --- a/src/gpu/GridGenerator/geometries/Sphere/Sphere.h +++ b/src/gpu/GridGenerator/geometries/Sphere/Sphere.h @@ -46,15 +46,15 @@ public: SPtr<Object> clone() const override; - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid() override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid() override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() const override; + double getX1Minimum() const override; + double getX1Maximum() const override; + double getX2Centroid() const override; + double getX2Minimum() const override; + double getX2Maximum() const override; + double getX3Centroid() const override; + double getX3Minimum() const override; + double getX3Maximum() const override; bool isPointInObject(const double& x1, const double& x2, const double& x3, const double& minOffset, const double& maxOffset) override; diff --git a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h index 5083e2adf..14ff45395 100644 --- a/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h +++ b/src/gpu/GridGenerator/geometries/TriangularMesh/TriangularMesh.h @@ -88,15 +88,15 @@ private: public: SPtr<Object> clone() const override; - double getX1Centroid() override { throw "Not implemented in TriangularMesh"; } - double getX1Minimum() override { return minmax.minX; } - double getX1Maximum() override { return minmax.maxX; } - double getX2Centroid() override { throw "Not implemented in TriangularMesh"; } - double getX2Minimum() override { return minmax.minY; } - double getX2Maximum() override { return minmax.maxY; } - double getX3Centroid() override { throw "Not implemented in TriangularMesh"; } - double getX3Minimum() override { return minmax.minZ; } - double getX3Maximum() override { return minmax.maxZ; } + double getX1Centroid() const override { throw "Not implemented in TriangularMesh"; } + double getX1Minimum() const override { return minmax.minX; } + double getX1Maximum() const override { return minmax.maxX; } + double getX2Centroid() const override { throw "Not implemented in TriangularMesh"; } + double getX2Minimum() const override { return minmax.minY; } + double getX2Maximum() const override { return minmax.maxY; } + double getX3Centroid() const override { throw "Not implemented in TriangularMesh"; } + double getX3Minimum() const override { return minmax.minZ; } + double getX3Maximum() const override { return minmax.maxZ; } void changeSizeByDelta(double delta) override; bool isPointInObject(const double& x1, const double& x2, const double& x3, const double& minOffset, const double& maxOffset) override { diff --git a/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cpp b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cpp index 439585ff2..909651be6 100644 --- a/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cpp +++ b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.cpp @@ -48,47 +48,47 @@ SPtr<Object> VerticalCylinder::clone() const return std::make_shared<VerticalCylinder>(centerX, centerY, centerZ, radius, height); } -double VerticalCylinder::getX1Centroid() +double VerticalCylinder::getX1Centroid() const { return centerX; } -double VerticalCylinder::getX1Minimum() +double VerticalCylinder::getX1Minimum() const { return centerX - radius; } -double VerticalCylinder::getX1Maximum() +double VerticalCylinder::getX1Maximum() const { return centerX + radius; } -double VerticalCylinder::getX2Centroid() +double VerticalCylinder::getX2Centroid() const { return centerY; } -double VerticalCylinder::getX2Minimum() +double VerticalCylinder::getX2Minimum() const { return centerY - radius; } -double VerticalCylinder::getX2Maximum() +double VerticalCylinder::getX2Maximum() const { return centerY + radius; } -double VerticalCylinder::getX3Centroid() +double VerticalCylinder::getX3Centroid() const { return centerZ; } -double VerticalCylinder::getX3Minimum() +double VerticalCylinder::getX3Minimum() const { return centerZ - 0.5 * height; } -double VerticalCylinder::getX3Maximum() +double VerticalCylinder::getX3Maximum() const { return centerZ + 0.5 * height; } diff --git a/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h index 3ffcba063..f312df8f6 100644 --- a/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h +++ b/src/gpu/GridGenerator/geometries/VerticalCylinder/VerticalCylinder.h @@ -46,15 +46,15 @@ public: SPtr<Object> clone() const override; - double getX1Centroid() override; - double getX1Minimum() override; - double getX1Maximum() override; - double getX2Centroid() override; - double getX2Minimum() override; - double getX2Maximum() override; - double getX3Centroid() override; - double getX3Minimum() override; - double getX3Maximum() override; + double getX1Centroid() const override; + double getX1Minimum() const override; + double getX1Maximum() const override; + double getX2Centroid() const override; + double getX2Minimum() const override; + double getX2Maximum() const override; + double getX3Centroid() const override; + double getX3Minimum() const override; + double getX3Maximum() const override; double getRadius() const; double getHeight() const; diff --git a/src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h index f3d850384..22bedec2b 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h +++ b/src/gpu/GridGenerator/grid/GridBuilder/GridBuilder.h @@ -160,6 +160,8 @@ public: virtual uint getNumberOfFluidNodesAllFeatures(uint level) const = 0; virtual void getFluidNodeIndicesAllFeatures(uint *fluidNodeIndicesAllFeatures, int level) const = 0; + virtual bool getUseRotatingGrid() const = 0; + }; diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp index 87ec7bab0..2ebba61fc 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp +++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp @@ -856,3 +856,8 @@ void LevelGridBuilder::getFluidNodeIndicesAllFeatures(uint *fluidNodeIndicesAllF { grids[level]->getFluidNodeIndicesAllFeatures(fluidNodeIndicesAllFeatures); } + +bool LevelGridBuilder::getUseRotatingGrid() const +{ + return useGridRotation; +} \ No newline at end of file diff --git a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h index fddcc7f79..6ac2fb61f 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h +++ b/src/gpu/GridGenerator/grid/GridBuilder/LevelGridBuilder.h @@ -144,6 +144,8 @@ public: GRIDGENERATOR_EXPORT virtual bool hasGeometryValues() const override; GRIDGENERATOR_EXPORT virtual void getGeometryValues(real *vx, real *vy, real *vz, int level) const override; + GRIDGENERATOR_EXPORT bool getUseRotatingGrid() const override; + GRIDGENERATOR_EXPORT void writeArrows(std::string fileName) const override; GRIDGENERATOR_EXPORT SPtr<gg::BoundaryCondition> getBoundaryCondition( SideType side, uint level ) const override; @@ -179,6 +181,8 @@ protected: void checkLevel(int level); + bool useGridRotation = false; + protected: void setVelocityGeometryBoundaryCondition(real vx, real vy, real vz); void setNoSlipGeometryBoundaryCondition(); diff --git a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h index 548ccbe6a..57576993e 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h +++ b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h @@ -116,8 +116,6 @@ private: SPtr<BoundingBox> subDomainBox; - bool useGridRotation = false; - public: GRIDGENERATOR_EXPORT void findCommunicationIndices(int direction); }; diff --git a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp index 61e6285be..16253b907 100644 --- a/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp +++ b/src/gpu/GridGenerator/grid/GridBuilder/MultipleGridBuilderTest.cpp @@ -18,7 +18,7 @@ protected: public: void SetUp() override { - cylinder = std::make_shared<Cylinder>(0.0, 0.0, 0.0, 2.0, 8.0, Cylinder::RotationalAxis::x); + cylinder = std::make_shared<Cylinder>(0.0, 0.0, 0.0, 2.0, 8.0, Axis::x); gridBuilder.addCoarseGrid(-10. + 0.5 * delta, -10. + 0.5 * delta, -10. + 0.5 * delta, 10. - 0.5 * delta, 10. - 0.5 * delta, 10. - 0.5 * delta, delta); } -- GitLab