Celeritas 0.7.0-dev.179+develop.ec08af0c9
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::orangeinp::Hyperboloid Class Referencefinal

A z-aligned hyperboloid of revolution centered on the origin. More...

#include <IntersectRegion.hh>

Inheritance diagram for celeritas::orangeinp::Hyperboloid:
Inheritance graph
[legend]

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)
 

Detailed Description

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.

Member Function Documentation

◆ build()

void celeritas::orangeinp::Hyperboloid::build ( IntersectSurfaceBuilder insert_surface) const
finalvirtual

◆ output()

void celeritas::orangeinp::Hyperboloid::output ( JsonPimpl j) const
finalvirtual

Write output to the given JSON object.

Implements celeritas::orangeinp::IntersectRegionInterface.


The documentation for this class was generated from the following files: