|
Celeritas 0.7.0-dev.179+develop.ec08af0c9
|
A z-aligned hyperboloid of revolution centered on the origin. More...
#include <IntersectRegion.hh>

Public Member Functions | |
| Hyperboloid (real_type min_radius, real_type max_radius, real_type halfheight) | |
| Construct with radius at midpoint (min) and end (max), and half-height. | |
| void | build (IntersectSurfaceBuilder &) const final |
| Build surfaces. | |
| void | output (JsonPimpl *) const final |
| Write output to the given JSON object. | |
| bool | encloses (Hyperboloid const &other) const |
| Whether this encloses another hyperboloid. | |
| real_type | min_radius () const |
| Minimum radius at z=0. | |
| real_type | max_radius () const |
| Maximum radius at |z|=hh. | |
| real_type | halfheight () const |
| Half-height along z. | |
Additional Inherited Members | |
Protected Member Functions inherited from celeritas::orangeinp::IntersectRegionInterface | |
| CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A z-aligned hyperboloid of revolution centered on the origin.
A hyperboloid is defined by rotating a hyperbola around the z-axis. This implementation uses a minimum radius (at \( z=0 \)) and a maximum radius (at \(z=\pm \textrm{hh}\)).
The hyperboloid surface is defined by the equation:
\[ x^2 + y^2 - r_{min}^2 \left(1 + z^2 t^2\right) = 0 \]
where \( r_{min} \) is the minimum radius (at z=0) and \( t^2 = (r_{max}^2 - r_{min}^2) / h^2 \), with \( r_{max} \) being the maximum radius and \( h \) the half-height.
The maximum radius must be greater than the minimum radius, ensuring a valid hyperboloid shape. The minimum radius must be positive, as a radius of zero would produce a two-sheeted cone.
|
finalvirtual |
Build surfaces.
Implements celeritas::orangeinp::IntersectRegionInterface.
Write output to the given JSON object.
Implements celeritas::orangeinp::IntersectRegionInterface.