![]()  | 
    
     An open source method of characteristics neutron transport code. 
     | 
 
A Track represents a characteristic line across the geometry. More...
#include "src/Track.h"
Public Member Functions | |
| Track () | |
| Constructor initializes an empty Track.  | |
| virtual | ~Track () | 
| Destructor clears the Track segments container.  | |
| virtual void | setValues (const double start_x, const double start_y, const double end_x, const double end_y, const double phi) | 
| Set the values for the Track's start and end point and angle.  More... | |
| virtual void | setCoords (double x0, double y0, double x1, double y1) | 
| Set the values for the Track's start and end point.  More... | |
| void | setUid (int uid) | 
| Initializes a Track's unique ID.  More... | |
| void | setPhi (const double phi) | 
| Set the Track's azimuthal angle.  More... | |
| void | setBCFwd (const boundaryType bc_fwd) | 
| Sets the boundary condition for the incoming flux along the Track's "forward" direction.  More... | |
| void | setBCBwd (const boundaryType bc_bwd) | 
| Sets the boundary condition for the incoming flux along the Track's "reverse" direction.  More... | |
| void | setTrackNextFwd (long track_id) | 
| Set a pointer to the reflective Track in the forward direction.  More... | |
| void | setTrackNextBwd (long track_id) | 
| Set a pointer to the reflective Track in the backward direction.  More... | |
| void | setTrackPrdcFwd (long track_id) | 
| Set a pointer to the periodic Track in the forward direction.  More... | |
| void | setTrackPrdcBwd (long track_id) | 
| Set a pointer to the periodic Track in the backward direction.  More... | |
| void | setTrackReflFwd (long track_id) | 
| Set a pointer to the reflective Track in the forward direction.  More... | |
| void | setTrackReflBwd (long track_id) | 
| Set a pointer to the reflective Track in the backward direction.  More... | |
| void | setNextFwdFwd (bool fwd) | 
| Set whether the reflective track in the forward direction is pointing in forward direction.  More... | |
| void | setNextBwdFwd (bool fwd) | 
| Set whether the reflective track in the backward direction is pointing in forward direction.  More... | |
| void | setXYIndex (int index) | 
| Set the xy index of this Track.  More... | |
| void | setAzimIndex (int index) | 
| Set a Track's azimuthal angle index.  More... | |
| void | setSurfaceIn (int surface_in) | 
| Set the surface at which the Track starts.  More... | |
| void | setSurfaceOut (int surface_out) | 
| Set the surface at which the Track ends.  More... | |
| void | setDomainFwd (int neighbor) | 
| Set the domain at the end of the Track in the forward direction.  More... | |
| void | setDomainBwd (int neighbor) | 
| Set the domain at the end of the Track in the backward direction.  More... | |
| void | setLinkIndex (int index) | 
| Set a Track's link index.  More... | |
| int | getUid () | 
| Return the Track's unique ID.  More... | |
| Point * | getEnd () | 
| Returns a pointer to the Track's end Point.  More... | |
| Point * | getStart () | 
| Returns a pointer to the Track's start Point.  More... | |
| double | getPhi () const | 
| Return the Track's azimuthal angle (with respect to the x-axis).  More... | |
| double | getLength () | 
| Return the Track's length.  More... | |
| long | getTrackNextFwd () | 
| Get a pointer to the reflective Track in the forward direction.  More... | |
| long | getTrackNextBwd () | 
| Get a pointer to the reflective Track in the backward direction.  More... | |
| long | getTrackPrdcFwd () | 
| Get a pointer to the periodic Track in the forward direction.  More... | |
| long | getTrackPrdcBwd () | 
| Get a pointer to the periodic Track in the backward direction.  More... | |
| long | getTrackReflFwd () | 
| Get a pointer to the reflective Track in the forward direction.  More... | |
| long | getTrackReflBwd () | 
| Get a pointer to the reflective Track in the backward direction.  More... | |
| bool | getNextFwdFwd () | 
| Get whether the reflective track in the forward direction is pointing in forward direction.  More... | |
| bool | getNextBwdFwd () | 
| Get whether the reflective track in the backward direction is pointing in forward direction.  More... | |
| int | getXYIndex () | 
| Get the xy index of this Track.  More... | |
| int | getAzimIndex () | 
| Get a Track's azimuthal angle index.  More... | |
| int | getLinkIndex () | 
| Get a Track's link index.  More... | |
| boundaryType | getBCFwd () const | 
| Returns the boundary condition for the flux along the Track's "forward" direction.  More... | |
| boundaryType | getBCBwd () const | 
| Returns the boundary condition for the flux along the Track's "reverse" direction.  More... | |
| segment * | getSegment (int s) | 
| Returns a pointer to a segment with a given index.  More... | |
| segment * | getSegments () | 
| Returns a vector of pointers to the Track's segments.  More... | |
| int | getNumSegments () | 
| Return the number of segments along this Track.  More... | |
| int | getDomainFwd () | 
| Get the domain connected at the front end of the Track.  More... | |
| int | getDomainBwd () | 
| Get the domain connected at the back end of the Track.  More... | |
| int | getSurfaceIn () | 
| Get the surface from which the track originates in the domain.  More... | |
| int | getSurfaceOut () | 
| Get the surface at which the Track ends in the domain.  More... | |
| void | addSegment (segment *segment) | 
| Adds a segment to this Track's list of segments.  More... | |
| void | removeSegment (int index) | 
| Removes a segment from this Track's list of segments.  More... | |
| void | insertSegment (int index, segment *segment) | 
| Inserts a segment struct into this Track's list of segments.  More... | |
| void | clearSegments () | 
| Deletes each of this Track's segments.  | |
| void | setNumSegments (int num_segments) | 
| Sets the number of segments in a track.  More... | |
| virtual std::string | toString () | 
| Convert this Track's attributes to a character array.  More... | |
Protected Attributes | |
| int | _uid | 
| Point | _start | 
| Point | _end | 
| double | _phi | 
| std::vector< segment > | _segments | 
| int | _num_segments | 
| boundaryType | _bc_fwd | 
| boundaryType | _bc_bwd | 
| int | _azim_index | 
| int | _xy_index | 
| int | _link_index | 
| long | _track_next_fwd | 
| long | _track_next_bwd | 
| long | _track_prdc_fwd | 
| long | _track_prdc_bwd | 
| long | _track_refl_fwd | 
| long | _track_refl_bwd | 
| bool | _next_fwd_fwd | 
| bool | _next_bwd_fwd | 
| bool | _direction_in_cycle | 
| int | _surface_in | 
| int | _surface_out | 
| int | _domain_fwd | 
| int | _domain_bwd | 
A Track represents a characteristic line across the geometry.
A Track has particular starting and ending points on the boundaries of the geometry and an azimuthal and polar angle.
| void Track::addSegment | ( | segment * | segment | ) | 
| int Track::getAzimIndex | ( | ) | 
Get a Track's azimuthal angle index.
      
  | 
  inline | 
Returns the boundary condition for the flux along the Track's "reverse" direction.
      
  | 
  inline | 
Returns the boundary condition for the flux along the Track's "forward" direction.
| int Track::getDomainBwd | ( | ) | 
| int Track::getDomainFwd | ( | ) | 
      
  | 
  inline | 
| int Track::getLinkIndex | ( | ) | 
Get a Track's link index.
In generating 3D tracks, we need to know the tracks linking this track with both periodic and reflective boundary conditions. Therefore, we generate a periodic chain of tracks that extend periodically from the y-min to the y-max boundary. This is the index of each track in its' periodic chain.
| bool Track::getNextBwdFwd | ( | ) | 
Get whether the reflective track in the backward direction is pointing in forward direction.
| bool Track::getNextFwdFwd | ( | ) | 
Get whether the reflective track in the forward direction is pointing in forward direction.
      
  | 
  inline | 
Return the number of segments along this Track.
      
  | 
  inline | 
Return the Track's azimuthal angle (with respect to the x-axis).
 
      
  | 
  inline | 
      
  | 
  inline | 
Returns a vector of pointers to the Track's segments.
      
  | 
  inline | 
| int Track::getSurfaceIn | ( | ) | 
| int Track::getSurfaceOut | ( | ) | 
| long Track::getTrackNextBwd | ( | ) | 
Get a pointer to the reflective Track in the backward direction.
| long Track::getTrackNextFwd | ( | ) | 
Get a pointer to the reflective Track in the forward direction.
| long Track::getTrackPrdcBwd | ( | ) | 
Get a pointer to the periodic Track in the backward direction.
| long Track::getTrackPrdcFwd | ( | ) | 
Get a pointer to the periodic Track in the forward direction.
| long Track::getTrackReflBwd | ( | ) | 
Get a pointer to the reflective Track in the backward direction.
| long Track::getTrackReflFwd | ( | ) | 
Get a pointer to the reflective Track in the forward direction.
| void Track::insertSegment | ( | int | index, | 
| segment * | segment | ||
| ) | 
Inserts a segment struct into this Track's list of segments.
This method appends the new segment directly behind another segment in the Track. This is a helper method for the TrackGenerator::splitTracks(...) routine.
| index | The index of the segment to insert behind in the list | 
| segment | A pointer to the segment to insert | 
| void Track::removeSegment | ( | int | index | ) | 
Removes a segment from this Track's list of segments.
| index | The index of the segment to remove | 
| void Track::setAzimIndex | ( | int | index | ) | 
Set a Track's azimuthal angle index.
| index | The azimuthal angle index | 
| void Track::setBCBwd | ( | const boundaryType | bc_bwd | ) | 
Sets the boundary condition for the incoming flux along the Track's "reverse" direction.
The boolean represents vacuum (false) or reflective (true) boundary conditions.
| bc_bwd | Boundary condition for the incoming flux in the "reverse" direction | 
| void Track::setBCFwd | ( | const boundaryType | bc_fwd | ) | 
Sets the boundary condition for the incoming flux along the Track's "forward" direction.
The boolean represents vacuum (false) or reflective (true) boundary conditions.
| bc_fwd | Boundary condition for the incoming flux in the "forward" direction | 
      
  | 
  virtual | 
