RSTT 3.2.1 Regional Seismic Travel Time

Loading...
Searching...
No Matches
slbm::GreatCircle_Xg Class Reference

The GreatCircle_Xg class manages information related to a great circle path between two Locations on the Earth. Its computeTravelTime() methods compute travel times for Pg or Lg phases. More...

`#include <GreatCircle_Xg.h>`

Inheritance diagram for slbm::GreatCircle_Xg:

## Public Member Functions
| GreatCircle_Xg (const int &_phase, Grid &_grid, const double &latSource, const double &lonSource, const double &depthSource, const double &latReceiver, const double &lonReceiver, const double &depthReceiver)
| Parameterized constructor.
| ~GreatCircle_Xg ()
| Destructor. Calls GreatCircle destructor, which deletes the source and receiver CrustalProfile objects and all LayerProfile objects created by this GreatCircle_Xg object.
GreatCircle_Xg & | operator= (const GreatCircle_Xg &other)
| Copy constructor.
void | computeTravelTime ()
void | getZhaoParameters (double &Vm, double &Gm, double &H, double &C, double &Cm, int &udSign)
void | getPgLgComponents (double &tTotal, double &tTaup, double &tHeadwave, double &pTaup, double &pHeadwave, double &trTaup, double &trHeadwave)
string | toString (const int &verbosity)
| Retrieve a formatted string providing a detailed description of the information managed by this GreatCircle object.
Public Member Functions inherited from slbm::GreatCircle
| GreatCircle (const int &_phase, Grid &_grid, const double &latSource, const double &lonSource, const double &depthSource, const double &latReceiver, const double &lonReceiver, const double &depthReceiver)
| Parameterized constructor.
virtual | ~GreatCircle ()
| Destructor. Deletes LayerProfile objects associated with this GreatCircle object.
GreatCircle & | operator= (const GreatCircle &other)
| Copy constructor.
virtual bool | operator== (const GreatCircle &other) const
| isEqualTo operator
virtual bool | operator!= (const GreatCircle &other) const
Grid & | getGrid ()
| Retrieve a reference to the Grid object that this GreatCircle is associated with.
int | getPhase ()
| Retrieve the phase that this GreatCircle supports. Will be one of SLBMGlobals::Pn, SLBMGlobals::Sn, SLBMGlobals::Pg, SLBMGlobals::Lg.
const int & | getHeadWaveInterface ()
| Retrieve the index of the head wave interface (SLBMGlobals::MANTLE for Pn, Sn; SLBMGlobals::MIDDLE_CRUST for Pg, Lg).
string | getPhaseString ()
| Retrieve a string representation fo the the phase that this GreatCircle supports. Will be one of 'Pn', 'Sn', 'Pg', 'Lg'.
CrustalProfile * | getSourceProfile ()
| Retrieve a pointer to the source CrustalProfile.
CrustalProfile * | getReceiverProfile ()
| Retrieve a pointer to the receiver CrustalProfile.
double | getSourceRayParameter ()
double | getReceiverRayParameter ()
LayerProfile * | getProfile (const int &i)
| Retrieve a pointer to one of the LayerProfile objects that comprise the head wave portion of the ray path.
vector< LayerProfile * > | getProfiles ()
int | getNProfiles ()
| Retrieve the number of LayerProfile object positioned along the head wave interface.
void | getLayerProfileLocation (const int &i, Location &loc)
| Retrieve the Location of a LayerProfile.
double | getDistance ()
| Retrieve source-receiver separation, in radians.
double | getEsaz ()
| Retrieve source-receiver azimuth, in radians.
double | getSourceDistance ()
| Retrieve horizontal offset below the source, in radians.
double | getSourceDistanceX ()
| Retrieve horizontal offset below the source, in radians.
double | getSourceDistanceZ ()
| Retrieve vertical offset below the source, in km.
double | getSourceDistanceS ()
| Retrieve the ray length below the source, in km.
double | getReceiverDistance ()
| Retrieve horizontal offset below the receiver, in radians.
double | getReceiverDistanceX ()
| Retrieve horizontal offset below the receiver, in radians.
double | getReceiverDistanceZ ()
| Retrieve vertical offset below the receiver, in km.
double | getReceiverDistanceS ()
| Retrieve the ray length below the receiver, in km.
double | getHeadwaveDistance ()
| Retrieve angular distance traveled by the ray below the headwave interface, in radians.
double | getHeadwaveDistanceKm ()
| Retrieve horizontal distance traveled by the ray below the headwave interface, in radians.
double | getActualPathIncrement ()
| Retrieve horizontal separation of LayerProfiles, in radians.
double | getTravelTime ()
| Retrieve the travel time from the source to the receiver.
void | getTravelTime (double &tTotal, double &tSource, double &tReceiver, double &tMantle, double &tGradient)
| Retrieve the total travel time and the 4 components that contribute to it.
void | getData (int &phase, double &actual_path_increment, double sourceDepth[NLAYERS], double sourceVelocity[NLAYERS], double receiverDepth[NLAYERS], double receiverVelocity[NLAYERS], int &npoints, double headWaveVelocity[], double gradient[])
| Retrieve information about the great circle path including the interface depths at source and receiver, the velocity profiles at the source and receiver, and mantle velocity and velocity gradient at points along the great circle path from source pierce point to receiver pierce point.
void | getData (int &phase, double &actual_path_increment, vector< double > &sourceDepth, vector< double > &sourceVelocity, vector< double > &receiverDepth, vector< double > &receiverVelocity, vector< double > &headWaveVelocity, vector< double > &gradient)
| Retrieve information about the great circle path including the interface depths at source and receiver, the velocity profiles at the source and receiver, and mantle velocity and velocity gradient at points along the great circle path from source pierce point to receiver pierce point.
void | getNodeInfo (int **neighbors, double **coefficients, const int &maxpoints, const int &maxnodes, int &npoints, int *nnodes)
| Retrieve information about the interpolated points along the headwave path, including the number of points, the indexes of the grid nodes that contributed to interpolation of values at the points, and the interpolation coefficients used to calculate values at the points.
void | getNodeInfo (vector< vector< int > > &neighbors, vector< vector< double > > &coefficients)
| Retrieve information about the interpolated points along the headwave path, including the number of points, the indexes of the grid nodes that contributed to interpolation of values at the points, and the interpolation coefficients used to calculate values at the points.
void | getGreatCircleLocation (const double &distance, Location &loc)
| Retrieve a location object that is located on the great circle at specified distance from source.
void | getWeights (vector< int > &nodeids, vector< double > &weights, bool headWaveWeights=true)
| Retrieve the weight assigned to each grid node that was touched by the GreatCircle.
void | getWeights (int nodeids[], double weights[], int &nweights)
| Retrieve the weight assigned to each grid node that was touched by the GreatCircle.
double | getFractionActive ()
double | getRayParameter ()
double | getTurningRadius ()
virtual size_t | memSize ()
void | get_dtt_ddist (double &dtt_ddist)
| Retrieve the derivative of travel time wrt to source-receiver separation, in seconds/radian.
void | get_dtt_dlat (double &dtt_dlat)
| Retrieve the derivative of travel time wrt to source latitude, in seconds/radian.
void | get_dtt_dlon (double &dtt_dlon)
| Retrieve the derivative of travel time wrt to source longitude, in seconds/radian.
void | get_dtt_ddepth (double &dtt_ddepth)
| Retrieve the derivative of travel time wrt to source depth, in seconds/km.
void | setNAValues ()

## Additional Inherited Members
Static Public Member Functions inherited from slbm::GreatCircle
static int | getClassCount ()
static void | setDelDistance (const double &del_distance)
static double | getDelDistance ()
static void | setDelDepth (const double &del_depth)
static double | getDelDepth ()
static void | setPathIncrement (const double &path_increment)
static double | getPathIncrement ()
Static Public Attributes inherited from slbm::GreatCircle
static double | MAX_DISTANCE
| Retrieve the derivative of travel time wrt to source latitude, in seconds/radian.
static double | MAX_DEPTH
Protected Member Functions inherited from slbm::GreatCircle
double | getActualPathIncrement (const int &i)
| Retrieve the component of the horizontal separation between elements of profiles that actually contribute to the head wave, in radians.
double | sqr (const double &x)
double | get_ttHminus ()
| retrieve value of ttHminus. Compute the value if it is NA_VALUE.
double | get_ttHplus ()
| retrieve value of ttHplus. Compute the value if it is NA_VALUE.
double | get_ttZplus ()
| retrieve value of ttZplus. Compute the value if it is NA_VALUE.
double | get_ttZminus ()
| retrieve value of ttZplus. Compute the value if it is NA_VALUE.
double | get_ttHZplus ()
| retrieve value of ttHZplus. Compute the value if it is NA_VALUE.
double | get_ttEast ()
| retrieve value of ttHminus. Compute the value if it is NA_VALUE.
double | get_ttWest ()
| retrieve value of ttHplus. Compute the value if it is NA_VALUE.
double | get_ttEastZ ()
| retrieve value of ttHZplus. Compute the value if it is NA_VALUE.
double | get_ttNorth ()
| retrieve value of ttHminus. Compute the value if it is NA_VALUE.
double | get_ttSouth ()
| retrieve value of ttHplus. Compute the value if it is NA_VALUE.
double | get_ttNorthZ ()
| retrieve value of ttHZplus. Compute the value if it is NA_VALUE.
Protected Attributes inherited from slbm::GreatCircle
Grid & | grid
| A reference to the Grid from which the source and receiver CrustalProfile objects and the LayerProfile objects are interpolated.
int | phase
| The phase that this GreatCircle object is set up for (Pn, Sn, Pg or Lg).
double | latSource
double | lonSource
double | depthSource
double | latReceiver
double | lonReceiver
double | depthReceiver
int | headWaveInterface
| The index of the earth model interface along which head waves propagate. If phase is Pn or Sn, headWaveInterface will equal SLBMGlobals::MANTLE. If phase is Pg or Lg, headWaveInterface will equal SLBMGlobals::MIDDLE_CRUST.
CrustalProfile * | source
| The source CrustalProfile object.
CrustalProfile * | receiver
| The receiver CrustalProfile object.
Location | location
| A Location object used in a variety of places to manipulate Location information.
double | vtp [3]
| The vector triple product of the source and receiver Locations. Used to compute Locations along the great circle path from source to receiver.
vector< LayerProfile * > | profiles
| The LayerProfile objects which are positioned on the interface along which the head wave propagates.
string | solutionMethod
| The method used to calculate travel times.
double | tTotal
| The total travel time from source to receiver, in seconds.
double | actual_path_increment
| The actual spacing between the elements of profiles, in radians.
double | distance
| The horizontal source-receiver separation, in radians.
double | esaz
| The source-receiver azimuth, in radians.
double | rayParameter
double | xSource
| The horizontal distance from the source Location to the source pierce point, in radians.
double | zSource
| The vertical distance from the source Location to the source pierce point, in km.
double | sSource
| The ray length from the source Location to the source pierce point, in km.
double | tSource
| The time required for the ray to travel from the source Location to piercePointSource, in seconds.
double | xReceiver
| The horizontal distance from the receiver Location to the receiver pierce point, in radians.
double | zReceiver
| The vertical distance from the receiver Location to the receiver pierce point, in km.
double | sReceiver
| The path length from the receiver Location to the receiver pierce point, in km.
double | tReceiver
| The time required for the ray to travel from the receiver pierce point to the receiver Location, in seconds.
double | xHorizontal
| The horizontal distance traveled by the ray as a head wave, in km.
double | tHorizontal
| The time spent by the ray traveling horizontally as a head wave, in seconds.
double | tGamma
| The gradient correction term of the total travel time, in sec.
double | sourceRayParameter
double | receiverRayParameter
double | turningRadius
int | sourceIndex
| The index of the element in the profiles array corresponding to the horizontal increment in which the source pierce point is located.
int | receiverIndex
| The index of the element in the profiles array corresponding to the horizontal increment in which the receiver pierce point is located.
double | ttHminus
double | ttHplus
double | ttHZplus
double | ttEast
double | ttWest
double | ttEastZ
double | ttNorth
double | ttSouth
double | ttNorthZ
Static Protected Attributes inherited from slbm::GreatCircle
static int | greatCircleClassCount
static double | DEL_DISTANCE
static double | DEL_DEPTH
static double | PATH_INCREMENT
| the desired spacing of great circle nodes along the head wave interface, in radians.

## Detailed Description

The GreatCircle_Xg class manages information related to a great circle path between two Locations on the Earth. Its computeTravelTime() methods compute travel times for Pg or Lg phases.

The GreatCircle_Xg class manages information related to a great circle path between two Locations on the Earth. It inherits much of its functionality from the GreatCircle class from which it is derived but overrides the computeTravelTime() method to compute travel times for Pg and Lg phases. It also overrides the toString() method.

Applications should use a GreatCircleFactory object to obtain pointers to GreatCircle_Xg objects.

Definition at line 77 of file GreatCircle_Xg.h.

## Constructor & Destructor Documentation

## ◆ GreatCircle_Xg()

slbm::GreatCircle_Xg::GreatCircle_Xg | ( | const int & | _phase,
|  | Grid & | _grid,
|  | const double & | latSource,
|  | const double & | lonSource,
|  | const double & | depthSource,
|  | const double & | latReceiver,
|  | const double & | lonReceiver,
|  | const double & | depthReceiver )

Parameterized constructor.

Parameterized constructor.

Parameters

  _phase | the phase that this GreatCircle_Xg object is to support. Must be one of SLBMGlobals::Pg or SLBMGlobals::Lg.
  _grid | The Grid from which LayerProfile objects will be extracted.
  latSource | the geographic latitude of the source, in radians
  lonSource | the geographic longitude of the source, in radians
  depthSource | the depth of the source below sea level, in km
  latReceiver | the geographic latitude of the receiver, in radians
  lonReceiver | the geographic longitude of the receiver, in radians
  depthReceiver | the depth of the receiver below sea level, in km

