Celeritas 0.6.0-129+develop.846910afa
|
A finite z-aligned parabolid. More...
#include <IntersectRegion.hh>
Public Member Functions | |
Paraboloid (real_type lower_radius, real_type upper_radius, real_type halfheight) | |
Construct with lower/upper radii and the half-height. | |
void | build (IntersectSurfaceBuilder &) const final |
Build surfaces. | |
void | output (JsonPimpl *) const final |
Write output to the given JSON object. | |
bool | encloses (Paraboloid const &other) const |
Whether this encloses another paraboloid. | |
real_type | lower_radius () const |
Radius at z=-hh. | |
real_type | upper_radius () const |
Radius at z=hh. | |
real_type | halfheight () const |
Half-height along Z. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A finite z-aligned parabolid.
The paraboloid is defined in an analogous fashion to the cone. A half-height (hh) defines the z-extents, such that the centroid of the outer bounding box is the origin. The lower and upper radii correspond to the radii at \( z = \pm h \). Either the lower or upper radii may be 0, i.e., the solid may include the vertex. Degenerate cases where the lower and upper radii are equal are not permitted: a cylinder should be used instead.
A paraboloid with these properties is expressed in SimpleQuadric form as:
\[ x^2 + y^2 + \frac{(R_{\mathrm{lo}}^2 - R_{\mathrm{hi}}^2)}{h} z - \frac{R_{\mathrm{lo}}^2 + R_{\mathrm{hi}}^2}{2} = 0, \]
where \(R_{\mathrm{lo}}\) and \(R_\mathrm{hi}\) correspond to the lower and upper radii, respectively, and \(h\) is the full height. Note that the scaling is such that as \( R_{\mathrm{lo}} \to R_{\mathrm{hi}} \) this approaches the cylindrical equation \( x^2 + y^2 = R^2 \).
|
finalvirtual |
Build surfaces.
Implements celeritas::orangeinp::IntersectRegionInterface.
Write output to the given JSON object.
Implements celeritas::orangeinp::IntersectRegionInterface.