20 {{0, 1, 4, 3},
false},
21 {{1, 2, 5, 4},
false},
22 {{2, 0, 3, 5},
false},
29 "actually, not a tetrahedron, but a trigonal frustum",
30 {{
"BaseEdge",
"nm",
"edge of base triangle", 0, +
INF, 0},
31 {
"Height",
"nm",
"height of frustum", 0, +
INF, 0},
32 {
"Alpha",
"rad",
"angle between base and a side face", 0.,
M_PI_2, 0}}},
59 if (!std::isfinite(cot_alpha) || cot_alpha < 0)
60 throw std::runtime_error(
"pyramid angle alpha out of bounds");
63 std::ostringstream ostr;
64 ostr <<
"Incompatible parameters in Tetrahedron: ";
67 ostr <<
", alpha[rad]:" <<
m_alpha <<
")";
68 throw std::runtime_error(ostr.str());
73 double ac = a / sqrt(3) / 2;
74 double ah = a / sqrt(3);
75 double b = a * (1 - r);
77 double bc = b / sqrt(3) / 2;
78 double bh = b / sqrt(3);
80 double zcom =
m_height * (.5 - 2 * r / 3 + r * r / 4) / (1 - r + r * r / 3);
Defines M_PI and some more mathematical constants.
Defines functions in namespace Math.
static SlicingEffects computeSlicingEffects(ZLimits limits, const kvector_t &position, double height)
Helper method for slicing.
Abstract base class for rotations.
For internal use in IFormFactorPolyhedron.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
double cot(double x)
cotangent function: