20 {{0, 1, 5, 4},
false},
21 {{1, 2, 6, 5},
false},
22 {{2, 3, 7, 6},
false},
23 {{3, 0, 4, 7},
false},
24 {{4, 5, 6, 7},
true}},
30 "frsutum with rectangular base",
31 {{
"Length",
"nm",
"side length of base in x direction", 0, +
INF, 0},
32 {
"Width",
"nm",
"side length of base in y direction", 0, +
INF, 0},
33 {
"Height",
"nm",
"height", 0, +
INF, 0},
34 {
"Alpha",
"rad",
"angle between base and any side face", 0.,
M_PI_2, 0}}},
63 if (!std::isfinite(cot_alpha) || cot_alpha < 0)
64 throw std::runtime_error(
"AnisoPyramid: angle alpha out of bounds");
68 std::ostringstream ostr;
69 ostr <<
"FormFactorAnisoPyramid() -> Error in class initialization with parameters";
73 ostr <<
" alpha[rad]:" <<
m_alpha <<
"\n\n";
74 ostr <<
"Check for '2*height <= (length,width)*tan(alpha)' failed.";
75 throw std::runtime_error(ostr.str());
81 double w =
m_width / 2 * (1 - s);
84 m_height * (.5 - (r + s) / 3 + r * s / 4) / (1 - (r + s) / 2 + r * s / 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: