Skip to content
Snippets Groups Projects
Commit b157da28 authored by Anna Wellmann's avatar Anna Wellmann
Browse files

Rename principal axis to rotational axis

parent 6fff9ece
No related branches found
No related tags found
1 merge request!307[GPU] Add a cylinder geometry
...@@ -109,8 +109,8 @@ int main() ...@@ -109,8 +109,8 @@ int main()
gridBuilder->addCoarseGrid(-1.5 * L, -0.5 * L, -0.5 * L, 1.5 * L, 0.5 * L, 0.5 * L, dx); gridBuilder->addCoarseGrid(-1.5 * L, -0.5 * L, -0.5 * L, 1.5 * L, 0.5 * L, 0.5 * L, dx);
if (rotOrInt == Rot) gridBuilder->addGridRotatingGrid(std::make_shared<Cylinder>(0.0, 0.0, 0.0, 0.3 * L, 1. * L, Cylinder::PrincipalAxis::x)); if (rotOrInt == Rot) gridBuilder->addGridRotatingGrid(std::make_shared<Cylinder>(0.0, 0.0, 0.0, 0.3 * L, 1. * L, Cylinder::RotationalAxis::x));
if (rotOrInt == Int) gridBuilder->addGrid(std::make_shared<Cylinder>(0.0, 0.0, 0.0, 0.3 * L, 1. * L, Cylinder::PrincipalAxis::x), 1); if (rotOrInt == Int) gridBuilder->addGrid(std::make_shared<Cylinder>(0.0, 0.0, 0.0, 0.3 * L, 1. * L, Cylinder::RotationalAxis::x), 1);
GridScalingFactory scalingFactory = GridScalingFactory(); GridScalingFactory scalingFactory = GridScalingFactory();
scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible); scalingFactory.setScalingFactory(GridScalingFactory::GridScaling::ScaleCompressible);
......
#include "Cylinder.h" #include "Cylinder.h"
#include <numeric> #include <numeric>
Cylinder::Cylinder(double centerX, double centerY, double centerZ, double radius, double height, PrincipalAxis axis) Cylinder::Cylinder(double centerX, double centerY, double centerZ, double radius, double height, RotationalAxis axis)
: center({ centerX, centerY, centerZ }), radius(radius), height(height), principalAxis(axis) : center({ centerX, centerY, centerZ }), radius(radius), height(height), rotationalAxis(axis)
{ {
} }
Cylinder::Cylinder(std::array<double, 3> center, double radius, double height, PrincipalAxis axis) Cylinder::Cylinder(std::array<double, 3> center, double radius, double height, RotationalAxis axis)
: center(center), radius(radius), height(height), principalAxis(axis) : center(center), radius(radius), height(height), rotationalAxis(axis)
{ {
} }
SPtr<Object> Cylinder::clone() const SPtr<Object> Cylinder::clone() const
{ {
return std::make_shared<Cylinder>(center, radius, height, principalAxis); return std::make_shared<Cylinder>(center, radius, height, rotationalAxis);
} }
double Cylinder::getCentroidCoordinate(PrincipalAxis coordinateDirection) const double Cylinder::getCentroidCoordinate(RotationalAxis coordinateDirection) const
{ {
return center.at(coordinateDirection); return center.at(coordinateDirection);
} }
double Cylinder::getMinimunCoordinate(PrincipalAxis coordinateDirection) const double Cylinder::getMinimunCoordinate(RotationalAxis coordinateDirection) const
{ {
const auto unitVector = unitVectors.at(principalAxis); const auto unitVector = unitVectors.at(rotationalAxis);
return center.at(coordinateDirection) - 0.5 * height * unitVector.at(coordinateDirection) + return center.at(coordinateDirection) - 0.5 * height * unitVector.at(coordinateDirection) +
radius * (unitVector.at(coordinateDirection) - 1); radius * (unitVector.at(coordinateDirection) - 1);
} }
double Cylinder::getMaximumCoordinate(PrincipalAxis coordinateDirection) const double Cylinder::getMaximumCoordinate(RotationalAxis coordinateDirection) const
{ {
const auto unitVector = unitVectors.at(principalAxis); const auto unitVector = unitVectors.at(rotationalAxis);
return center.at(coordinateDirection) + 0.5 * height * unitVector.at(coordinateDirection) - return center.at(coordinateDirection) + 0.5 * height * unitVector.at(coordinateDirection) -
radius * (unitVector.at(coordinateDirection) - 1); radius * (unitVector.at(coordinateDirection) - 1);
} }
...@@ -90,9 +90,9 @@ double Cylinder::getHeight() const ...@@ -90,9 +90,9 @@ double Cylinder::getHeight() const
return height; return height;
} }
Cylinder::PrincipalAxis Cylinder::getPrincipalAxis() const Cylinder::RotationalAxis Cylinder::getRotationalAxis() const
{ {
return principalAxis; return rotationalAxis;
} }
bool Cylinder::isInCircle(double delta1, double delta2, double offset) const bool Cylinder::isInCircle(double delta1, double delta2, double offset) const
...@@ -110,7 +110,7 @@ bool Cylinder::isPointInObject(const double &x1, const double &x2, const double ...@@ -110,7 +110,7 @@ bool Cylinder::isPointInObject(const double &x1, const double &x2, const double
const double deltaX2 = x2 - center.at(y); const double deltaX2 = x2 - center.at(y);
const double deltaX3 = x3 - center.at(z); const double deltaX3 = x3 - center.at(z);
switch (principalAxis) { switch (rotationalAxis) {
case x: case x:
if (deltaX1 > 0.5 * height || deltaX1 < -0.5 * height) return false; if (deltaX1 > 0.5 * height || deltaX1 < -0.5 * height) return false;
return isInCircle(deltaX2, deltaX3, offset); return isInCircle(deltaX2, deltaX3, offset);
...@@ -122,7 +122,7 @@ bool Cylinder::isPointInObject(const double &x1, const double &x2, const double ...@@ -122,7 +122,7 @@ bool Cylinder::isPointInObject(const double &x1, const double &x2, const double
return isInCircle(deltaX1, deltaX2, offset); return isInCircle(deltaX1, deltaX2, offset);
} }
VF_LOG_CRITICAL("Unknown principal axis in Cylinder."); VF_LOG_CRITICAL("Unknown rotational axis in Cylinder.");
return false; return false;
} }
......
...@@ -42,14 +42,14 @@ ...@@ -42,14 +42,14 @@
class GRIDGENERATOR_EXPORT Cylinder : public Object class GRIDGENERATOR_EXPORT Cylinder : public Object
{ {
public: public:
enum PrincipalAxis { enum RotationalAxis {
x = 0, x = 0,
y = 1, y = 1,
z = 2, z = 2,
}; };
Cylinder(double centerX, double centerY, double centerZ, double radius, double height, PrincipalAxis axis); Cylinder(double centerX, double centerY, double centerZ, double radius, double height, RotationalAxis axis);
Cylinder(std::array<double, 3> center, double radius, double height, PrincipalAxis axis); Cylinder(std::array<double, 3> center, double radius, double height, RotationalAxis axis);
SPtr<Object> clone() const override; SPtr<Object> clone() const override;
...@@ -65,24 +65,24 @@ public: ...@@ -65,24 +65,24 @@ public:
double getRadius() const; double getRadius() const;
double getHeight() const; double getHeight() const;
PrincipalAxis getPrincipalAxis() const; RotationalAxis getRotationalAxis() const;
bool isPointInObject(const double &x1, const double &x2, const double &x3, const double &minOffset, bool isPointInObject(const double &x1, const double &x2, const double &x3, const double &minOffset,
const double &maxOffset) override; const double &maxOffset) override;
void changeSizeByDelta(double delta) override; void changeSizeByDelta(double delta) override;
private: private:
double getCentroidCoordinate(PrincipalAxis coordinateDirection) const; double getCentroidCoordinate(RotationalAxis coordinateDirection) const;
double getMinimunCoordinate(PrincipalAxis coordinateDirection) const; double getMinimunCoordinate(RotationalAxis coordinateDirection) const;
double getMaximumCoordinate(PrincipalAxis coordinateDirection) const; double getMaximumCoordinate(RotationalAxis coordinateDirection) const;
bool isInCircle(double delta1, double delta2, double offset) const; bool isInCircle(double delta1, double delta2, double offset) const;
const std::map<PrincipalAxis, std::array<double, 3>> unitVectors{ { x, { 1, 0, 0 } }, const std::map<RotationalAxis, std::array<double, 3>> unitVectors{ { x, { 1, 0, 0 } },
{ y, { 0, 1, 0 } }, { y, { 0, 1, 0 } },
{ z, { 0, 0, 1 } } }; { z, { 0, 0, 1 } } };
PrincipalAxis principalAxis; RotationalAxis rotationalAxis;
const std::array<double, 3> center; const std::array<double, 3> center;
double radius; double radius;
......
...@@ -36,7 +36,7 @@ public: ...@@ -36,7 +36,7 @@ public:
std::array<double, 3> center = { 0.1, 0.2, 0.3 }; std::array<double, 3> center = { 0.1, 0.2, 0.3 };
double radius = 2.0; double radius = 2.0;
double height = 8.0; double height = 8.0;
Cylinder cylinder = Cylinder(center[0], center[1], center[2], radius, height, Cylinder::PrincipalAxis::x); Cylinder cylinder = Cylinder(center[0], center[1], center[2], radius, height, Cylinder::RotationalAxis::x);
}; };
TEST_F(CylinderTestAxisNormalToX, getCentroid) TEST_F(CylinderTestAxisNormalToX, getCentroid)
...@@ -97,7 +97,7 @@ protected: ...@@ -97,7 +97,7 @@ protected:
std::array<double, 3> center = { 0.1, 0.2, 0.3 }; std::array<double, 3> center = { 0.1, 0.2, 0.3 };
double radius = 2.0; double radius = 2.0;
double height = 8.0; double height = 8.0;
Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::PrincipalAxis::y); Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::RotationalAxis::y);
}; };
TEST_F(CylinderTestAxisNormalToY, getCentroid) TEST_F(CylinderTestAxisNormalToY, getCentroid)
...@@ -158,7 +158,7 @@ protected: ...@@ -158,7 +158,7 @@ protected:
std::array<double, 3> center = { 0.1, 0.2, 0.3 }; std::array<double, 3> center = { 0.1, 0.2, 0.3 };
double radius = 2.0; double radius = 2.0;
double height = 8.0; double height = 8.0;
Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::PrincipalAxis::z); Cylinder cylinder = Cylinder({ center[0], center[1], center[2] }, radius, height, Cylinder::RotationalAxis::z);
}; };
TEST_F(CylinderTestAxisNormalToZ, getCentroid) TEST_F(CylinderTestAxisNormalToZ, getCentroid)
......
...@@ -248,7 +248,7 @@ SPtr<Grid> MultipleGridBuilder::makeRotatingGrid(SPtr<Cylinder> cylinder, uint l ...@@ -248,7 +248,7 @@ SPtr<Grid> MultipleGridBuilder::makeRotatingGrid(SPtr<Cylinder> cylinder, uint l
// #TODO: change next line to use staggering // #TODO: change next line to use staggering
cylinder = std::make_shared<Cylinder>(cylinder->getX1Centroid(), cylinder->getX2Centroid(), cylinder->getX3Centroid(), cylinder = std::make_shared<Cylinder>(cylinder->getX1Centroid(), cylinder->getX2Centroid(), cylinder->getX3Centroid(),
cylinder->getRadius() + 6.0 * delta, cylinder->getHeight() + 6.0 * delta, cylinder->getPrincipalAxis()); cylinder->getRadius() + 6.0 * delta, cylinder->getHeight() + 6.0 * delta, cylinder->getRotationalAxis());
SPtr<Grid> newGrid = this->makeGrid(cylinder, staggeredCoordinates[0], SPtr<Grid> newGrid = this->makeGrid(cylinder, staggeredCoordinates[0],
staggeredCoordinates[1], staggeredCoordinates[1],
......
...@@ -18,7 +18,7 @@ protected: ...@@ -18,7 +18,7 @@ protected:
public: public:
void SetUp() override void SetUp() override
{ {
cylinder = std::make_shared<Cylinder>(0.0, 0.0, 0.0, 2.0, 8.0, Cylinder::PrincipalAxis::x); cylinder = std::make_shared<Cylinder>(0.0, 0.0, 0.0, 2.0, 8.0, Cylinder::RotationalAxis::x);
gridBuilder.addCoarseGrid(-10. + 0.5 * delta, -10. + 0.5 * delta, -10. + 0.5 * delta, 10. - 0.5 * delta, 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); 10. - 0.5 * delta, 10. - 0.5 * delta, delta);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment