Celeritas 0.6.0-129+develop.846910afa
|
A z-aligned cylinder with an elliptical cross section. More...
#include <IntersectRegion.hh>
Public Member Functions | |
EllipticalCylinder (Real2 const &radii, real_type halfheight) | |
Construct with x- and y-radii and half-height in z. | |
void | build (IntersectSurfaceBuilder &) const final |
Build surfaces. | |
void | output (JsonPimpl *) const final |
Write output to the given JSON object. | |
bool | encloses (EllipticalCylinder const &other) const |
Whether this encloses another elliptical cylinder. | |
Real2 const & | radii () const |
Radius along each axis. | |
real_type | halfheight () const |
Half-height along Z. | |
real_type | radius (Axis ax) const |
Get the radius along a single axis. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A z-aligned cylinder with an elliptical cross section.
The elliptical cylinder is defined with a two radii and a half-height, such that the centroid of the bounding box is origin. The quadric coefficient of the cylindrical component,
\[ x^2 / r_x^2 + y^2 / r_y^2 = 1 \, \]
are scaled based on the radii of the cylinder, reducing to \( x^2 + y^2 = R^2 \) when the radii are equal.
|
finalvirtual |
Build surfaces.
This should reproduce a circular cylinder in the limit of rx = ry, and keep the second-order terms close to unity to preserve solver accuracy.
Implements celeritas::orangeinp::IntersectRegionInterface.
Write output to the given JSON object.
Implements celeritas::orangeinp::IntersectRegionInterface.