## ◆ ~GreatCircle_Xg()

slbm::GreatCircle_Xg::~GreatCircle_Xg | ( |  | ) |

Destructor. Calls GreatCircle destructor, which deletes the source and receiver CrustalProfile objects and all LayerProfile objects created by this GreatCircle_Xg object.

Destructor. Calls destructor, which deletes the source and receiver CrustalProfile objects and all LayerProfile objects created by this GreatCircle_Xg object.

## Member Function Documentation

## ◆ computeTravelTime()

void slbm::GreatCircle_Xg::computeTravelTime | ( |  | ) |
| virtual

brief Computes the geometry of the ray, all the components of the traveltime, and the total travel time.

Computes the geometry of the ray, all the components of the traveltime, and the total travel time.

Implements slbm::GreatCircle.

## ◆ getPgLgComponents()

void slbm::GreatCircle_Xg::getPgLgComponents | ( | double & | tTotal,
|  | double & | tTaup,
|  | double & | tHeadwave,
|  | double & | pTaup,
|  | double & | pHeadwave,
|  | double & | trTaup,
|  | double & | trHeadwave )
| inline virtual

Reimplemented from slbm::GreatCircle.

Definition at line 216 of file GreatCircle_Xg.h.

## ◆ getZhaoParameters()

void slbm::GreatCircle_Xg::getZhaoParameters | ( | double & | Vm,
|  | double & | Gm,
|  | double & | H,
|  | double & | C,
|  | double & | Cm,
|  | int & | udSign )
| inline virtual

Implements slbm::GreatCircle.

Definition at line 206 of file GreatCircle_Xg.h.

## ◆ operator=()

GreatCircle_Xg & slbm::GreatCircle_Xg::operator= | ( | const GreatCircle_Xg & | other | ) |

Copy constructor.

Copy constructor.

Equal operator.

Equal operator.

## ◆ toString()

string slbm::GreatCircle_Xg::toString | ( | const int & | verbosity | ) |
| virtual

Retrieve a formatted string providing a detailed description of the information managed by this GreatCircle object.

Retrieve a formatted string providing a detailed description of the information managed by this GreatCircle object.

Parameters

  verbosity | specifies the amount of information that is to be included in the return string. Each verbosity level includes all information in preceeding verbosity levels. 0 : nothing. An empty string is returned. 1 : total distance and travel time summary 2 : gradient correction information for Pn/Sn. Nothing for Pg/Lg 3 : Source and receiver profiles 4 : Grid node weights. 5 : Head wave interface profiles 6 : Interpolation coefficients for great circle nodes on the head wave interface.

Implements slbm::GreatCircle.

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

- rstt_v3.2.1/SLBM/include/GreatCircle_Xg.h