Celeritas 0.6.0-110+develop.c7dc37d1
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::orangeinp::RevolvedSpecialTrapezoid Class Referencefinal

A region formed by revolving a SpecialTrapezoid around the z-axis. More...

#include <IntersectRegion.hh>

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

Public Member Functions

 RevolvedSpecialTrapezoid (SpecialTrapezoid &&trap)
 Construct from a special trapezoid.
 
void build (IntersectSurfaceBuilder &) const final
 Build surfaces.
 
void output (JsonPimpl *) const final
 Write output to the given JSON object.
 
SpecialTrapezoid consttrap () const
 Return the special trapezoid.
 

Additional Inherited Members

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

Detailed Description

A region formed by revolving a SpecialTrapezoid around the z-axis.

The trapezoid being revolved always has a flat top and bottom along the z axis and never crosses the z axis. These special constraints ensure that the revolved trapezoid's sides never touch both sheets of a cone, which as a quadric is always double-sheeted about the cone's vanishing point. As a convention, all r values must be non-negative. An example of the revolution process is shown below.

                             |
    ........            ^    |     .           ________
    .       .            .   |    .           /        |
    .         .           . . . .           /          |
    .           .            |            /            |
    ...............          |          /______________|
                             |         supplied special trapezoid
                          z axis
* 

Member Function Documentation

◆ build()

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

Build surfaces.

Surface are constructed by revolving each segment around the z axis. Thus:

  • segments parallel to z become z-aligned cylinders,
  • segments perpendicular to z become z-orthogonal planes,
  • other segments become z-aligned cones.

If segment is coincident with the z axis, no surface is created, as it would enclose zero volume.

Implements celeritas::orangeinp::IntersectRegionInterface.

◆ output()

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