RSTT  3.2.0
Regional Seismic Travel Time
All Classes Namespaces Files Functions Variables Typedefs Friends Macros
slbm::SlbmInterface Class Reference

The primary interface to the SLBM library, providing access to all supported functionality. More...

#include <SlbmInterface.h>

Inheritance diagram for slbm::SlbmInterface:
slbm::SlbmInterfaceToJNI

Public Member Functions

 SlbmInterface ()
 Default constructor. Instantiates an SlbmInterface object based on an ellipsoidal earth. More...
 
 SlbmInterface (const double &earthRadius)
 Parameterized constructor. Instantiates an SlbmInterface object that is only partly based on an ellipsoidal earth. More...
 
virtual ~SlbmInterface ()
 Destructor. More...
 
bool isEqual (SlbmInterface *other)
 Check if the model and/or greatCircle attached to the current SlbmInterface is equal that in another SlbmInterface. More...
 
bool operator== (SlbmInterface &other)
 
bool operator!= (SlbmInterface &other)
 
string getVersion ()
 Retrieve the SLBM Version number. More...
 
void loadVelocityModel (const string &modelPath)
 Load the velocity model into memory from the specified file or directory. This method automatically determines the format of the model. More...
 
void saveVelocityModel (const string &modelFileName, const int &format=4)
 Save the velocity model currently in memory to the specified file. More...
 
int getBufferSize () const
 Returns the size of a DataBuffer object required to store this SLBMInterface objects model data. More...
 
void setInterpolatorType (const string &interpolatorType)
 Specify the interpolation type to use, either 'linear' or 'natural_neighbor'. More...
 
string getInterpolatorType ()
 Retrieve the type of interpolator currently in use; either "LINEAR" or "NATUTAL_NEIGHBOR". More...
 
void createGreatCircle (const string &phase, const double &sourceLat, const double &sourceLon, const double &sourceDepth, const double &receiverLat, const double &receiverLon, const double &receiverDepth)
 Instantiate a new GreatCircle object between two locations. More...
 
void createGreatCircle (const int &phase, const double &sourceLat, const double &sourceLon, const double &sourceDepth, const double &receiverLat, const double &receiverLon, const double &receiverDepth)
 Instantiate a new GreatCircle object between two locations. More...
 
void clear ()
 Delete the current GreatCircle object from memory and clear the pool of stored CrustalProfile objects. The model Grid is not deleted and remains accessible. More...
 
bool isValid ()
 Returns true if the current GreatCirlce object has been instantiated and is ready to be interrogated. More...
 
string getPhase ()
 Retrieve the phase specified in last call to createGreatCircle(). More...
 
void getDistance (double &distance)
 Retrieve the source-receiver separation, in radians. More...
 
double getDistance ()
 Retrieve the source-receiver separation, in radians. More...
 
void getSourceDistance (double &dist)
 Retrieve horizontal offset below the source, in radians. More...
 
double getSourceDistance ()
 
void getReceiverDistance (double &dist)
 Retrieve horizontal offset below the receiver, in radians. More...
 
double getReceiverDistance ()
 
void getHeadwaveDistance (double &dist)
 Retrieve angular distance traveled by the ray below the headwave interface, in radians. More...
 
double getHeadwaveDistance ()
 
void getHeadwaveDistanceKm (double &dist)
 Retrieve horizontal distance traveled by the ray below the headwave interface, in radians. More...
 
double getHeadwaveDistanceKm ()
 
void getTravelTime (double &travelTime)
 Retrieve the total travel time for the GreatCircle, in seconds. More...
 
double getTravelTime ()
 
void getTravelTimeComponents (double &tTotal, double &tSource, double &tReceiver, double &tHeadwave, double &tGradient)
 Retrieve the total travel time and the 4 components that contribute to it for the current GreatCircle. More...
 
void getSlowness (double &slowness)
 Retrieve the horizontal slowness, i.e., the derivative of travel time wrt to receiver-source distance, in seconds/radian. More...
 
double getSlowness ()
 
void get_dtt_ddist (double &slowness)
 Retrieve the horizontal slowness, i.e., the derivative of travel time wrt to receiver-source distance, in seconds/radian. More...
 
double get_dtt_ddist ()
 
void get_dtt_dlat (double &dtt_dlat)
 Retrieve the derivative of travel time wrt to source latitude, in seconds/radian. More...
 
double get_dtt_dlat ()
 
void get_dtt_dlon (double &dtt_dlon)
 Retrieve the derivative of travel time wrt to source longitude, in seconds/radian. More...
 
double get_dtt_dlon ()
 
void get_dtt_ddepth (double &dtt_ddepth)
 Retrieve the derivative of travel time wrt to source depth, in seconds/km. More...
 
double get_dtt_ddepth ()
 
void getWeights (int nodeId[], double weight[], int &nWeights)
 Retrieve the weight assigned to each grid node that was touched by the GreatCircle. More...
 
void getActiveNodeWeights (int nodeId[], double weight[], int &nWeights)
 Retrieve the weight assigned to each active node that was touched by the GreatCircle. More...
 
void getWeights (vector< int > &nodeId, vector< double > &weight)
 Retrieve the weight assigned to each grid node that was touched by the GreatCircle. More...
 
void getActiveNodeWeights (vector< int > &nodeId, vector< double > &weight)
 Retrieve the weight assigned to each active node that was touched by the GreatCircle. More...
 
void getWeightsSource (int nodeids[], double weights[], int &nWeights)
 Retrieve the node IDs and the interpolation coefficients for the source CrustalProfile. More...
 
void getWeightsSource (vector< int > &nodeids, vector< double > &weights)
 
void getActiveNodeWeightsSource (int nodeids[], double weights[], int &nWeights)
 Retrieve the active node IDs and the interpolation coefficients for the source CrustalProfile. More...
 
void getActiveNodeWeightsSource (vector< int > &nodeids, vector< double > &weights)
 
void getWeightsReceiver (int nodeids[], double weights[], int &nWeights)
 Retrieve the node IDs and the interpolation coefficients for the receiver CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable but less than 10. The sum of the weights will equal 1. More...
 
void getWeightsReceiver (vector< int > &nodeids, vector< double > &weights)
 
void getActiveNodeWeightsReceiver (int nodeids[], double weights[], int &nWeights)
 Retrieve the active node IDs and the interpolation coefficients for the receiver CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable but less than 10. The sum of the weights will equal 1. More...
 
void getActiveNodeWeightsReceiver (vector< int > &nodeids, vector< double > &weights)
 
string toString (const int &verbosity)
 Returns a human-readable string representation of the GreatCircle object. More...
 
void getNGridNodes (int &n)
 Retrieve the number of Grid nodes in the Earth model. More...
 
int getNGridNodes ()
 Retrieve the number of Grid nodes in the Earth model. More...
 
void getNHeadWavePoints (int &nHeadWavePoints)
 Retrieve the number of LayerProfile objects positioned along the head wave interface. More...
 
int getNHeadWavePoints ()
 
void getGridData (const int &nodeId, double &latitude, double &longitude, double depth[NLAYERS], double pvelocity[NLAYERS], double svelocity[NLAYERS], double gradient[2])
 Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (km/sec) and P and S mantle gradient (1/sec) information associated with a specified node in the velocity grid. More...
 
void getActiveNodeData (const int &nodeId, double &latitude, double &longitude, double depth[NLAYERS], double pvelocity[NLAYERS], double svelocity[NLAYERS], double gradient[2])
 Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (km/sec) and P and S mantle gradient (1/sec) information associated with a specified active node in the velocity grid. More...
 
void setGridData (const int &nodeId, double depths[NLAYERS], double pvelocity[NLAYERS], double svelocity[NLAYERS], double gradient[2])
 Modify the velocity and gradient information associated with a specified node in the Grid. More...
 
void setActiveNodeData (const int &nodeId, double depths[NLAYERS], double pvelocity[NLAYERS], double svelocity[NLAYERS], double gradient[2])
 Modify the depth, velocity and gradient information associated with a specified active node in the Grid. More...
 
void getGreatCircleData (string &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. More...
 
void getGreatCircleData (string &phase, double &actual_path_increment, vector< double > &sourceDepth, vector< double > &sourceVelocity, vector< double > &receiverDepth, vector< double > &receiverVelocity, int &npoints, vector< double > &headWaveVelocity, vector< double > &gradient)
 
void getGreatCircleLocations (double lat[], double lon[], double depth[], int &npoints)
 Retrieve the latitudes, longitudes and depths of all the profile positions along the headwave interface. More...
 
void getGreatCircleLocations (vector< double > &lat, vector< double > &lon, vector< double > &depth)
 
void getGreatCircleNodeInfo (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. More...
 
void getGreatCircleNodeInfo (vector< vector< int > > &neighbors, vector< vector< double > > &coefficients)
 
void getInterpolatedPoint (const double &lat, const double &lon, int *nodeIds, double *coefficients, int &nWeights, double depth[NLAYERS], double pvelocity[NLAYERS], double svelocity[NLAYERS], double &pgradient, double &sgradient)
 Retrieve interpolated data from the earth model at a single specified latitude, longitude. More...
 
void getInterpolatedPoint (const double &lat, const double &lon, vector< int > &nodeId, vector< double > &coefficients, vector< double > &depth, vector< double > &pvelocity, vector< double > &svelocity, double &pgradient, double &sgradient)
 Retrieve interpolated data from the earth model at a single specified latitude, longitude. More...
 
void getInterpolatedTransect (double lat[], double lon[], const int &nLatLon, int **neighbors, double **coefficients, int *nNeighbors, double depth[][NLAYERS], double pvelocity[][NLAYERS], double svelocity[][NLAYERS], double pgradient[NLAYERS], double sgradient[NLAYERS], int &nInvalid)
 Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude. More...
 
void getInterpolatedTransect (vector< double > lat, vector< double > lon, vector< vector< int > > &nodeId, vector< vector< double > > &coefficients, vector< vector< double > > &depth, vector< vector< double > > &pvelocity, vector< vector< double > > &svelocity, vector< double > &pgradient, vector< double > &sgradient, int &nInvalid)
 Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude. More...
 
void initializeActiveNodes (const double &latmin, const double &lonmin, const double &latmax, const double &lonmax)
 Specify the latitude and longitude range in radians for active nodes. More...
 
void initializeActiveNodes (const string &polygonFileName)
 Specify the name of a file that contains a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes. More...
 
void initializeActiveNodes (GeoTessPolygon *polygon)
 Specify a polygon that enclose the set of grid nodes that are to be considered active nodes. More...
 
void initializeActiveNodes (double *lat, double *lon, const int &npoints, const bool &inDegrees=true)
 Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes. More...
 
void initializeActiveNodes (const vector< double > lat, const vector< double > lon, const bool &inDegrees=true)
 Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes. More...
 
void initializeActiveNodes (vector< double * > &unitVectors)
 Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes. More...
 
int getNActiveNodes ()
 Retrieve the number of active nodes in the Grid. More...
 
void clearActiveNodes ()
 Clear all active nodes. Clear all active nodes. More...
 
int getGridNodeId (int activeNodeId)
 Retrieve the grid node ID that corresponds to a specified active node ID. More...
 
int getActiveNodeId (int gridNodeId)
 Retrieve the active node ID that corresponds to a specified grid node ID. More...
 
void getNodeHitCount (const int &nodeId, int &hitCount)
 Retrieve the number of times that the specified node has been 'touched' by a GreatCircle object. More...
 
int getNodeHitCount (const int &nodeId)
 
void clearNodeHitCount ()
 Clear the node hit count by setting the hit count of every node to zero. More...
 
void getNodeNeighbors (const int &nid, int neighbors[], int &nNeighbors)
 Retrieve the node IDs of the nodes that surround the specified node. More...
 
void getActiveNodeNeighbors (const int &nid, int neighbors[], int &nNeighbors)
 Retrieve the active node IDs of the nodes that surround the specified active node. More...
 
void getNodeNeighbors (const int &nid, vector< int > &neighbors)
 Retrieve the node IDs of the nodes that surround the specified node. More...
 
void getActiveNodeNeighbors (const int &nid, vector< int > &neighbors)
 Retrieve active the node IDs of the active nodes that surround the specified active node. More...
 
void getNodeNeighborInfo (const int &nid, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
 Retrieve the node IDs of the nodes that surround the specified node. More...
 
void getNodeNeighborInfo (const int nid, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
 
void getActiveNodeNeighborInfo (const int &nid, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
 Retrieve the active node IDs of the nodes that surround the specified node. More...
 
void getActiveNodeNeighborInfo (const int &nid, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
 Retrieve the active node IDs of the nodes that surround the specified node. More...
 
void getNodeSeparation (const int &node1, const int &node2, double &distance)
 Retrieve the angular separation of two grid nodes, in radians. More...
 
void getNodeAzimuth (const int &node1, const int &node2, double &azimuth)
 Retrieve the azimuth from grid node1 to grid node2, radians. More...
 
GreatCirclegetGreatCircleObject ()
 Retrieve a pointer to the GreatCircle object. More...
 
GridgetGridObject ()
 Retrieve a pointer to the Grid object. More...
 
GeoTessModelSLBMgetModelObject ()
 Retrieve a pointer to the GeoTessModelSLBM object. More...
 
void getTravelTimeUncertainty (const int &phase, const double &distance, double &uncert)
 Retrieve the travel time uncertainty in sec for specified phase, distance (in radians). More...
 
void getTravelTimeUncertainty (double &travelTimeUncertainty, bool calcRandomError=false)
 Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle(). More...
 
void getTravelTimeUncertainty1D (double &travelTimeUncertainty)
 Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle(). More...
 
void getSlownessUncertainty (const int &phase, const double &distance, double &uncert)
 Retrieve the slowness uncertainty in sec/radian for specified phase, distance (in radians). More...
 
void getSlownessUncertainty (double &slownessUncertainty)
 Retrieve uncertainty of the horizontal slowness, in seconds/radian using the phase and distance specified in last call to getGreatCircle(). More...
 
string getUncertaintyTable (const int &phase, const int &attribute)
 
string getUncertaintyFileFormat (const int &phase, const int &attribute)
 
void getZhaoParameters (double &Vm, double &Gm, double &H, double &C, double &Cm, int &udSign)
 Retrieve some of the parameters that contribute to the calculation of of total travel time using the Zhao algorithm. More...
 
void getPgLgComponents (double &tTotal, double &tTaup, double &tHeadwave, double &pTaup, double &pHeadwave, double &trTaup, double &trHeadwave)
 Retrieve information about Pg/Lg travel time calculations. More...
 
void getAverageMantleVelocity (const int &type, double &velocity)
 Retrieve the average P or S wave mantle velocity that is specified in the model input file, in km/sec. More...
 
double getAverageMantleVelocity (const int &type)
 
void setAverageMantleVelocity (const int &type, const double &velocity)
 Set the average P or S wave mantle velocity that is recorded in the model input file, in km/sec. More...
 
void getTessId (string &tessId)
 Retrieve the tessellation ID of the model currently in memory. More...
 
string getTessId ()
 
void getFractionActive (double &fractionActive)
 Retrieve the fraction of the path length of the current GreatCircle object that is within the currently defined active region. More...
 
double getFractionActive ()
 
string getClassCount ()
 Retrieve a table that lists the number of instances of various SLBM classes that are currently instantiated. More...
 
const string & getModelPath () const
 A string containing the path to the SLBM model. More...
 
void getDistAz (const double &aLat, const double &aLon, const double &bLat, const double &bLon, double &distance, double &azimuth, const double &naValue)
 compute distance and azimuth between two points, A and B (all quantities are in radians). More...
 
void movePoint (const double &aLat, const double &aLon, const double &distance, const double &azimuth, double &bLat, double &bLon)
 Find point B that is the specified distance and azimuth from point A, in radians. More...
 
void getPiercePointSource (double &lat, double &lon, double &depth)
 Retrieve the latitude and longitude of the moho pierce point below the source, in radians. More...
 
void getPiercePointReceiver (double &lat, double &lon, double &depth)
 Retrieve the latitude and longitude of the moho pierce point below the receiver, in radians. More...
 
void getGreatCirclePoints (const double &aLat, const double &aLon, const double &bLat, const double &bLon, const int &npoints, double latitude[], double longitude[])
 Retrieve an array of lat, lon points along a great circle path between two specified points, a and b. More...
 
void getGreatCirclePoints (const double &aLat, const double &aLon, const double &bLat, const double &bLon, const int &npoints, vector< double > &latitude, vector< double > &longitude)
 
void getGreatCirclePointsOnCenters (const double &aLat, const double &aLon, const double &bLat, const double &bLon, const int &npoints, double latitude[], double longitude[])
 Retrieve an array of lat, lon points along a great circle path between two specified points, a and b. More...
 
void getGreatCirclePointsOnCenters (const double &aLat, const double &aLon, const double &bLat, const double &bLon, const int &npoints, vector< double > &latitude, vector< double > &longitude)
 
void setDelDistance (const double &del_distance)
 Change the value of step change in distance used to compute horizontal derivatives(in radians). More...
 
void getDelDistance (double &del_distance)
 Retrieve the value of step change in distance used to compute horizontal derivatives (radians) More...
 
double getDelDistance ()
 
void setDelDepth (const double &del_depth)
 Change the value of step change in depth used to compute depth derivatives (km) More...
 
void getDelDepth (double &del_depth)
 Retrieve the value of step change in depth used to compute depth derivatives (km) More...
 
double getDelDepth ()
 
void getRayParameter (double &ray_parameter)
 Retrieve the ray parameter. More...
 
double getRayParameter ()
 
void getTurningRadius (double &turning_radius)
 Retrieve the turning radius of the ray. More...
 
double getTurningRadius ()
 
void setPathIncrement (const double &pathIncrement)
 Set the desired spacing of great circle nodes along the head wave interface, in radians. More...
 
void getPathIncrement (double &pathIncrement)
 Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians. More...
 
double getPathIncrement ()
 Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians. More...
 
string getModelString ()
 
double getSrcLat ()
 getter for read-only attributes property getter for read-only attributes property More...
 
double getSrcLon ()
 getter for read-only attributes property getter for read-only attributes property More...
 
double getSrcDep ()
 getter for read-only attributes property getter for read-only attributes property More...
 
double getRcvLat ()
 getter for read-only attributes property getter for read-only attributes property More...
 
double getRcvLon ()
 getter for read-only attributes property getter for read-only attributes property More...
 
double getRcvDep ()
 getter for read-only attributes property getter for read-only attributes property More...
 

Static Public Member Functions

static bool modelsEqual (const string modelPath1, const string modelPath2)
 Check if two models are equal. More...
 
static void setCHMax (const double &chMax)
 Set the value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception. More...
 
static void getCHMax (double &chMax)
 Retrieve the current value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception. More...
 
static double getCHMax ()
 
static void setMaxDistance (const double &maxDistance)
 Set the maximum source-receiver separation for Pn/Sn phase, in radians. More...
 
static void getMaxDistance (double &maxDistance)
 Retrieve the current value for the maximum source-receiver separation, in radians. More...
 
static double getMaxDistance ()
 
static void setMaxDepth (const double &maxDepth)
 Set the maximum source depth for Pn/Sn phase, in km. More...
 
static void getMaxDepth (double &maxDepth)
 Retrieve the current value for the maximum source depth, in km. More...
 
static double getMaxDepth ()
 

Protected Member Functions

void clearGreatCircles ()
 

Protected Attributes

Gridgrid
 The Grid object that stores the velocity model. More...
 
GreatCirclegreatCircle
 The most recently requested GreatCircle object. More...
 
bool valid
 true if the current GreatCirlce object has been instantiated and is ready to be interrogated. More...
 

Static Protected Attributes

static double CH_MAX
 

Detailed Description

The primary interface to the SLBM library, providing access to all supported functionality.

The primary interface to the SLBM library, providing access to all supported functionality.

SlbmInterface maintains a Grid object which is loaded into memory with the loadVelocityModel() method. This Grid object remains in memory until the SlbmInterface destructor is called.

SlbmInterface also maintains a single instance of a GreatCircle object which is instantiated with a call to createGreatCircle(). Once instantiated, many SlbmInterface methods can retrieve information from it, such as getTravelTime(), getTravelTimeComponents(), getWeights(), and more. Once instantiated, the GreatCircle can be interrogated until it is replaced with another GreatCircle by a subsequent call to createGreatCircle(), or is deleted by clear().

Definition at line 76 of file SlbmInterface.h.

Constructor & Destructor Documentation

◆ SlbmInterface() [1/2]

slbm::SlbmInterface::SlbmInterface ( )

Default constructor. Instantiates an SlbmInterface object based on an ellipsoidal earth.

Default constructor. Instantiates an SlbmInterface object based on an ellipsoidal earth. Geographic latitudes are converted to geocentric latitudes, and the radius of the Earth varies as a function of latitude.

◆ SlbmInterface() [2/2]

slbm::SlbmInterface::SlbmInterface ( const double &  earthRadius)

Parameterized constructor. Instantiates an SlbmInterface object that is only partly based on an ellipsoidal earth.

Parameterized constructor. Instantiates an SlbmInterface object that is only partly based on an ellipsoidal earth. Geographic latitudes are converted to geocentric latitudes, but the radius of the Earth is considered a constant independent of latitude.

Parameters
earthRadiusthe constant radius of the earth in km.

◆ ~SlbmInterface()

virtual slbm::SlbmInterface::~SlbmInterface ( )
virtual

Destructor.

Destructor. Deletes the GreatCircle object and the Grid object.

Member Function Documentation

◆ clear()

void slbm::SlbmInterface::clear ( )

Delete the current GreatCircle object from memory and clear the pool of stored CrustalProfile objects. The model Grid is not deleted and remains accessible.

Delete the current GreatCircle object from memory and clear the pool of stored CrustalProfile objects. The model Grid is not deleted and remains accessible.

The Grid object owned by SlbmInterface stores a vector of map objects which associates the phase and Location of a CrustalProfile object with a pointer to the instance of the CrustalProfile. When createGreatCircle() is called with a latitude, longitude and depth which has been used before, the Grid object will return a pointer to the existing CrustalProfile object, thereby enhancing performance. This vector of maps is cleared when SlbmInterface::clear() is called. The implications of all this is that applications that loop over many calls to createGreatCircle() will see a performance improvement if clear() is not called within the loop. However, for problems with a huge number of sources and or receivers, if memory becomes an issue, applications could call clear() within the loop to save memory.

◆ clearActiveNodes()

void slbm::SlbmInterface::clearActiveNodes ( )
inline

Clear all active nodes. Clear all active nodes.

Definition at line 3076 of file SlbmInterface.h.

◆ clearGreatCircles()

void slbm::SlbmInterface::clearGreatCircles ( )
protected

deletes current greatCircle object and sets ttHminus, ttHplus, ttZplus and ttHZplus equal to NA_VALUE.

◆ clearNodeHitCount()

void slbm::SlbmInterface::clearNodeHitCount ( )
inline

Clear the node hit count by setting the hit count of every node to zero.

Clear the node hit count by setting the hit count of every node to zero.

Definition at line 3138 of file SlbmInterface.h.

◆ createGreatCircle() [1/2]

void slbm::SlbmInterface::createGreatCircle ( const int &  phase,
const double &  sourceLat,
const double &  sourceLon,
const double &  sourceDepth,
const double &  receiverLat,
const double &  receiverLon,
const double &  receiverDepth 
)

Instantiate a new GreatCircle object between two locations.

Instantiate a new GreatCircle object between two locations.

Parameters
phasethe phase that this GreatCircle is to support. Recognized phases are Pn, Sn, Pg and Lg.
sourceLatthe geographic latitude of the source in radians.
sourceLonthe longitude of source in radians.
sourceDepththe depth of the source in km.
receiverLatthe geographic latitude of the receiver in radians.
receiverLonthe longitude of the receiver in radians.
receiverDepththe depth of the receiver in km.

◆ createGreatCircle() [2/2]

void slbm::SlbmInterface::createGreatCircle ( const string &  phase,
const double &  sourceLat,
const double &  sourceLon,
const double &  sourceDepth,
const double &  receiverLat,
const double &  receiverLon,
const double &  receiverDepth 
)
inline

Instantiate a new GreatCircle object between two locations.

Instantiate a new GreatCircle object between two locations.

Parameters
phasethe phase that this GreatCircle is to support. Recognized phases are Pn, Sn, Pg and Lg.
sourceLatthe geographic latitude of the source in radians.
sourceLonthe longitude of source in radians.
sourceDepththe depth of the source in km.
receiverLatthe geographic latitude of the receiver in radians.
receiverLonthe longitude of the receiver in radians.
receiverDepththe depth of the receiver in km.

Definition at line 1863 of file SlbmInterface.h.

◆ get_dtt_ddepth() [1/2]

double slbm::SlbmInterface::get_dtt_ddepth ( )
inline

Definition at line 492 of file SlbmInterface.h.

◆ get_dtt_ddepth() [2/2]

void slbm::SlbmInterface::get_dtt_ddepth ( double &  dtt_ddepth)
inline

Retrieve the derivative of travel time wrt to source depth, in seconds/km.

Retrieve the derivative of travel time wrt to source depth, in seconds/km.

Parameters
dtt_ddepththe derivative of travel time wrt to source depth.

Definition at line 1929 of file SlbmInterface.h.

◆ get_dtt_ddist() [1/2]

double slbm::SlbmInterface::get_dtt_ddist ( )
inline

Definition at line 465 of file SlbmInterface.h.

◆ get_dtt_ddist() [2/2]

void slbm::SlbmInterface::get_dtt_ddist ( double &  slowness)
inline

Retrieve the horizontal slowness, i.e., the derivative of travel time wrt to receiver-source distance, in seconds/radian.

Retrieve the horizontal slowness, in seconds/radian.

Parameters
slownessthe derivative of travel time wrt to source latitude.

Definition at line 464 of file SlbmInterface.h.

◆ get_dtt_dlat() [1/2]

double slbm::SlbmInterface::get_dtt_dlat ( )
inline

Definition at line 474 of file SlbmInterface.h.

◆ get_dtt_dlat() [2/2]

void slbm::SlbmInterface::get_dtt_dlat ( double &  dtt_dlat)
inline

Retrieve the derivative of travel time wrt to source latitude, in seconds/radian.

Retrieve the derivative of travel time wrt to source latitude, in seconds/radian.

Parameters
dtt_dlatthe derivative of travel time wrt to source latitude.

Definition at line 1899 of file SlbmInterface.h.

◆ get_dtt_dlon() [1/2]

double slbm::SlbmInterface::get_dtt_dlon ( )
inline

Definition at line 483 of file SlbmInterface.h.

◆ get_dtt_dlon() [2/2]

void slbm::SlbmInterface::get_dtt_dlon ( double &  dtt_dlon)
inline

Retrieve the derivative of travel time wrt to source longitude, in seconds/radian.

Retrieve the derivative of travel time wrt to source longitude, in seconds/radian.

Parameters
dtt_dlonthe derivative of travel time wrt to source longitude.

Definition at line 1914 of file SlbmInterface.h.

◆ getActiveNodeData()

void slbm::SlbmInterface::getActiveNodeData ( const int &  nodeId,
double &  latitude,
double &  longitude,
double  depth[NLAYERS],
double  pvelocity[NLAYERS],
double  svelocity[NLAYERS],
double  gradient[2] 
)

Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (km/sec) and P and S mantle gradient (1/sec) information associated with a specified active node in the velocity grid.

Retrieve the interface depth, velocity and gradient information associated with a specified active node in the velocity grid.

Parameters
nodeIdthe active node ID of the grid point in the model (zero based index).
latitudethe latitude of the grid node in radians.
longitudethe longitude of the grid node in radians.
depththe depths of all the model interfaces, in km.
pvelocityan array containing the P velocities of all the intervals at the specified grid node, in km/sec.
svelocityan array containing the S velocities of all the intervals at the specified grid node, in km/sec.
gradienta 2-element array containing the P and S velocity gradients in the mantle, in 1/sec.

◆ getActiveNodeId()

int slbm::SlbmInterface::getActiveNodeId ( int  gridNodeId)
inline

Retrieve the active node ID that corresponds to a specified grid node ID.

Retrieve the active node ID that corresponds to a specified grid node ID.

Definition at line 3110 of file SlbmInterface.h.

◆ getActiveNodeNeighborInfo() [1/2]

void slbm::SlbmInterface::getActiveNodeNeighborInfo ( const int &  nid,
int  neighbors[],
double  distance[],
double  azimuth[],
int &  nNeighbors 
)
inline

Retrieve the active node IDs of the nodes that surround the specified node.

Retrieve the active node IDs of the nodes that surround the specified node.

The caller must supply int array neighbors which is dimensioned large enough to hold the maximum number of neighbors that a node can have, which is 8. The actual number of neighbors is returned in nNeighbors.

Definition at line 2949 of file SlbmInterface.h.

◆ getActiveNodeNeighborInfo() [2/2]

void slbm::SlbmInterface::getActiveNodeNeighborInfo ( const int &  nid,
vector< int > &  neighbors,
vector< double > &  distance,
vector< double > &  azimuth 
)
inline

Retrieve the active node IDs of the nodes that surround the specified node.

Retrieve the active node IDs of the nodes that surround the specified node.

The caller must supply int array neighbors which is dimensioned large enough to hold the maximum number of neighbors that a node can have, which is 8. The actual number of neighbors is returned in nNeighbors.

Definition at line 2964 of file SlbmInterface.h.

◆ getActiveNodeNeighbors() [1/2]

void slbm::SlbmInterface::getActiveNodeNeighbors ( const int &  nid,
int  neighbors[],
int &  nNeighbors 
)
inline

Retrieve the active node IDs of the nodes that surround the specified active node.

Retrieve the active node IDs of the active nodes that surround the specified active node.

The caller must supply int array neighbors which is dimensioned large enough to hold the maximum number of neighbors that a node can have, which is 8. The actual number of neighbors is returned in nNeighbors.

Definition at line 2877 of file SlbmInterface.h.

◆ getActiveNodeNeighbors() [2/2]

void slbm::SlbmInterface::getActiveNodeNeighbors ( const int &  nid,
vector< int > &  neighbors 
)
inline

Retrieve active the node IDs of the active nodes that surround the specified active node.

Retrieve the active node IDs of the active nodes that surround the specified active node.

Definition at line 2905 of file SlbmInterface.h.

◆ getActiveNodeWeights() [1/2]

void slbm::SlbmInterface::getActiveNodeWeights ( int  nodeId[],
double  weight[],
int &  nWeights 
)
inline

Retrieve the weight assigned to each active node that was touched by the GreatCircle.

Retrieve the weight assigned to each active node that was touched by the GreatCircle.

A map which associates an instance of a GridProfile object with a double weight is initialized. Then every LayerProfile on the head wave interface between the source and receiver is visited and the angular distance, d, that the ray traveled in the horizontal segment is retrieved. If d > 0, then the neighboring GridProfile objects that contributed to the interpolated value of the LayerProfile are visited. The product of d * R * C is added to the weight associated with that GridProfile object, where R is the radius of the head wave interface for the LayerProfile object being evaluated, and C is the interpolation coefficient for the GridProfile - LayerProfile pair under consideration. Then, all the GridProfile objects in the map are visited, the grid node IDs extracted into int array nodeId, and the weight extracted into double array weight.

Note: Only grid nodes touched by this GreatCircle are included in the output. Each grid node is included only once, even though more than one LayerProfile object may have contributed some weight to it. The sum of all the weights will equal the horizontal distance traveled by the ray along the head wave interface, from the source pierce point to the receiver pierce point, in km.

Parameters
nodeIdthe active node IDs of all the grid nodes touched by the current GreatCircle. These are active node ids, not grid node ids. If a grid node has weight but is not an active node, the nodeId will be -1.
weightthe weights of all the grid nodes touched by the current GreatCircle. Calling application must dimension this array large enough to handle any possible size.
nWeightsthe number of elements in nodeId and weight. Calling application must dimension this array large enough to handle any possible size.

Definition at line 2173 of file SlbmInterface.h.

◆ getActiveNodeWeights() [2/2]

void slbm::SlbmInterface::getActiveNodeWeights ( vector< int > &  nodeId,
vector< double > &  weight 
)
inline

Retrieve the weight assigned to each active node that was touched by the GreatCircle.

Retrieve the weight assigned to each active node that was touched by the GreatCircle.

A map which associates an instance of a GridProfile object with a double weight is initialized. Then every LayerProfile on the head wave interface between the source and receiver is visited and the angular distance, d, that the ray traveled in the horizontal segment is retrieved. If d > 0, then the neighboring GridProfile objects that contributed to the interpolated value of the LayerProfile are visited. The product of d * R * C is added to the weight associated with that GridProfile object, where R is the radius of the head wave interface for the LayerProfile object being evaluated, and C is the interpolation coefficient for the GridProfile - LayerProfile pair under consideration. Then, all the GridProfile objects in the map are visited, the grid node IDs extracted into int array nodeId, and the weight extracted into double array weight.

Note: Only grid nodes touched by this GreatCircle are included in the output. Each grid node is included only once, even though more than one LayerProfile object may have contributed some weight to it. The sum of all the weights will equal the horizontal distance traveled by the ray along the head wave interface, from the source pierce point to the receiver pierce point, in km.

Parameters
nodeIdthe active node IDs of all the grid nodes touched by the current GreatCircle.
weightthe weights of all the grid nodes touched by the current GreatCircle.

Definition at line 2196 of file SlbmInterface.h.

◆ getActiveNodeWeightsReceiver() [1/2]

void slbm::SlbmInterface::getActiveNodeWeightsReceiver ( int  nodeids[],
double  weights[],
int &  nWeights 
)
inline

Retrieve the active node IDs and the interpolation coefficients for the receiver CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable but less than 10. The sum of the weights will equal 1.

Parameters
nodeidsthe node indexes of the grid nodes involved in interpolation.
weightsthe weights associated with each nodeid
nWeightsthe number of nodeids and weights returned.

Definition at line 2277 of file SlbmInterface.h.

◆ getActiveNodeWeightsReceiver() [2/2]

void slbm::SlbmInterface::getActiveNodeWeightsReceiver ( vector< int > &  nodeids,
vector< double > &  weights 
)
inline

Definition at line 2284 of file SlbmInterface.h.

◆ getActiveNodeWeightsSource() [1/2]

void slbm::SlbmInterface::getActiveNodeWeightsSource ( int  nodeids[],
double  weights[],
int &  nWeights 
)
inline

Retrieve the active node IDs and the interpolation coefficients for the source CrustalProfile.

Retrieve the active node IDs and the interpolation coefficients for the source CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable but less than 10. The sum of the weights will equal 1.

Parameters
nodeidsthe node indexes of the grid nodes involved in interpolation.
weightsthe weights associated with each nodeid
nWeightsthe number of nodeids and weights returned.

Definition at line 2230 of file SlbmInterface.h.

◆ getActiveNodeWeightsSource() [2/2]

void slbm::SlbmInterface::getActiveNodeWeightsSource ( vector< int > &  nodeids,
vector< double > &  weights 
)
inline

Definition at line 2237 of file SlbmInterface.h.

◆ getAverageMantleVelocity() [1/2]

double slbm::SlbmInterface::getAverageMantleVelocity ( const int &  type)
inline

Definition at line 3166 of file SlbmInterface.h.

◆ getAverageMantleVelocity() [2/2]

void slbm::SlbmInterface::getAverageMantleVelocity ( const int &  type,
double &  velocity 
)
inline

Retrieve the average P or S wave mantle velocity that is specified in the model input file, in km/sec.

Retrieve the average P or S wave mantle velocity that is specified in the model input file. This value is used in the calculation of the Zhao c parameter.

Parameters
typespecify either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
velocitythe P or S wave velocity is returned in this parameter, in km/sec.

Definition at line 3152 of file SlbmInterface.h.

◆ getBufferSize()

int slbm::SlbmInterface::getBufferSize ( ) const

Returns the size of a DataBuffer object required to store this SLBMInterface objects model data.

Returns the size of a DataBuffer object required to store this SLBMInterface objects model data.

◆ getCHMax() [1/2]

static double slbm::SlbmInterface::getCHMax ( )
inlinestatic

Definition at line 1503 of file SlbmInterface.h.

◆ getCHMax() [2/2]

static void slbm::SlbmInterface::getCHMax ( double &  chMax)
static

Retrieve the current value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception.

Retrieve the current value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception. This call retrieves global parameter SLBMGlobals::CH_MAX

◆ getClassCount()

string slbm::SlbmInterface::getClassCount ( )
inline

Retrieve a table that lists the number of instances of various SLBM classes that are currently instantiated.

Retrieve a table that lists the number of instances of various SLBM classes that are currently instantiated. Very useful for debugging memory leaks.

Definition at line 3224 of file SlbmInterface.h.

◆ getDelDepth() [1/2]

double slbm::SlbmInterface::getDelDepth ( )
inline

Definition at line 1736 of file SlbmInterface.h.

◆ getDelDepth() [2/2]

void slbm::SlbmInterface::getDelDepth ( double &  del_depth)

Retrieve the value of step change in depth used to compute depth derivatives (km)

Retrieve the value of step change in depth used to compute

◆ getDelDistance() [1/2]

double slbm::SlbmInterface::getDelDistance ( )
inline

Definition at line 1722 of file SlbmInterface.h.

◆ getDelDistance() [2/2]

void slbm::SlbmInterface::getDelDistance ( double &  del_distance)

Retrieve the value of step change in distance used to compute horizontal derivatives (radians)

Retrieve the value of step change in distance used to compute horizontal derivatives (radians)

◆ getDistance() [1/2]

double slbm::SlbmInterface::getDistance ( )
inline

Retrieve the source-receiver separation, in radians.

Retrieve the source-receiver separation, in radians.

Returns
the source-receiver separation, in radians.

Definition at line 2049 of file SlbmInterface.h.

◆ getDistance() [2/2]

void slbm::SlbmInterface::getDistance ( double &  distance)
inline

Retrieve the source-receiver separation, in radians.

Retrieve the source-receiver separation, in radians.

Parameters
distancethe source-receiver separation is returned in distance.

Definition at line 366 of file SlbmInterface.h.

◆ getDistAz()

void slbm::SlbmInterface::getDistAz ( const double &  aLat,
const double &  aLon,
const double &  bLat,
const double &  bLon,
double &  distance,
double &  azimuth,
const double &  naValue 
)
inline

compute distance and azimuth between two points, A and B (all quantities are in radians).

compute distance and azimuth between two points, A and B (all quantities are in radians). Computed distance will range between 0 and PI and azimuth will range from -PI to PI. If distance is zero, or if A is located at north or south pole, azimuth will be set to naValue.

Parameters
aLatthe latitude of the first specified point, in radians.
aLonthe longitude of the first specified point, in radians.
bLatthe latitude of the second specified point, in radians.
bLonthe longitude of the second specified point, in radians.
distancefrom point A to point B, in radians.
azimuthfrom point A to point B, in radians.
naValuevalue to return if result is invalid.

Definition at line 3420 of file SlbmInterface.h.

◆ getFractionActive() [1/2]

double slbm::SlbmInterface::getFractionActive ( )
inline

Definition at line 1542 of file SlbmInterface.h.

◆ getFractionActive() [2/2]

void slbm::SlbmInterface::getFractionActive ( double &  fractionActive)
inline

Retrieve the fraction of the path length of the current GreatCircle object that is within the currently defined active region.

Retrieve the fraction of the path length of the current GreatCircle object that is within the currently defined active region.

Definition at line 3209 of file SlbmInterface.h.

◆ getGreatCircleData() [1/2]

void slbm::SlbmInterface::getGreatCircleData ( string &  phase,
double &  actual_path_increment,
double  sourceDepth[NLAYERS],
double  sourceVelocity[NLAYERS],
double  receiverDepth[NLAYERS],
double  receiverVelocity[NLAYERS],
int &  npoints,
double  headWaveVelocity[],
double  gradient[] 
)
inline

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.

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. The caller must supply all of the arrays required by this method and retains ownership of those arrays. This method assumes the arrays have been allocated with sufficient memory to hold the requested information and simply populates the supplied arrays.

Parameters
phasethe phase supported by the current GreatCircle. Will be one of Pn, Sn, Pg, Lg.
actual_path_incrementthe actual horizontal separation of the LayerProfile objects along the head wave interface, in radians.
sourceDeptha double array of length NLAYERS containing the depths of all the model interfaces below the source, in km.
sourceVelocitya double array of length NLAYERS containing the P or S velocity of each interval below the source, in km/sec.
receiverDeptha double array of length NLAYERS containing the depths of all the model interfaces below the receiver, in km.
receiverVelocitya double array of length NLAYERS containing the P or S velocity of each interval below the receiver, in km/sec.
npointsthe number of points along the headwave path where velocity and gradient values are interpolated.
headWaveVelocitya double array of length npoints containing the P or S velocity at the center of each horizontal segment between the source and the receiver, in km/sec. The first horizontal segment starts at the source, the last horizontal segment ends at the receiver, and each one is of size actual_path_increment. The head wave velocities are interpolated at the center of each of these horizontal segments, just below the head wave interface.
gradienta double array of length npoints containing the P or S velocity gradient in the mantle at the center of each horizontal segment of the head wave, in 1/sec. For Pg and Lg, the values will be SLBMGlobals::NA_VALUE.

Definition at line 2329 of file SlbmInterface.h.

◆ getGreatCircleData() [2/2]

void slbm::SlbmInterface::getGreatCircleData ( string &  phase,
double &  actual_path_increment,
vector< double > &  sourceDepth,
vector< double > &  sourceVelocity,
vector< double > &  receiverDepth,
vector< double > &  receiverVelocity,
int &  npoints,
vector< double > &  headWaveVelocity,
vector< double > &  gradient 
)
inline

Definition at line 2361 of file SlbmInterface.h.

◆ getGreatCircleLocations() [1/2]

void slbm::SlbmInterface::getGreatCircleLocations ( double  lat[],
double  lon[],
double  depth[],
int &  npoints 
)
inline

Retrieve the latitudes, longitudes and depths of all the profile positions along the headwave interface.

Retrieve the latitudes, longitudes and depths of all the profile positions along the headwave interface. Profile positions are located at the center of each segment of the head wave interface between the source and receiver. The first position is located actual_path_increment/2 radians from the source, the last profile position is located actual_path_increment/2 radians from the receiver, and the others are spaced actual_path_increment radians apart.

Parameters
latthe latitude at the center of each headwave segment, in radians.
lonthe longitude at the center of each headwave segment, in radians.
depththe depth of the headwave interface at the center of each headwave segment, in km.
npointsthe number of horizontal increments sampled along the head wave interface.

Definition at line 2441 of file SlbmInterface.h.

◆ getGreatCircleLocations() [2/2]

void slbm::SlbmInterface::getGreatCircleLocations ( vector< double > &  lat,
vector< double > &  lon,
vector< double > &  depth 
)
inline

Definition at line 2470 of file SlbmInterface.h.

◆ getGreatCircleNodeInfo() [1/2]

void slbm::SlbmInterface::getGreatCircleNodeInfo ( int **  neighbors,
double **  coefficients,
const int &  maxpoints,
const int &  maxnodes,
int &  npoints,
int *  nnodes 
)
inline

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.

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.

The caller must supply all of the array required by this method and retains ownership of those arrays. This method assumes the arrays have been allocated with sufficient memory to hold the requested information and simply populates the supplied arrays.

Parameters
neighborsa ragged 2D array of ints with dimensions npoints x nnodes containing the nodeIds of the neighboring grid nodes used to derive the interpolated data at each head wave profile.
coefficientsa ragged 2D array of doubles with dimensions npoints x nnodes containing the interpolation coefficients applied to each element of neighbors.
maxpointsthe maximum size of the first dimension of arrays neighbors and coefficients. If npoints exceeds this value, an exception is thrown. 200 is a good estimate.
maxnodesthe maximum size of the second dimension of arrays neighbors and coefficients. If any value of nnodes exceeds this value, an exception is thrown. 5 is a good estimate.
npointsthe number of horizontal increments sampled along the head wave interface.
nnodesan int array of length npoints containing the number of nodes that contributed to the interpolation of information at the center of each horizontal segment of the ray path.

Definition at line 2404 of file SlbmInterface.h.

◆ getGreatCircleNodeInfo() [2/2]

void slbm::SlbmInterface::getGreatCircleNodeInfo ( vector< vector< int > > &  neighbors,
vector< vector< double > > &  coefficients 
)
inline

Definition at line 2425 of file SlbmInterface.h.

◆ getGreatCircleObject()

GreatCircle * slbm::SlbmInterface::getGreatCircleObject ( )
inline

Retrieve a pointer to the GreatCircle object.

Retrieve a pointer to the GreatCircle object. This is not the recommended method for interacting with GreatCircle objects but will allow inquisitive applications direct access to all the public methods of GreatCircle and all the various objects accessible through it (CrustalProfile, LayerProfile, etc.). This method will not be available through any interfaces other than the c++ interface.

Definition at line 1894 of file SlbmInterface.h.

◆ getGreatCirclePoints() [1/2]

void slbm::SlbmInterface::getGreatCirclePoints ( const double &  aLat,
const double &  aLon,
const double &  bLat,
const double &  bLon,
const int &  npoints,
double  latitude[],
double  longitude[] 
)
inline

Retrieve an array of lat, lon points along a great circle path between two specified points, a and b.

Retrieve an array of lat, lon points along a great circle path between two specified points. The great circle path between a and b is divided into npoints-1 equal size cells and the computed points are located at the boundaries of those cells. First point will coincide with point a and last point with point b.

Parameters
aLatthe latitude of the first specified point, in radians.
aLonthe longitude of the first specified point, in radians.
bLatthe latitude of the second specified point, in radians.
bLonthe longitude of the second specified point, in radians.
npointsthe desired number of points along the great circle, in radians.
latitudethe latitudes of the points along the great circle, in radians.
longitudethe longitudes of the points along the great circle, in radians.

Definition at line 3322 of file SlbmInterface.h.

◆ getGreatCirclePoints() [2/2]

void slbm::SlbmInterface::getGreatCirclePoints ( const double &  aLat,
const double &  aLon,
const double &  bLat,
const double &  bLon,
const int &  npoints,
vector< double > &  latitude,
vector< double > &  longitude 
)
inline

Definition at line 3345 of file SlbmInterface.h.

◆ getGreatCirclePointsOnCenters() [1/2]

void slbm::SlbmInterface::getGreatCirclePointsOnCenters ( const double &  aLat,
const double &  aLon,
const double &  bLat,
const double &  bLon,
const int &  npoints,
double  latitude[],
double  longitude[] 
)
inline

Retrieve an array of lat, lon points along a great circle path between two specified points, a and b.

Retrieve an array of lat, lon points along a great circle path between two specified points. The great circle path between a and b is divided into npoints equal size cells and the computed points are located at the centers of those cells.

Parameters
aLatthe latitude of the first specified point, in radians.
aLonthe longitude of the first specified point, in radians.
bLatthe latitude of the second specified point, in radians.
bLonthe longitude of the second specified point, in radians.
npointsthe desired number of points along the great circle
latitudethe latitudes of the points along the great circle, in radians.
longitudethe longitudes of the points along the great circle, in radians.

Definition at line 3371 of file SlbmInterface.h.

◆ getGreatCirclePointsOnCenters() [2/2]

void slbm::SlbmInterface::getGreatCirclePointsOnCenters ( const double &  aLat,
const double &  aLon,
const double &  bLat,
const double &  bLon,
const int &  npoints,
vector< double > &  latitude,
vector< double > &  longitude 
)
inline

Definition at line 3394 of file SlbmInterface.h.

◆ getGridData()

void slbm::SlbmInterface::getGridData ( const int &  nodeId,
double &  latitude,
double &  longitude,
double  depth[NLAYERS],
double  pvelocity[NLAYERS],
double  svelocity[NLAYERS],
double  gradient[2] 
)

Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (km/sec) and P and S mantle gradient (1/sec) information associated with a specified node in the velocity grid.

Retrieve the interface depth, velocity and gradient information associated with a specified node in the velocity grid.

Parameters
nodeIdthe node ID of the grid point in the model (zero based index).
latitudethe latitude of the grid node in radians.
longitudethe longitude of the grid node in radians.
depththe depths of all the model interfaces, in km.
pvelocityan array containing the P velocities of all the intervals at the specified grid node, in km/sec.
svelocityan array containing the S velocities of all the intervals at the specified grid node, in km/sec.
gradienta 2-element array containing the P and S velocity gradients in the mantle, in 1/sec.

◆ getGridNodeId()

int slbm::SlbmInterface::getGridNodeId ( int  activeNodeId)
inline

Retrieve the grid node ID that corresponds to a specified active node ID.

Retrieve the grid node ID that corresponds to a specified active node ID.

Definition at line 3096 of file SlbmInterface.h.

◆ getGridObject()

Grid* slbm::SlbmInterface::getGridObject ( )
inline

Retrieve a pointer to the Grid object.

Retrieve a pointer to the Grid object. This method will not be available through any interfaces other than the c++ interface.

Definition at line 1384 of file SlbmInterface.h.

◆ getHeadwaveDistance() [1/2]

double slbm::SlbmInterface::getHeadwaveDistance ( )
inline

Definition at line 406 of file SlbmInterface.h.

◆ getHeadwaveDistance() [2/2]

void slbm::SlbmInterface::getHeadwaveDistance ( double &  dist)
inline

Retrieve angular distance traveled by the ray below the headwave interface, in radians.

Retrieve the angular distance traveled by the ray below the headwave interface, in radians. This is the total distance minus the horizontal offsets below the source and receiver. getSourceDistance() + getReceiverDistance() + getHeadwaveDistance() = getDistance().

Parameters
distthe angular distance traveled by the ray below the headwave interface, in radians.

Definition at line 2091 of file SlbmInterface.h.

◆ getHeadwaveDistanceKm() [1/2]

double slbm::SlbmInterface::getHeadwaveDistanceKm ( )
inline

Definition at line 421 of file SlbmInterface.h.

◆ getHeadwaveDistanceKm() [2/2]

void slbm::SlbmInterface::getHeadwaveDistanceKm ( double &  dist)
inline

Retrieve horizontal distance traveled by the ray below the headwave interface, in radians.

Retrieve horizontal distance traveled by the ray below the headwave interface, in km. This is the sum of actual_path_increment(i) * R(i) where actual_path_increment(i) is the angular distance traveled by the ray in each angular distance increment along the head wave interface, and R(i) is the radius of the head wave interface in that same horizontal increment.

Parameters
distthe horizontal distance traveled by the ray below the headwave interface, in km.

Definition at line 2106 of file SlbmInterface.h.

◆ getInterpolatedPoint() [1/2]

void slbm::SlbmInterface::getInterpolatedPoint ( const double &  lat,
const double &  lon,
int *  nodeIds,
double *  coefficients,
int &  nWeights,
double  depth[NLAYERS],
double  pvelocity[NLAYERS],
double  svelocity[NLAYERS],
double &  pgradient,
double &  sgradient 
)
inline

Retrieve interpolated data from the earth model at a single specified latitude, longitude.

Retrieve interpolated data from the earth model at a single specified latitude, longitude.

Parameters
latthe latitude where information is to be interpolated, in radians.
lonthe longitude where information is to be interpolated, in radians.
nodeIdthe nodeIds of the grid nodes that were involved in the interpolation.
coefficientsthe interpolation coefficients that were applied to the information from the neighboring grid nodes.
nWeightsthe number of grid nodes involved in the interpolation.
depththe depths of the tops of the interfaces in the Earth model, in km. There will be one of these for each layer of the model.
pvelocitythe P velocities of each layer of the model, in km/sec.
svelocitythe S velocities of each layer of the model, in km/sec.
pgradientthe mantle P velocity gradient, in 1/sec.
sgradientthe mantle S velocity gradient, in 1/sec.
Returns
true if successful. If not successful, nodeIds are all -1 and all other returned arrays are populated with SLBMGlobals::NA_VALUE.

Definition at line 2493 of file SlbmInterface.h.

◆ getInterpolatedPoint() [2/2]

void slbm::SlbmInterface::getInterpolatedPoint ( const double &  lat,
const double &  lon,
vector< int > &  nodeId,
vector< double > &  coefficients,
vector< double > &  depth,
vector< double > &  pvelocity,
vector< double > &  svelocity,
double &  pgradient,
double &  sgradient 
)
inline

Retrieve interpolated data from the earth model at a single specified latitude, longitude.

Retrieve interpolated data from the earth model at a single specified latitude, longitude.

Parameters
latthe latitude where information is to be interpolated, in radians.
lonthe longitude where information is to be interpolated, in radians.
nodeIdthe nodeIds of the grid nodes that were involved in the interpolation.
coefficientsthe interpolation coefficients that were applied to the information from the neighboring grid nodes.
depththe depths of the tops of the interfaces in the Earth model, in km. There will be one of these for each layer of the model.
pvelocitythe P velocities of each layer of the model, in km/sec.
svelocitythe S velocities of each layer of the model, in km/sec.
pgradientthe mantle P velocity gradient, in 1/sec.
sgradientthe mantle S velocity gradient, in 1/sec.
Returns
true if successful. If not successful, nodeIds are all -1 and all other returned arrays are populated with SLBMGlobals::NA_VALUE.

Definition at line 2512 of file SlbmInterface.h.

◆ getInterpolatedTransect() [1/2]

void slbm::SlbmInterface::getInterpolatedTransect ( double  lat[],
double  lon[],
const int &  nLatLon,
int **  neighbors,
double **  coefficients,
int *  nNeighbors,
double  depth[][NLAYERS],
double  pvelocity[][NLAYERS],
double  svelocity[][NLAYERS],
double  pgradient[NLAYERS],
double  sgradient[NLAYERS],
int &  nInvalid 
)
inline

Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude.

Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude.

Parameters
latthe latitudes along the transect, in radians.
lonthe longitudes along the transect, in radians.
nLatLonthe number of interpolated points along the transect.
neighborsthe nodeIds of the grid nodes that were involved in the interpolations. Caller should supply a 2D array with at least nLatLon x 5 elements that will be populated with values.
coefficientsthe interpolation coefficients that were applied to the information from the neighboring grid nodes. Caller should supply a 2D array with at least nLatLon x 5 elements that will be populated with values.
nNeighborsa 1D array of ints with at least nLatLon elements that will be populated with the number of nodes and coefficients associated with each lat, lon.
depththe depths of the tops of the interfaces in the Earth model, in km.
pvelocitythe P velocities of each layer of the model, in km/sec.
svelocitythe S velocities of each layer of the model, in km/sec.
pgradientthe mantle P velocity gradient, in 1/sec.
sgradientthe mantle S velocity gradient, in 1/sec.
nInvalidthe number of points that were out of model range. For any points outside of the model range, nodeIds are all -1 and all other returned arrays are populated with SLBMGlobals::NA_VALUE.
Returns
true if all points were in model range (nInvalid == 0).

Definition at line 2546 of file SlbmInterface.h.

◆ getInterpolatedTransect() [2/2]

void slbm::SlbmInterface::getInterpolatedTransect ( vector< double >  lat,
vector< double >  lon,
vector< vector< int > > &  nodeId,
vector< vector< double > > &  coefficients,
vector< vector< double > > &  depth,
vector< vector< double > > &  pvelocity,
vector< vector< double > > &  svelocity,
vector< double > &  pgradient,
vector< double > &  sgradient,
int &  nInvalid 
)
inline

Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude.

Retrieve interpolated data from the earth model along a transect defined by equal sized, 1 dimensional arrays of latitude and longitude.

Parameters
latthe latitudes along the transect, in radians.
lonthe longitudes along the transect, in radians.
nodeIdthe nodeIds of the grid nodes that were involved in the interpolations. Caller can supply an empty vector.
coefficientsthe interpolation coefficients that were applied to the information from the neighboring grid nodes. Caller can supply an empty vector.
depththe depths of the tops of the interfaces in the Earth model, in km.
pvelocitythe P velocities of each layer of the model, in km/sec.
svelocitythe S velocities of each layer of the model, in km/sec.
pgradientthe mantle P velocity gradient, in 1/sec.
sgradientthe mantle S velocity gradient, in 1/sec.
nInvalidthe number of points that were out of model range. For any points outside of the model range, nodeIds are all -1 and all other returned arrays are populated with SLBMGlobals::NA_VALUE.

Definition at line 2592 of file SlbmInterface.h.

◆ getInterpolatorType()

string slbm::SlbmInterface::getInterpolatorType ( )
inline

Retrieve the type of interpolator currently in use; either "LINEAR" or "NATUTAL_NEIGHBOR".

Returns
the type of interpolator currently in use; either "LINEAR" or "NATUTAL_NEIGHBOR".

Definition at line 3455 of file SlbmInterface.h.

◆ getMaxDepth() [1/2]

static double slbm::SlbmInterface::getMaxDepth ( )
inlinestatic

Definition at line 1574 of file SlbmInterface.h.

◆ getMaxDepth() [2/2]

static void slbm::SlbmInterface::getMaxDepth ( double &  maxDepth)
static

Retrieve the current value for the maximum source depth, in km.

Retrieve the current value for the maximum source depth, in km.

◆ getMaxDistance() [1/2]

static double slbm::SlbmInterface::getMaxDistance ( )
inlinestatic

Definition at line 1559 of file SlbmInterface.h.

◆ getMaxDistance() [2/2]

static void slbm::SlbmInterface::getMaxDistance ( double &  maxDistance)
static

Retrieve the current value for the maximum source-receiver separation, in radians.

Retrieve the current value for the maximum source-receiver separation, in radians.

◆ getModelObject()

GeoTessModelSLBM* slbm::SlbmInterface::getModelObject ( )
inline

Retrieve a pointer to the GeoTessModelSLBM object.

Retrieve a pointer to the GeoTessModelSLBM object. This method will not be available through any interfaces other than the c++ interface.

Definition at line 1390 of file SlbmInterface.h.

◆ getModelPath()

const string & slbm::SlbmInterface::getModelPath ( ) const
inline

A string containing the path to the SLBM model.

A string containing the path to the SLBM model used for locating phase-specific model error data files.

Definition at line 3239 of file SlbmInterface.h.

◆ getModelString()

string slbm::SlbmInterface::getModelString ( )
inline

Definition at line 1793 of file SlbmInterface.h.

◆ getNActiveNodes()

int slbm::SlbmInterface::getNActiveNodes ( )
inline

Retrieve the number of active nodes in the Grid.

Retrieve the number of active nodes in the Grid.

Definition at line 3082 of file SlbmInterface.h.

◆ getNGridNodes() [1/2]

int slbm::SlbmInterface::getNGridNodes ( )
inline

Retrieve the number of Grid nodes in the Earth model.

Retrieve the number of Grid nodes in the Earth model.

Definition at line 2694 of file SlbmInterface.h.

◆ getNGridNodes() [2/2]

void slbm::SlbmInterface::getNGridNodes ( int &  n)
inline

Retrieve the number of Grid nodes in the Earth model.

Retrieve the number of Grid nodes in the Earth model.

Definition at line 2679 of file SlbmInterface.h.

◆ getNHeadWavePoints() [1/2]

int slbm::SlbmInterface::getNHeadWavePoints ( )
inline

Definition at line 792 of file SlbmInterface.h.

◆ getNHeadWavePoints() [2/2]

void slbm::SlbmInterface::getNHeadWavePoints ( int &  nHeadWavePoints)
inline

Retrieve the number of LayerProfile objects positioned along the head wave interface.

Retrieve the number of LayerProfile objects positioned along the head wave interface. It is useful to call this method before calling getGreatCircleData() since the value returned by this method will be the number of elements that will be populated in parameters headWaveVelocity[], neighbors[] and coefficients[].

Definition at line 2708 of file SlbmInterface.h.

◆ getNodeAzimuth()

void slbm::SlbmInterface::getNodeAzimuth ( const int &  node1,
const int &  node2,
double &  azimuth 
)
inline

Retrieve the azimuth from grid node1 to grid node2, radians.

Retrieve the azimuth from grid node1 to grid node2, radians.

Definition at line 2993 of file SlbmInterface.h.

◆ getNodeHitCount() [1/2]

int slbm::SlbmInterface::getNodeHitCount ( const int &  nodeId)
inline

Definition at line 1288 of file SlbmInterface.h.

◆ getNodeHitCount() [2/2]

void slbm::SlbmInterface::getNodeHitCount ( const int &  nodeId,
int &  hitCount 
)
inline

Retrieve the number of times that the specified node has been 'touched' by a GreatCircle object.

Retrieve the number of times that the specified node has been 'touched' by a GreatCircle object. The hit count of each node is initialized in the loadVelocityModel() method. Every time the getWeights() method is called for a particular GreatCircle object, all the nodeIds that contribute any weight to that GreatCircle object have their hit count incremented by one.

Definition at line 3124 of file SlbmInterface.h.

◆ getNodeNeighborInfo() [1/2]

void slbm::SlbmInterface::getNodeNeighborInfo ( const int &  nid,
int  neighbors[],
double  distance[],
double  azimuth[],
int &  nNeighbors 
)
inline

Retrieve the node IDs of the nodes that surround the specified node.

Retrieve the node IDs of the nodes that surround the specified node.

The caller must supply int array neighbors which is dimensioned large enough to hold the maximum number of neighbors that a node can have, which is 8. The actual number of neighbors is returned in nNeighbors.

Definition at line 2919 of file SlbmInterface.h.

◆ getNodeNeighborInfo() [2/2]

void slbm::SlbmInterface::getNodeNeighborInfo ( const int  nid,
vector< int > &  neighbors,
vector< double > &  distance,
vector< double > &  azimuth 
)
inline

Definition at line 2934 of file SlbmInterface.h.

◆ getNodeNeighbors() [1/2]

void slbm::SlbmInterface::getNodeNeighbors ( const int &  nid,
int  neighbors[],
int &  nNeighbors 
)
inline

Retrieve the node IDs of the nodes that surround the specified node.

Retrieve the node IDs of the nodes that surround the specified node.

The caller must supply int array neighbors which is dimensioned large enough to hold the maximum number of neighbors that a node can have, which is 8. The actual number of neighbors is returned in nNeighbors.

Definition at line 2863 of file SlbmInterface.h.

◆ getNodeNeighbors() [2/2]

void slbm::SlbmInterface::getNodeNeighbors ( const int &  nid,
vector< int > &  neighbors 
)
inline

Retrieve the node IDs of the nodes that surround the specified node.

Retrieve the node IDs of the nodes that surround the specified node.

Definition at line 2891 of file SlbmInterface.h.

◆ getNodeSeparation()

void slbm::SlbmInterface::getNodeSeparation ( const int &  node1,
const int &  node2,
double &  distance 
)
inline

Retrieve the angular separation of two grid nodes, in radians.

Retrieve the angular separation of two grid nodes, in radians.

Definition at line 2979 of file SlbmInterface.h.

◆ getPathIncrement() [1/2]

double slbm::SlbmInterface::getPathIncrement ( )

Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians.

Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians. The actual spacing will be reduced from the requested value in order that an integral number of equally spaced LayerProfile objects will exactly span the source-receiver separation. The default value is 0.1 degrees.

Returns
the current value of the spacing of great circle nodes along the head wave interface, in radians.

◆ getPathIncrement() [2/2]

void slbm::SlbmInterface::getPathIncrement ( double &  pathIncrement)

Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians.

Retrieve the current value of the spacing of great circle nodes along the head wave interface, in radians. The actual spacing will be reduced from the requested value in order that an integral number of equally spaced LayerProfile objects will exactly span the source-receiver separation. The default value is 0.1 degrees.

Parameters
pathIncrementthe current value of the spacing of great circle nodes along the head wave interface, in radians.

◆ getPgLgComponents()

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

Retrieve information about Pg/Lg travel time calculations.

Retrieve information about Pg/Lg travel time calculations. This method only returns useful information when the phase is Pg or Lg. For Pn and Sn, all information is returned as SLBMGlobals::NA_VALUE.

Parameters
tTotalis the total travel time in seconds. It will be exactly equal to the lesser of tTaup or tHeadwave, except that if tTaup is equal to SLBMGlobals::NA_VALUE, then tTotal will equal tHeadwave.
tTaupis the taup travel time in seconds. If this value is equal to SLBMGlobals::NA_VALUE, it means that the taup calculation failed for some reason (shadow zones, etc.).
tHeadwaveis the headwave travel time in secods
pTaupTauP ray parameter.
pHeadwaveheadwave ray parameter.
trTaupis the radius at which the taup ray turned, in km.
trHeadwaveis the radius at which the headwave ray turned, in km.

Definition at line 2844 of file SlbmInterface.h.

◆ getPhase()

string slbm::SlbmInterface::getPhase ( )
inline

Retrieve the phase specified in last call to createGreatCircle().

Retrieve the phase specified in last call to createGreatCircle().

Definition at line 359 of file SlbmInterface.h.

◆ getPiercePointReceiver()

void slbm::SlbmInterface::getPiercePointReceiver ( double &  lat,
double &  lon,
double &  depth 
)
inline

Retrieve the latitude and longitude of the moho pierce point below the receiver, in radians.

Retrieve the latitude and longitude of the moho pierce point below the receiver, in radians. For Pg, Lg an exception is thrown.

Parameters
latthe latitude of the receiver pierce point, in radians.
lonthe longitude of the receiver pierce point, in radians.
depthmoho depth in km below sea level

Definition at line 3281 of file SlbmInterface.h.

◆ getPiercePointSource()

void slbm::SlbmInterface::getPiercePointSource ( double &  lat,
double &  lon,
double &  depth 
)
inline

Retrieve the latitude and longitude of the moho pierce point below the source, in radians.

Retrieve the latitude and longitude of the moho pierce point below the source, in radians. For Pg, Lg and sources in the mantle an exception is thrown.

Parameters
latthe latitude of the source pierce point, in radians.
lonthe longitude of the source pierce point, in radians.
depthmoho depth in km below sea level

Definition at line 3241 of file SlbmInterface.h.

◆ getRayParameter() [1/2]

double slbm::SlbmInterface::getRayParameter ( )
inline

Definition at line 1742 of file SlbmInterface.h.

◆ getRayParameter() [2/2]

void slbm::SlbmInterface::getRayParameter ( double &  ray_parameter)

Retrieve the ray parameter.

Retrieve the ray parameter

◆ getRcvDep()

double slbm::SlbmInterface::getRcvDep ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1817 of file SlbmInterface.h.

◆ getRcvLat()

double slbm::SlbmInterface::getRcvLat ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1809 of file SlbmInterface.h.

◆ getRcvLon()

double slbm::SlbmInterface::getRcvLon ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1813 of file SlbmInterface.h.

◆ getReceiverDistance() [1/2]

double slbm::SlbmInterface::getReceiverDistance ( )
inline

Definition at line 392 of file SlbmInterface.h.

◆ getReceiverDistance() [2/2]

void slbm::SlbmInterface::getReceiverDistance ( double &  dist)
inline

Retrieve horizontal offset below the receiver, in radians.

Retrieve horizontal offset below the receiver, in radians. This is the angular distance between the location of the receiver and the receiver pierce point where the ray impinged on the headwave interface.

Parameters
distthe horizontal offset below the receiver, in radians.

Definition at line 2076 of file SlbmInterface.h.

◆ getSlowness() [1/2]

double slbm::SlbmInterface::getSlowness ( )
inline

Definition at line 457 of file SlbmInterface.h.

◆ getSlowness() [2/2]

void slbm::SlbmInterface::getSlowness ( double &  slowness)
inline

Retrieve the horizontal slowness, i.e., the derivative of travel time wrt to receiver-source distance, in seconds/radian.

Retrieve the horizontal slowness, in seconds/radian.

Parameters
slownessthe derivative of travel time wrt to source latitude.

Definition at line 2034 of file SlbmInterface.h.

◆ getSlownessUncertainty() [1/2]

void slbm::SlbmInterface::getSlownessUncertainty ( const int &  phase,
const double &  distance,
double &  uncert 
)
inline

Retrieve the slowness uncertainty in sec/radian for specified phase, distance (in radians).

Retrieve the slowness uncertainty in sec/radian for specified phase, distance.

Parameters
phase0:Pn, 1:Sn, 2:Pg or 3:Lg
distancesource-receiver separation in radians.
uncertreturns the uncertainty in sec/radian

Definition at line 2742 of file SlbmInterface.h.

◆ getSlownessUncertainty() [2/2]

void slbm::SlbmInterface::getSlownessUncertainty ( double &  slownessUncertainty)
inline

Retrieve uncertainty of the horizontal slowness, in seconds/radian using the phase and distance specified in last call to getGreatCircle().

Retrieve uncertainty of the horizontal slowness, in seconds/radian, using the phase and distance specified in last call to getGreatCircle().

Parameters
slownessUncertaintyuncertainty of the horizontal slowness, in seconds/radian.

Definition at line 2770 of file SlbmInterface.h.

◆ getSourceDistance() [1/2]

double slbm::SlbmInterface::getSourceDistance ( )
inline

Definition at line 382 of file SlbmInterface.h.

◆ getSourceDistance() [2/2]

void slbm::SlbmInterface::getSourceDistance ( double &  dist)
inline

Retrieve horizontal offset below the source, in radians.

Retrieve horizontal offset below the source, in radians. This is the angular distance between the location of the source and the source pierce point where the ray impinged on the headwave interface.

Parameters
distthe horizontal offset below the source, in radians.

Definition at line 2061 of file SlbmInterface.h.

◆ getSrcDep()

double slbm::SlbmInterface::getSrcDep ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1805 of file SlbmInterface.h.

◆ getSrcLat()

double slbm::SlbmInterface::getSrcLat ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1797 of file SlbmInterface.h.

◆ getSrcLon()

double slbm::SlbmInterface::getSrcLon ( )
inline

getter for read-only attributes property getter for read-only attributes property

Definition at line 1801 of file SlbmInterface.h.

◆ getTessId() [1/2]

string slbm::SlbmInterface::getTessId ( )
inline

Definition at line 1534 of file SlbmInterface.h.

◆ getTessId() [2/2]

void slbm::SlbmInterface::getTessId ( string &  tessId)
inline

Retrieve the tessellation ID of the model currently in memory.

Retrieve the tessellation ID of the model currently in memory.

Definition at line 3195 of file SlbmInterface.h.

◆ getTravelTime() [1/2]

double slbm::SlbmInterface::getTravelTime ( )
inline

Definition at line 432 of file SlbmInterface.h.

◆ getTravelTime() [2/2]

void slbm::SlbmInterface::getTravelTime ( double &  travelTime)
inline

Retrieve the total travel time for the GreatCircle, in seconds.

Retrieve the total travel time for the GreatCircle, in seconds.

Parameters
travelTimethe total travel time in seconds is returned in travelTime. If the GreatCircle is invalid, travelTime will equal SLBMGlobals::NA_VALUE.

Definition at line 2121 of file SlbmInterface.h.

◆ getTravelTimeComponents()

void slbm::SlbmInterface::getTravelTimeComponents ( double &  tTotal,
double &  tSource,
double &  tReceiver,
double &  tHeadwave,
double &  tGradient 
)
inline

Retrieve the total travel time and the 4 components that contribute to it for the current GreatCircle.

Retrieve the total travel time and the 4 components that contribute to it for the current GreatCircle. If the greatCircle is invalid, tTotal and all the components will equal SLBMGlobals::NA_VALUE.

Parameters
tTotalthe total travel time, in seconds.
tSourcethe crustal travel time below the source, in seconds.
tReceiverthe crustal travel time below the receiver, in seconds.
tHeadwavethe head wave travel time, in seconds.
tGradientthe Zhao gradient correction term, in seconds. For GreatCircle objects that support Pg and Lg, this is always 0.

Definition at line 2136 of file SlbmInterface.h.

◆ getTravelTimeUncertainty() [1/2]

void slbm::SlbmInterface::getTravelTimeUncertainty ( const int &  phase,
const double &  distance,
double &  uncert 
)

Retrieve the travel time uncertainty in sec for specified phase, distance (in radians).

Retrieve the travel time uncertainty in sec for specified phase, distance.

Parameters
phase0:Pn, 1:Sn, 2:Pg or 3:Lg
distancesource-receiver separation in radians.
uncertreturns the uncertainty in sec

◆ getTravelTimeUncertainty() [2/2]

void slbm::SlbmInterface::getTravelTimeUncertainty ( double &  travelTimeUncertainty,
bool  calcRandomError = false 
)

Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle().

Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle().

Parameters
travelTimeUncertaintyuncertainty of the travel time in seconds. If SLBM is using a Path Dependent Uncertainty then it's uncertainty method is called. Otherwise, the old 1D method is called.

◆ getTravelTimeUncertainty1D()

void slbm::SlbmInterface::getTravelTimeUncertainty1D ( double &  travelTimeUncertainty)

Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle().

Retrieve travel time uncertainty in sec using the phase and distance specified in last call to getGreatCircle().

Parameters
travelTimeUncertaintyuncertainty of the travel time in seconds.

◆ getTurningRadius() [1/2]

double slbm::SlbmInterface::getTurningRadius ( )
inline

Definition at line 1748 of file SlbmInterface.h.

◆ getTurningRadius() [2/2]

void slbm::SlbmInterface::getTurningRadius ( double &  turning_radius)

Retrieve the turning radius of the ray.

Retrieve the turning radius of the ray

◆ getUncertaintyFileFormat()

string slbm::SlbmInterface::getUncertaintyFileFormat ( const int &  phase,
const int &  attribute 
)
inline

Definition at line 2809 of file SlbmInterface.h.

◆ getUncertaintyTable()

string slbm::SlbmInterface::getUncertaintyTable ( const int &  phase,
const int &  attribute 
)
inline

Definition at line 2786 of file SlbmInterface.h.

◆ getVersion()

string slbm::SlbmInterface::getVersion ( )
inline

Retrieve the SLBM Version number.

Retrieve the SLBM Version number.

Returns
the current version number

Definition at line 129 of file SlbmInterface.h.

◆ getWeights() [1/2]

void slbm::SlbmInterface::getWeights ( int  nodeId[],
double  weight[],
int &  nWeights 
)
inline

Retrieve the weight assigned to each grid node that was touched by the GreatCircle.

Retrieve the weight assigned to each grid node that was touched by the GreatCircle.

A map which associates an instance of a GridProfile object with a double weight is initialized. Then every LayerProfile on the head wave interface between the source and receiver is visited and the angular distance, d, that the ray traveled in the horizontal segment is retrieved. If d > 0, then the neighboring GridProfile objects that contributed to the interpolated value of the LayerProfile are visited. The product of d * R * C is added to the weight associated with that GridProfile object, where R is the radius of the head wave interface for the LayerProfile object being evaluated, and C is the interpolation coefficient for the GridProfile - LayerProfile pair under consideration. Then, all the GridProfile objects in the map are visited, the grid node IDs extracted into int array nodeId, and the weight extracted into double array weight.

Note: Only grid nodes touched by this GreatCircle are included in the output. Each grid node is included only once, even though more than one LayerProfile object may have contributed some weight to it. The sum of all the weights will equal the horizontal distance traveled by the ray along the head wave interface, from the source pierce point to the receiver pierce point, in km.

Parameters
nodeIdthe node IDs of all the grid nodes touched by the current GreatCircle.
weightthe weights of all the grid nodes touched by the current GreatCircle. Calling application must dimension this array large enough to handle any possible size.
nWeightsthe number of elements in nodeId and weight. Calling application must dimension this array large enough to handle any possible size.

Definition at line 2158 of file SlbmInterface.h.

◆ getWeights() [2/2]

void slbm::SlbmInterface::getWeights ( vector< int > &  nodeId,
vector< double > &  weight 
)
inline

Retrieve the weight assigned to each grid node that was touched by the GreatCircle.

Retrieve the weight assigned to each grid node that was touched by the GreatCircle.

A map which associates an instance of a GridProfile object with a double weight is initialized. Then every LayerProfile on the head wave interface between the source and receiver is visited and the angular distance, d, that the ray traveled in the horizontal segment is retrieved. If d > 0, then the neighboring GridProfile objects that contributed to the interpolated value of the LayerProfile are visited. The product of d * R * C is added to the weight associated with that GridProfile object, where R is the radius of the head wave interface for the LayerProfile object being evaluated, and C is the interpolation coefficient for the GridProfile - LayerProfile pair under consideration. Then, all the GridProfile objects in the map are visited, the grid node IDs extracted into int array nodeId, and the weight extracted into double array weight.

Note: Only grid nodes touched by this GreatCircle are included in the output. Each grid node is included only once, even though more than one LayerProfile object may have contributed some weight to it. The sum of all the weights will equal the horizontal distance traveled by the ray along the head wave interface, from the source pierce point to the receiver pierce point, in km.

Parameters
nodeIdthe active node IDs of all the grid nodes touched by the current GreatCircle. These are active node ids, not grid node ids. If a grid node has weight but is not an active node, the nodeId will be -1.
weightthe weights of all the grid nodes touched by the current GreatCircle.

Definition at line 2180 of file SlbmInterface.h.

◆ getWeightsReceiver() [1/2]

void slbm::SlbmInterface::getWeightsReceiver ( int  nodeids[],
double  weights[],
int &  nWeights 
)
inline

Retrieve the node IDs and the interpolation coefficients for the receiver CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable but less than 10. The sum of the weights will equal 1.

Parameters
nodeidsthe node indexes of the grid nodes involved in interpolation.
weightsthe weights associated with each nodeid
nWeightsthe number of nodeids and weights returned.

Definition at line 2250 of file SlbmInterface.h.

◆ getWeightsReceiver() [2/2]

void slbm::SlbmInterface::getWeightsReceiver ( vector< int > &  nodeids,
vector< double > &  weights 
)
inline

Definition at line 2264 of file SlbmInterface.h.

◆ getWeightsSource() [1/2]

void slbm::SlbmInterface::getWeightsSource ( int  nodeids[],
double  weights[],
int &  nWeights 
)
inline

Retrieve the node IDs and the interpolation coefficients for the source CrustalProfile.

Retrieve the node IDs and the interpolation coefficients for the source CrustalProfile. For linear interpolation, nWeights will equal 3 but for natural neighbor interpolation nWeights will be variable number less than or equal to 5. The sum of the weights will equal 1.

Parameters
nodeidsthe node indexes of the grid nodes involved in interpolation.
weightsthe weights associated with each nodeid
nWeightsthe number of nodeids and weights returned.

Definition at line 2203 of file SlbmInterface.h.

◆ getWeightsSource() [2/2]

void slbm::SlbmInterface::getWeightsSource ( vector< int > &  nodeids,
vector< double > &  weights 
)
inline

Definition at line 2217 of file SlbmInterface.h.

◆ getZhaoParameters()

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

Retrieve some of the parameters that contribute to the calculation of of total travel time using the Zhao algorithm.

Retrieve some of the parameters that contribute to the calculation of of total travel time using the Zhao algorithm. This method only returns meaningful results for phases Pn and Sn. For Pg and Lg, all the parameters of type double are returned with values SLBMGlobals::NA_VALUE and udSign is returned with value of -999.

Parameters
Vmthe velocity at the top of the mantle averaged along the Moho between the source and receiver pierce points.
Gmthe velocity gradient at the top of the mantle averaged along the Moho between the source and receiver pierce points.
Hthe turning depth of the ray relative to the Moho
Ca constant whose product with V0 gives the mantle velocity gradient for a flat Earth. V0 is the velocity of the top of the mantle averaged over the whole model.
Cma constant whose product with Vm gives the mantle velocity gradient for a flat Earth.
udSigna value of 0 indicates the source is in the crust. +1 indicates the ray leaves a mantle source in the downgoing direction. -1 indicates the ray leaves a mantle source in an upgoing direction.

Definition at line 2830 of file SlbmInterface.h.

◆ initializeActiveNodes() [1/6]

void slbm::SlbmInterface::initializeActiveNodes ( const double &  latmin,
const double &  lonmin,
const double &  latmax,
const double &  lonmax 
)
inline

Specify the latitude and longitude range in radians for active nodes.

Specify the latitude and longitude range in radians for active nodes. Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the latitude longitude range specified by this method, then all 3 nodes are defined to be active nodes. Lats and lons must be specified in radians.

Parameters
latminminimum latitude in radians
lonminminimum longitude in radians
latmaxmaximum latitude in radians
lonmaxmaximum longitude in radians

Definition at line 3007 of file SlbmInterface.h.

◆ initializeActiveNodes() [2/6]

void slbm::SlbmInterface::initializeActiveNodes ( const string &  polygonFileName)
inline

Specify the name of a file that contains a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes.

Specify the name of a file that contains a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes.

Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the polygon specified by this method, then all 3 nodes are defined to be active nodes.

If the last point and first point are not coincident, then the polygon is 'closed' by connecting the first and last point by an edge.

Parameters
polygonFileNamethe name of a file that contains a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes.

Definition at line 3071 of file SlbmInterface.h.

◆ initializeActiveNodes() [3/6]

void slbm::SlbmInterface::initializeActiveNodes ( const vector< double >  lat,
const vector< double >  lon,
const bool &  inDegrees = true 
)
inline

Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes.

Specify a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes. Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the polygon specified by this method, then all 3 nodes are defined to be active nodes.

If the last point and first point are not coincident, then the polygon is 'closed' by connecting the first and last point by an edge.

Parameters
lata 1D vector of doubles specifying the latitudes of the points that define the polygon. Whether units are degrees or radians depends on parameter inDegrees.
lona 1D vector of doubles specifying the longitudes of the points that define the polygon. Whether units are degrees or radians depends on parameter inDegrees.
inDegreesif true, latitudes and longitudes are assumed to be in degrees, if false, they are assumed to be in radians.

Definition at line 3034 of file SlbmInterface.h.

◆ initializeActiveNodes() [4/6]

void slbm::SlbmInterface::initializeActiveNodes ( double *  lat,
double *  lon,
const int &  npoints,
const bool &  inDegrees = true 
)
inline

Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes.

Specify a list of points that define a polygon that enclose the set of grid nodes that are to be considered active nodes. Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the polygon specified by this method, then all 3 nodes are defined to be active nodes.

If the last point and first point are not coincident, then the polygon is 'closed' by connecting the first and last point by an edge.

Parameters
lata 1D array of doubles specifying the latitudes of the points that define the polygon. Whether units are degrees or radians depends on parameter inDegrees.
lona 1D array of doubles specifying the longitudes of the points that define the polygon. Whether units are degrees or radians depends on parameter inDegrees.
npointsa single integer value specifying the number of latitude and longitude points defined.
inDegreesif true, latitudes and longitudes are assumed to be in degrees, if false, they are assumed to be in radians.

Definition at line 3022 of file SlbmInterface.h.

◆ initializeActiveNodes() [5/6]

void slbm::SlbmInterface::initializeActiveNodes ( GeoTessPolygon *  polygon)
inline

Specify a polygon that enclose the set of grid nodes that are to be considered active nodes.

Specify a polygon that enclose the set of grid nodes that are to be considered active nodes.

Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the polygon specified by this method, then all 3 nodes are defined to be active nodes.

Parameters
polygona pointer to a polygon object that encloses the set of grid nodes that are to be considered active nodes.

Definition at line 3066 of file SlbmInterface.h.

◆ initializeActiveNodes() [6/6]

void slbm::SlbmInterface::initializeActiveNodes ( vector< double * > &  unitVectors)
inline

Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes.

Specify a list of points that define a polygon that encloses the set of grid nodes that are to be considered active nodes. Active nodes are defined as follows: for each triangle in the tessellation, if any of the 3 nodes that define the triangle is within the polygon specified by this method, then all 3 nodes are defined to be active nodes.

If the last point and first point are not coincident, then the polygon is 'closed' by connecting the first and last point by an edge.

Parameters
unitVectorsa 2D array of doubles specifying the list of unit vectors that define the polygon.

Definition at line 3061 of file SlbmInterface.h.

◆ isEqual()

bool slbm::SlbmInterface::isEqual ( SlbmInterface other)

Check if the model and/or greatCircle attached to the current SlbmInterface is equal that in another SlbmInterface.

Check if the model and/or greatCircle attached to the current SlbmInterface is equal that in another SlbmInterface

◆ isValid()

bool slbm::SlbmInterface::isValid ( )
inline

Returns true if the current GreatCirlce object has been instantiated and is ready to be interrogated.

Returns true if the current GreatCirlce object has been instantiated and is ready to be interrogated.

Definition at line 354 of file SlbmInterface.h.

◆ loadVelocityModel()

void slbm::SlbmInterface::loadVelocityModel ( const string &  modelPath)

Load the velocity model into memory from the specified file or directory. This method automatically determines the format of the model.

Load the velocity model into memory from the specified file or directory. This method automatically determines the format of the model and hence is able to load all model formats.

Parameters
modelPaththe path to the file or directory that contains the model.

◆ modelsEqual()

static bool slbm::SlbmInterface::modelsEqual ( const string  modelPath1,
const string  modelPath2 
)
static

Check if two models are equal.

Check if two models are equal

Parameters
modelPath1/path/to/model1.geotess
modelPath2/path/to/model2.geotess

◆ movePoint()

void slbm::SlbmInterface::movePoint ( const double &  aLat,
const double &  aLon,
const double &  distance,
const double &  azimuth,
double &  bLat,
double &  bLon 
)
inline

Find point B that is the specified distance and azimuth from point A, in radians.

Find point B that is the specified distance and azimuth from point A. All quantities are in radians.

Parameters
aLatlatitude of point A, in radians
aLonlongitude of point A, in radians
distanceangular distance from point A to point B, in radians
azimuthazimuth from pointA to point B, clockwise from north, in radians.
bLat(output) latitude of point B in radians
bLon(output) latitude of point B in radians

Definition at line 3430 of file SlbmInterface.h.

◆ operator!=()

bool slbm::SlbmInterface::operator!= ( SlbmInterface other)
inline

Definition at line 115 of file SlbmInterface.h.

◆ operator==()

bool slbm::SlbmInterface::operator== ( SlbmInterface other)
inline

Definition at line 114 of file SlbmInterface.h.

◆ saveVelocityModel()

void slbm::SlbmInterface::saveVelocityModel ( const string &  modelFileName,
const int &  format = 4 
)

Save the velocity model currently in memory to the specified file.

Save the velocity model currently in memory to the specified file or directory.

The following formats are supported:

  1. SLBM version 1 ascii file. All model information is output to a single file in ascii format. This format was available in SLBM version 2, but never used.

  2. SLBM version 2 directory format. Model information is output to a number of different files and directories, mostly in binary format. This format was used almost exclusively in SLBM version 2.

  3. SLBM version 3 directory format. Model information is output to a number of different files and directories, mostly in binary format. This format is very similar to format 2 with the difference being that the model tessellation and values are stored in GeoTess format instead of the custom SLBM format.

  4. SLBM version 4 single-file format. This is the default+preferred format. All model information is written to a single file. If the modelFileName extension is '.ascii' the file is written in ascii format, otherwise it is written in binary format.

See SLBM_Design.pdf in the main documentation directory for detailed information about model output formats.

Models stored in SLBM version 1 and 2 formats (formats 1 and 2) only support linear interpolation. Models stored in SLBM version 3 formats (formats 3 and 4) support both linear and natural neighbor interpolation.

Parameters
modelFileNamethe full or relative path to the file or directory to which the earth model is to be written. For formats 2 and 3, the directory will be created if it does not exist.
formatthe desired format of the output. If omitted, defaults to 4: all model information written to a single file.

◆ setActiveNodeData()

void slbm::SlbmInterface::setActiveNodeData ( const int &  nodeId,
double  depths[NLAYERS],
double  pvelocity[NLAYERS],
double  svelocity[NLAYERS],
double  gradient[2] 
)

Modify the depth, velocity and gradient information associated with a specified active node in the Grid.

Modify the depth, velocity and gradient information associated with a specified active node in the Grid.

Parameters
nodeIdthe node number of the grid point in the model. (zero based index).
depthsan array containing the depths of the tops of the layers, in km
pvelocityan array containing the P velocities of all the intervals at the specified grid node, in km/sec.
svelocityan array containing the S velocities of all the intervals at the specified grid node, in km/sec.
gradienta 2-element array containing the P and S velocity gradients in the mantle, in 1/sec.

◆ setAverageMantleVelocity()

void slbm::SlbmInterface::setAverageMantleVelocity ( const int &  type,
const double &  velocity 
)
inline

Set the average P or S wave mantle velocity that is recorded in the model input file, in km/sec.

Set the average P or S wave mantle velocity that is specified in the model input file. This value is used in the calculation of the Zhao c parameter.

Parameters
typespecify either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
velocitythe P or S wave velocity that is to be set, in km/sec. This value will be stored in the model file, if the model file is written to file by a call to saveVelocityModel() subsequent to a call to this method.

Definition at line 3180 of file SlbmInterface.h.

◆ setCHMax()

static void slbm::SlbmInterface::setCHMax ( const double &  chMax)
static

Set the value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception.

Set the value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > chMax, then slbm will throw an exception. This call modifies global parameter SLBMGlobals::CH_MAX

◆ setDelDepth()

void slbm::SlbmInterface::setDelDepth ( const double &  del_depth)

Change the value of step change in depth used to compute depth derivatives (km)

Change the value of step change in depth used to compute depth derivatives (km)

◆ setDelDistance()

void slbm::SlbmInterface::setDelDistance ( const double &  del_distance)

Change the value of step change in distance used to compute horizontal derivatives(in radians).

Change the value of step change in distance used to compute horizontal derivatives (radians)

◆ setGridData()

void slbm::SlbmInterface::setGridData ( const int &  nodeId,
double  depths[NLAYERS],
double  pvelocity[NLAYERS],
double  svelocity[NLAYERS],
double  gradient[2] 
)

Modify the velocity and gradient information associated with a specified node in the Grid.

Modify the velocity and gradient information associated with a specified node in the Grid.

Parameters
nodeIdthe node number of the grid point in the model. (zero based index).
depthsan array containing the depths of the tops of the layers, in km
pvelocityan array containing the P velocities of all the intervals at the specified grid node, in km/sec.
svelocityan array containing the S velocities of all the intervals at the specified grid node, in km/sec.
gradienta 2-element array containing the P and S velocity gradients in the mantle, in 1/sec.

◆ setInterpolatorType()

void slbm::SlbmInterface::setInterpolatorType ( const string &  interpolatorType)
inline

Specify the interpolation type to use, either 'linear' or 'natural_neighbor'.

Specify the interpolation type to use, either "LINEAR" or "NATUTAL_NEIGHBOR". With models loaded in the old SLBM version 2 formats (formats 1 and 2), LINEAR is the only option allowed.

Definition at line 3441 of file SlbmInterface.h.

◆ setMaxDepth()

static void slbm::SlbmInterface::setMaxDepth ( const double &  maxDepth)
static

Set the maximum source depth for Pn/Sn phase, in km.

Set the maximum source depth for Pn/Sn phase, in km. Source depths greater than the specified value will result in an exception being thrown in createGreatCircle(). Default value is 9999 km.

◆ setMaxDistance()

static void slbm::SlbmInterface::setMaxDistance ( const double &  maxDistance)
static

Set the maximum source-receiver separation for Pn/Sn phase, in radians.

Set the maximum source-receiver separation for Pn/Sn phase, in radians. Source-receiver separations greater than the specified value will result in an exception being thrown in createGreatCircle(). Default value is PI radians.

◆ setPathIncrement()

void slbm::SlbmInterface::setPathIncrement ( const double &  pathIncrement)

Set the desired spacing of great circle nodes along the head wave interface, in radians.

Set the desired spacing of great circle nodes along the head wave interface, in radians. The actual spacing will be reduced from the requested value in order that an integral number of equally spaced LayerProfile objects will exactly span the source-receiver separation. Defaults to 0.1 degrees if not specified.

Parameters
pathIncrementthe desired spacing of great circle nodes along the head wave interface, in radians.

◆ toString()

string slbm::SlbmInterface::toString ( const int &  verbosity)
inline

Returns a human-readable string representation of the GreatCircle object.

Returns a human-readable string representation of the GreatCircle object.

Parameters
verbosityspecifies 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 CrustalProfile information.
  • 4 : Grid node weights.
  • 5 : Head wave interface profiles
  • 6 : Interpolation coefficients for great circle nodes on the head wave interface.
  • 7 : Node hit count and node neighbors for every node touched by any GreatCircle instantiated by this instance of SlbmInterface.

Definition at line 2297 of file SlbmInterface.h.

Member Data Documentation

◆ CH_MAX

double slbm::SlbmInterface::CH_MAX
staticprotected

c is the zhao c parameter and h is the turning depth of the ray below the moho. Zhao method only valid for c*h << 1. When c*h > ch_max, then slbm will throw an exception.

Definition at line 1835 of file SlbmInterface.h.

◆ greatCircle

GreatCircle* slbm::SlbmInterface::greatCircle
protected

The most recently requested GreatCircle object.

The most recently requested GreatCircle object.

Definition at line 1830 of file SlbmInterface.h.

◆ grid

Grid* slbm::SlbmInterface::grid
protected

The Grid object that stores the velocity model.

The Grid object that stores the velocity model.

Definition at line 1825 of file SlbmInterface.h.

◆ valid

bool slbm::SlbmInterface::valid
protected

true if the current GreatCirlce object has been instantiated and is ready to be interrogated.

true if the current GreatCirlce object has been instantiated and is ready to be interrogated.

Definition at line 1842 of file SlbmInterface.h.


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