Celeritas 0.6.0-129+develop.846910afa
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::orangeinp::Paraboloid Class Referencefinal

A finite z-aligned parabolid. More...

#include <IntersectRegion.hh>

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

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

- Protected Member Functions inherited from celeritas::orangeinp::IntersectRegionInterface
 CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface)
 

Detailed Description

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 \).

Member Function Documentation

◆ build()

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

◆ output()

void celeritas::orangeinp::Paraboloid::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: