Celeritas 0.6.0-73+develop.4684b68f
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::orangeinp::EnclosedPolar Class Reference

Define the polar trunction of a solid. More...

#include <Solid.hh>

Public Types

Type aliases
using VecPolarWedge = std::vector< InfPolarWedge >
 

Public Member Functions

 EnclosedPolar ()=default
 Default to "all angles".
 
 EnclosedPolar (Turn start, Turn stop)
 Construct from a starting angle and stop angle.
 
VecPolarWedge make_regions () const
 Construct one or two wedges to union.
 
constexpr operator bool () const
 Whether the enclosed angle is less than the whole polar range.
 
Turn start () const
 Starting angle.
 
Turn stop () const
 stop angle
 

Detailed Description

Define the polar trunction of a solid.

This subtracts up to two infinite cones centered along the z axis from the origin.

A start angle of zero corresponding to the +z axis. An interior angle of 0.5 results in no exclusion from the resulting solid.

// Truncates a solid to the top hemisphere (no cones, just equatorial plane)
EnclosedPolar{Turn{0}, Turn{0.25}};
// Truncates a solid to northern latitudes (intersect two cones and a plane)
EnclosedPolar{Turn{0.15}, Turn{0.2}};
// Truncates a solid to an equatorial region (18 degrees N to 36 S: the union
// of two polar wedge cones)
EnclosedPolar{Turn{0.2}, Turn{0.35}};
Turn_t< real_type > Turn
Turn with default precision (DEPRECATEDish)
Definition Turn.hh:57
A numerical value tagged with a unit.
Definition Quantity.hh:80
Define the polar trunction of a solid.
Definition Solid.hh:94
EnclosedPolar()=default
Default to "all angles".

Constructor & Destructor Documentation

◆ EnclosedPolar()

celeritas::orangeinp::EnclosedPolar::EnclosedPolar ( Turn  start,
Turn  stop 
)

Construct from a starting angle and stop angle.

The beginning starts at the north pole/top point and the end is at the south pole/bottom point.

Note that since the azimuthal region is periodic and can start anywhere from zero to 1 turn, we have to make decisions about its shape based on the stop angle rather than end angle, else we'd have to restrict the input start value to +/- pi or something. In contrast, the polar region is on a non-periodic range [0, 0.5] and we have to...

Member Function Documentation

◆ make_regions()

auto celeritas::orangeinp::EnclosedPolar::make_regions ( ) const

Construct one or two wedges to union.

The result will be intersected the solid: these wedges are the parts to keep.


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