Set the values for the Track's start and end point.
| x0 | the x-coordinate at the starting point | 
| y0 | the y-coordinate at the starting point | 
| x1 | the x-coordinate at the ending point | 
| y1 | the y-coordinate at the ending point | 
| void Track::setDomainBwd | ( | int | neighbor | ) | 
| void Track::setDomainFwd | ( | int | neighbor | ) | 
| void Track::setLinkIndex | ( | int | index | ) | 
Set a Track's link index.
In generating 3D tracks, we need to know the tracks linking this track with both periodic and reflective boundary conditions. Therefore, we generate a periodic chain of tracks that extend periodically from the y-min to the y-max boundary. This is the index of each track in its' periodic chain.
| index | The link index | 
| void Track::setNextBwdFwd | ( | bool | fwd | ) | 
Set whether the reflective track in the backward direction is pointing in forward direction.
| fwd | Boolean indicating whether reflective track in the backward direction is point in forward direction | 
| void Track::setNextFwdFwd | ( | bool | fwd | ) | 
Set whether the reflective track in the forward direction is pointing in forward direction.
| fwd | Boolean indicating whether reflective track in the forward direction is point in forward direction | 
      
  | 
  inline | 
Sets the number of segments in a track.
This function sets the number of segments in a track. It's purpose is to be used for 3D tracks with on-the-fly ray tracing where segments are not explicitly created, but there is a need to know how many segments exist.
| void Track::setPhi | ( | const double | phi | ) | 
Set the Track's azimuthal angle.
| phi | The azimuthal angle | 
| void Track::setSurfaceIn | ( | int | surface_in | ) | 
| void Track::setSurfaceOut | ( | int | surface_out | ) | 
| void Track::setTrackNextBwd | ( | long | track_id | ) | 
Set a pointer to the reflective Track in the backward direction.
| track_id | the id of the reflective track in the backward direction | 
| void Track::setTrackNextFwd | ( | long | track_id | ) | 
Set a pointer to the reflective Track in the forward direction.
| track_id | the id of the reflective track in the forward direction | 
| void Track::setTrackPrdcBwd | ( | long | track_id | ) | 
Set a pointer to the periodic Track in the backward direction.
| track_id | the id of the periodic track in the backward direction | 
| void Track::setTrackPrdcFwd | ( | long | track_id | ) | 
Set a pointer to the periodic Track in the forward direction.
| track_id | the id of the periodic track in the forward direction | 
| void Track::setTrackReflBwd | ( | long | track_id | ) | 
Set a pointer to the reflective Track in the backward direction.
| track_id | the id of the reflective track in the backward direction | 
| void Track::setTrackReflFwd | ( | long | track_id | ) | 
Set a pointer to the reflective Track in the forward direction.
| track_id | the id of the reflective track in the forward direction | 
| void Track::setUid | ( | int | uid | ) | 
      
  | 
  virtual | 
Set the values for the Track's start and end point and angle.
| start_x | the x-coordinate at the starting point | 
| start_y | the y-coordinate at the starting point | 
| end_x | the x-coordinate at the ending point | 
| end_y | the y-coordinate at the ending point | 
| phi | the track's azimuthal angle (  )  | 
| void Track::setXYIndex | ( | int | index | ) | 
      
  | 
  virtual | 
      
  | 
  protected | 
An enum to indicate whether the outgoing angular flux along this Track's "reverse" direction should be zeroed out for vacuum boundary conditions or sent to a periodic or reflective track.
      
  | 
  protected | 
An enum to indicate whether the outgoing angular flux along this Track's "forward" direction should be zeroed out for vacuum boundary conditions or sent to a periodic or reflective track.
      
  | 
  protected | 
Boolean indicating whether the track is pointing fwd (True) or bwd (False) in the cycle of tracks
      
  | 
  protected | 
Domains further along and before the current domain on this Track
      
  | 
  protected | 
Booleans to indicate wheter the reflective Tracks in the forward and and backward direction enter into Tracks pointed in the forward direction.
      
  | 
  protected | 
Number of segments recorded during volume calculation
      
  | 
  protected | 
The azimuthal angle for the Track
      
  | 
  protected | 
A dynamically sized vector of segments making up this Track
      
  | 
  protected | 
Surfaces at the beginning and end of the Track
      
  | 
  protected | 
Pointers to next, reflective, and periodic Tracks in the forward and reverse directions
      
  | 
  protected | 
A monotonically increasing unique ID for each Track created