RSTT
3.2.0
Regional Seismic Travel Time
|
The primary layer search functional used by Brents zeroIn(...) function to find layers that contain a turning ray whose distance matches the distance between the source and receiver. More...
#include <TauPSiteFunctionals.h>
Public Member Functions | |
TPZeroFunctional () | |
Default constructor. More... | |
TPZeroFunctional (TauPSite *tps) | |
Standard constructor. Assigns the TauPSite for this TPZeroFunctional. More... | |
TPZeroFunctional (const TPZeroFunctional &tpzf) | |
Copy constructor. More... | |
virtual | ~TPZeroFunctional () |
Destructor. More... | |
TPZeroFunctional & | operator= (const TPZeroFunctional &tpzf) |
Assignment operator. More... | |
double | operator() (double p) |
The function objects operator() definition which is used by a Brents::zeroIn(...) function to find the value of the ray parameter p that gives a source to receiver distance of tpzD. More... | |
void | setTurningZero () |
Sets the turning zero for the operator() function (tpzIsTurningZero is set to true). More... | |
bool | isTurningZero () |
Returns true if the turning zero is set for return by the operator() function (tpzIsTurningZero is true). More... | |
double | getTurningZero () |
Returns the turning leg zero evaluation from the last distance() function evaluation. More... | |
bool | isTurningRayValid () |
Returns true if the turning ray, receiver, and source legs are valid in the last distance() function call evaluation. More... | |
void | setUpGoingZero () |
Sets the upgoing zero for the operator() function (tpzIsTurningZero is set to false). More... | |
bool | isUpGoingZero () |
Returns true if the upgoing zero is set for return by the operator() function (tpzIsTurningZero is false). More... | |
double | getUpGoingZero () |
Returns the upgoing leg zero evaluation from the last distance() function evaluation. More... | |
bool | isUpGoingRayValid () |
Returns true if the upgoing receiver and source legs are valid in the last distance() function call evaluation. More... | |
double | getMinP () |
Returns the minimum allowable ray parameter for a ray to transfer between the source and receiver depths. More... | |
void | setTauPSite (TauPSite *tps) |
Sets the TauPSite. More... | |
TauPSite & | getTauPSite () |
Gets the TauPSite. More... | |
void | setPlanetRadius (double pr) |
Sets the planet radius (default to Earth = 6371.0 km) More... | |
double | getPlanetRadius () const |
Returns the planet radius (default to Earth = 6371.0 km) More... | |
void | setSourceRadius (double r) |
Sets the source radius and sign. More... | |
double | getSourceRadius () const |
Returns the source radius. More... | |
void | setSourceDepth (double d) |
Sets the source radius and sign from the input depth. More... | |
double | getSourceDepth () const |
Returns the source depth. More... | |
void | setReceiverRadius (double r) |
Sets the receiver radius and sign. More... | |
double | getReceiverRadius () const |
Returns the receiver radius. More... | |
void | setReceiverDepth (double d) |
Sets the receiver radius and sign from the input depth. More... | |
double | getReceiverDepth () const |
Returns the receiver depth. More... | |
void | setDist (double d) |
Sets the search distance between the source and receiver. More... | |
double | getDist () const |
Sets the search distance between the source and receiver. More... | |
void | setPTop (double p) |
Sets the layer top ray parameter p for the current search layer. More... | |
double | getPTop () const |
Gets the layer top ray parameter p for the current search layer. More... | |
void | distance (double p) |
The primary function of this object which calculates the ray travel distance between the source and the receiver positions as a function of the input ray parameter p. The entire surface-to-surface ray leg is evaluated in addition to the surface-to-source and surface-to-receiver legs. More... | |
double | time (double p) |
Calculates the travel time between the source and receiver for the current layer at the zero in ray parameter value p. This function is only called once the zero in functional determines the critical ray parameter that gives a source to receiver distance equal to tpzD. More... | |
double | getRayDistance () const |
Returns the surface-to-surface ray distance. More... | |
double | getRayTime () const |
Returns the surface-to-surface ray time. More... | |
double | getSourceLegDistance () const |
Returns the surface-to-source ray distance. More... | |
double | getSourceLegTime () const |
Returns the surface-to-source ray time. More... | |
double | getReceiverLegDistance () const |
Returns the surface-to-receiver ray distance. More... | |
double | getReceiverLegTime () const |
Returns the surface-to-receiver ray time. More... | |
int | getSourceLayerId () const |
Return the layer containing the source position. More... | |
int | getReceiverLayerId () const |
Return the layer containing the receiver position. More... | |
int | getRadiusLayerId (double r) const |
Return the layer containing the input radius r. More... | |
The primary layer search functional used by Brents zeroIn(...) function to find layers that contain a turning ray whose distance matches the distance between the source and receiver.
The objects operator()(double p) function finds the zero-in value at the input ray parameter p from
zero-in functional = tpzD - 2.0 * tpzRayLegDist + tpzRSrcSgn * tpzSrcLegDist + tpzRRcvrSgn * tpzRcvrLegDist;
for a bottoming ray or
zero-in functional = tpzd - tpzRSrcSgn * tpzSrcLegDist - tpzRRcvrSgn * tpzRcvrLegDist;
for an upgoing or downgoing ray.
where
tpzD = The input distance between source and receiver, tpzRayLegDist = 1/2 the integrated distance from planet surface to planet surface at the input ray parameter, tpzSrcLegDist = The integrated distance from planet surface to the source depth at the input ray parameter, tpzRcvrLegDist = The integrated distance from planet surface to the receiver depth at the input ray parameter, tpzRSrcSgn = The sign (+-1.0) of the source (-1.0 if the source is elevated above the planet surface). tpzRRcvrSgn = The sign (+-1.0) of the receiver (-1.0 if the receiver is elevated above the planet surface).
This function is called in TauPSite::calculateTravelTimes(...) to evaluate each layer as a possible solution for the input source to receiver distance tpzD.
Definition at line 150 of file TauPSiteFunctionals.h.
|
inline |
Default constructor.
Definition at line 157 of file TauPSiteFunctionals.h.
|
inline |
Standard constructor. Assigns the TauPSite for this TPZeroFunctional.
Definition at line 169 of file TauPSiteFunctionals.h.
|
inline |
Copy constructor.
Definition at line 181 of file TauPSiteFunctionals.h.
|
inlinevirtual |
Destructor.
Definition at line 200 of file TauPSiteFunctionals.h.
void taup::TPZeroFunctional::distance | ( | double | p | ) |
The primary function of this object which calculates the ray travel distance between the source and the receiver positions as a function of the input ray parameter p. The entire surface-to-surface ray leg is evaluated in addition to the surface-to-source and surface-to-receiver legs.
|
inline |
Sets the search distance between the source and receiver.
Definition at line 413 of file TauPSiteFunctionals.h.
double taup::TPZeroFunctional::getMinP | ( | ) |
Returns the minimum allowable ray parameter for a ray to transfer between the source and receiver depths.
|
inline |
Returns the planet radius (default to Earth = 6371.0 km)
Definition at line 348 of file TauPSiteFunctionals.h.
|
inline |
Gets the layer top ray parameter p for the current search layer.
Definition at line 426 of file TauPSiteFunctionals.h.
int taup::TPZeroFunctional::getRadiusLayerId | ( | double | r | ) | const |
Return the layer containing the input radius r.
|
inline |
Returns the surface-to-surface ray distance.
Definition at line 446 of file TauPSiteFunctionals.h.
|
inline |
Returns the surface-to-surface ray time.
Definition at line 449 of file TauPSiteFunctionals.h.
|
inline |
Returns the receiver depth.
Definition at line 400 of file TauPSiteFunctionals.h.
|
inline |
Return the layer containing the receiver position.
Definition at line 470 of file TauPSiteFunctionals.h.
|
inline |
Returns the surface-to-receiver ray distance.
Definition at line 458 of file TauPSiteFunctionals.h.
|
inline |
Returns the surface-to-receiver ray time.
Definition at line 464 of file TauPSiteFunctionals.h.
|
inline |
Returns the receiver radius.
Definition at line 388 of file TauPSiteFunctionals.h.
|
inline |
Returns the source depth.
Definition at line 374 of file TauPSiteFunctionals.h.
|
inline |
Return the layer containing the source position.
Definition at line 467 of file TauPSiteFunctionals.h.
|
inline |
Returns the surface-to-source ray distance.
Definition at line 452 of file TauPSiteFunctionals.h.
|
inline |
Returns the surface-to-source ray time.
Definition at line 455 of file TauPSiteFunctionals.h.
|
inline |
Returns the source radius.
Definition at line 362 of file TauPSiteFunctionals.h.
|
inline |
Gets the TauPSite.
Definition at line 335 of file TauPSiteFunctionals.h.
|
inline |
Returns the turning leg zero evaluation from the last distance() function evaluation.
Definition at line 280 of file TauPSiteFunctionals.h.
|
inline |
Returns the upgoing leg zero evaluation from the last distance() function evaluation.
Definition at line 309 of file TauPSiteFunctionals.h.
|
inline |
Returns true if the turning ray, receiver, and source legs are valid in the last distance() function call evaluation.
Definition at line 288 of file TauPSiteFunctionals.h.
|
inline |
Returns true if the turning zero is set for return by the operator() function (tpzIsTurningZero is true).
Definition at line 273 of file TauPSiteFunctionals.h.
|
inline |
Returns true if the upgoing receiver and source legs are valid in the last distance() function call evaluation.
Definition at line 318 of file TauPSiteFunctionals.h.
|
inline |
Returns true if the upgoing zero is set for return by the operator() function (tpzIsTurningZero is false).
Definition at line 302 of file TauPSiteFunctionals.h.
|
inline |
The function objects operator() definition which is used by a Brents::zeroIn(...) function to find the value of the ray parameter p that gives a source to receiver distance of tpzD.
Definition at line 240 of file TauPSiteFunctionals.h.
|
inline |
Assignment operator.
Definition at line 205 of file TauPSiteFunctionals.h.
|
inline |
Sets the search distance between the source and receiver.
Definition at line 406 of file TauPSiteFunctionals.h.
|
inline |
Sets the planet radius (default to Earth = 6371.0 km)
Definition at line 341 of file TauPSiteFunctionals.h.
|
inline |
Sets the layer top ray parameter p for the current search layer.
Definition at line 419 of file TauPSiteFunctionals.h.
|
inline |
Sets the receiver radius and sign from the input depth.
Definition at line 394 of file TauPSiteFunctionals.h.
|
inline |
Sets the receiver radius and sign.
Definition at line 380 of file TauPSiteFunctionals.h.
|
inline |
Sets the source radius and sign from the input depth.
Definition at line 368 of file TauPSiteFunctionals.h.
|
inline |
Sets the source radius and sign.
Definition at line 354 of file TauPSiteFunctionals.h.
|
inline |
Sets the TauPSite.
Definition at line 328 of file TauPSiteFunctionals.h.
|
inline |
Sets the turning zero for the operator() function (tpzIsTurningZero is set to true).
Definition at line 266 of file TauPSiteFunctionals.h.
|
inline |
Sets the upgoing zero for the operator() function (tpzIsTurningZero is set to false).
Definition at line 295 of file TauPSiteFunctionals.h.
double taup::TPZeroFunctional::time | ( | double | p | ) |
Calculates the travel time between the source and receiver for the current layer at the zero in ray parameter value p. This function is only called once the zero in functional determines the critical ray parameter that gives a source to receiver distance equal to tpzD.