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

A z-aligned cylinder with an elliptical cross section. More...

#include <IntersectRegion.hh>

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

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 constradii () 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

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

Detailed Description

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.

Member Function Documentation

◆ build()

void celeritas::orangeinp::EllipticalCylinder::build ( IntersectSurfaceBuilder insert_surface) const
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.

◆ output()

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