RSTT: slbm::GridProfileSLBM Class Reference

RSTT 3.1.0 Regional Seismic Travel Time

Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
slbm::GridProfileSLBM Class Reference

Manages all information related to a single node in a Grid object. More...

`#include <GridProfileSLBM.h>`

Inheritance diagram for slbm::GridProfileSLBM:

## Public Member Functions
| GridProfileSLBM (Grid &g, const int &i, const double &lat, const double &lon, const double &elev, const double &zwater, GeoStack *gstack)
| Parameterized constructor. More...
| GridProfileSLBM (const GridProfileSLBM &other)
| Copy constructor. More...
| ~GridProfileSLBM ()
| Destructor. More...
int | getGeoStackId ()
| Retrieve the index of the GeoStack that holds the information about model interfaces, velocities and gradients. More...
void | getData (double *depths, double *pvelocity, double *svelocity, double *gradient)
| Retrieve all the data associated with this Profile. More...
void | setData (double *depths, double *pvelocities, double *svelocities, double *gradients)
| Set the P and S velocities and gradients associated with this GridProfileSLBM object to specified values. More...
void | setDepths (const vector< double > &depths)
| Set the layer depths to specified values. More...
void | setVelocity (const int &waveType, const vector< double > &velocity)
| Set the P or S velocity to specified values. More...
void | setGradient (const vector< double > &gradient)
| Set the P and S velocity gradients to specified values. More...
double | getInterfaceRadius (const int &k)
| Retrieve the radius of the k'th interval, in km. More...
double | getInterfaceDepth (const int &k)
| Retrieve the depth of the k'th interval, in km relative sea level. More...
double | getVelocity (const int &waveType, const int &k)
| Retrieve the P or S velocity of the k'th interval, in km/sec. More...
double | getMantleGradient (const int &waveType)
| Retrieve the P or S velocity gradient in the mantle, in 1/sec. More...
void | getInterfaceDepths (vector< double > &depths)
| Retrieve the depths of all intervals, in km. More...
void | getVelocity (const int &waveType, double *velocity)
| Retrieve the P or S velocities of all intervals, in km/sec. More...
void | getMantleGradient (double *g)
| Retrieve the P and S velocity gradients in the mantle, in 1/sec. More...
double | getWaterThick ()
Public Member Functions inherited from slbm::GridProfile
| GridProfile ()
| GridProfile (const int &i, const double &lat, const double &lon, const double &elev)
| GridProfile (const int &i, Location &location)
virtual | ~GridProfile ()
| Destructor. More...
const int | getNodeId () const
| Retrieve the node index of this node in the model grid. More...
virtual double | getEarthRadius ()
double | getWeight ()
| A temporary weight storage assignment function (returned reference) used exclusively by the GreatCircle::getWeights(...) function. More...
void | addWeight (const double &w)
void | setWeight (const double &w)
void | clearHitCount ()
void | incrementHitCount ()
int | getHitCount ()
int | getActiveNodeId ()
void | setActiveNodeId (int id)
void | depthsToRadii (double depths[NLAYERS], vector< vector< float > > &radii)
void | depthsToRadii (const vector< double > &depths, vector< vector< float > > &radii)
Public Member Functions inherited from slbm::Location
| Location ()
virtual | ~Location ()
| Location (const Location &location)
| Location (const double &lat, const double &lon, const double &depth=0)
| Location (const double v[], const double &radius)
| Location (const Location &loc1, const Location &loc2)
Location & | operator= (const Location &other)
bool | operator== (const Location &other) const
bool | operator!= (const Location &other)
string | toString () const
void | setLocation (const double &lat, const double &lon, const double &depth)
void | setLocation (const double *u, const double &r)
void | setRadius (const double &r)
double | getRadius () const
double | getEarthRadius () const
double | getDepth () const
void | setDepth (const double &depth)
double | distance (const Location &other) const
double | distanceKm (Location &other) const
double | distanceDegrees (const Location &other) const
double | azimuth (const Location &other) const
| Find the azimuth from this Location to some other Location. Result will be between 0 and 2*PI radians. More...
double | azimuthDegrees (const Location &other) const
| Find the azimuth from this Location to some other Location. Result will be between 0 and 360 degrees. More...
double | azimuth (const Location &other, const double &errorValue) const
| Find the azimuth from this Location to some other Location. Result will be between 0 and 2*PI radians. If current position is the north or south pole, or if current position and other position are conincident, returns specified errorValue. More...
double | azimuthDegrees (const Location &other, const double &errorValue) const
| Find the azimuth from this Location to some other Location. Result will be between 0 and 360 degrees. If current position is the north or south pole, or if current position and other position are conincident, returns specified errorValue. More...
double | getLat () const
| Retrieve the geographic latitude of this Location, radians. More...
double | getGeocentricLat () const
| Retrieve the geocentric latitude of this Location, radians. More...
double | getGeocentricLatDegrees () const
| Retrieve the geocentric latitude of this Location, degrees. More...
double | getLon () const
| Retrieve the longitude of this Location. Value will be between -PI and PI radians. More...
double | getLatDegrees () const
| Retrieve the geographic latitude of this Location, degrees. More...
double | getLonDegrees () const
| Retrieve the longitude of this Location. Value will be between -180 and 180 degrees. More...
const double * | getUnitVector ()
void | getUnitVector (double x[3])
void | setUnitVector (double x[3])
void | move (const double &azimuth, const double &distance, Location &loc) const
| Retrieve a Location that is a specified distance away from this Location, in a specified direction. More...
bool | cross (const Location &x, Location &loc) const
void | rotate (Location &pole, double angle, Location &loc) const
bool | vectorTripleProduct (const Location &other, double vtp[]) const
| Compute the vector triple product (this x other) x this, normalized to unit length. Returns true if valid, false if triple product has zero length, which will happen when this and other are coincident or PI radians apart. More...
void | move (const double vtp[], const double &a, Location &loc) const
| Move this Location object a specified angular distance (radians) in the direction specified by vtp. More...
void | move_north (const double x[], const double &distance, double z[]) const
void | move_north (const double &distance, Location &loc) const
void | rotate (const double x[], const double p[], const double &a, double z[]) const
double | scalarTripleProduct (const Location &loc1, const Location &loc2) const
double | scalarTripleProduct (const double u[], const double w[]) const
double | scalarTripleProduct (const double u[], const double v[], const double w[]) const
bool | vectorTripleProduct (const double u[], const double v[], double vtp[]) const
| Compute the normalized vector triple product (u x v) x u and and store result in vtp. More...
bool | vectorTripleProductNorthPole (const double u[], double w[]) const
| Compute the normalized vector triple product (u x northPole) x u and store result in w. Returns true if w has finite length, false if length(w) is zero. More...
void | move (const double v[], const double vtp[], const double &a, double u[]) const
| Move unit vector v in direction of vtp by distance a and store result in u. vtp is assumed to be a unit vector normal to v. More...
double | angle (const double u[], const double v[]) const
double | dot (const Location &other) const
double | dot (const double u[], const double v[]) const
double | cross (const double u[], const double v[], double w[]) const
double | crossNorth (const double u[], double w[]) const
double | normalize (double v[]) const
double | length (const double v[]) const

## Static Public Member Functions
static string | class_name ()
Static Public Member Functions inherited from slbm::GridProfile
static string | class_name ()
static int | getClassCount ()
Static Public Member Functions inherited from slbm::Location
static int | getClassCount ()

## Protected Attributes
Grid & | grid
GeoStack * | geoStack
| The GeoStack object that holds all the interface depths, velocities and gradients. More...
double | waterThick
Protected Attributes inherited from slbm::GridProfile
int | nodeId
| The node id of this GridProfile. More...
int | activeNodeId
double | weight
| A temporary weight storage location used exclusively by the GreatCircle::getWeights(...) function. More...
int | nHits
| The number of times this node has been 'touched' by a GreatCircle. More...
double | earthRadius
Protected Attributes inherited from slbm::Location
double | v [3]
double | radius

## Friends
class | Grid

## Additional Inherited Members
Static Public Attributes inherited from slbm::Location
static double | EARTH_RADIUS
Static Protected Attributes inherited from slbm::GridProfile
static int | gridProfileClassCount
Static Protected Attributes inherited from slbm::Location
static int | locationClassCount

## Detailed Description

Manages all information related to a single node in a Grid object.

Manages all information related to a single node in a Grid object including: the Location of the node, the depths of all model interfaces, the P and S velocities of each model interval, and the P and S velocity gradients in the mantle.

GridProfileSLBM objects are created in Grid::loadVelocityModel() and deleted in Grid::~Grid.

Definition at line 61 of file GridProfileSLBM.h.

## Constructor & Destructor Documentation

## ◆ GridProfileSLBM() [1/2]

slbm::GridProfileSLBM::GridProfileSLBM | ( | Grid & | g,
|  | const int & | i,
|  | const double & | lat,
|  | const double & | lon,
|  | const double & | elev,
|  | const double & | zwater,
|  | GeoStack * | gstack
| ) |  |

Parameterized constructor.

Parameterized constructor. Note that the Location that this inherits from is having depth set to zero so that the radius of this object is equivalent to calling getEarthRadius().

## ◆ GridProfileSLBM() [2/2]

slbm::GridProfileSLBM::GridProfileSLBM | ( | const GridProfileSLBM & | other | ) |

Copy constructor.

Copy constructor.

## ◆ ~GridProfileSLBM()

slbm::GridProfileSLBM::~GridProfileSLBM | ( |  | ) |

Destructor.

Destructor.

## Member Function Documentation

## ◆ class_name()

static string slbm::GridProfileSLBM::class_name | ( |  | ) |
| inlinestatic

Definition at line 98 of file GridProfileSLBM.h.

## ◆ getData()

void slbm::GridProfileSLBM::getData | ( | double * | depths,
|  | double * | pvelocity,
|  | double * | svelocity,
|  | double * | gradient
| ) |  |
| inlinevirtual

Retrieve all the data associated with this Profile.

Retrieve all the data associated with this Profile.

Parameters

  depths | the depths of the top of each interval associated with this Profile.
  pvelocity | the P velocities of each interval, in km/sec.
  svelocity | the S velocities of each interval, in km/sec.
  gradient | a 2-element array specifying the P and S velocity gradient in the mantle, in 1/sec.

Reimplemented from slbm::GridProfile.

Definition at line 236 of file GridProfileSLBM.h.

## ◆ getGeoStackId()

int slbm::GridProfileSLBM::getGeoStackId | ( |  | ) |
| inlinevirtual

Retrieve the index of the GeoStack that holds the information about model interfaces, velocities and gradients.

Retrieve the index of the GeoStack that holds the information about model interfaces, velocities and gradients.

Reimplemented from slbm::GridProfile.

Definition at line 107 of file GridProfileSLBM.h.

## ◆ getInterfaceDepth()

double slbm::GridProfileSLBM::getInterfaceDepth | ( | const int & | k | ) |
| inlinevirtual

Retrieve the depth of the k'th interval, in km relative sea level.

brief Retrieve the depth of the k'th interval, in km relative sea level.

Reimplemented from slbm::GridProfile.

Definition at line 250 of file GridProfileSLBM.h.

## ◆ getInterfaceDepths()

void slbm::GridProfileSLBM::getInterfaceDepths | ( | vector< double > & | depths | ) |
| inlinevirtual

Retrieve the depths of all intervals, in km.

Retrieve the depths of all intervals, in km.

Reimplemented from slbm::GridProfile.

Definition at line 256 of file GridProfileSLBM.h.

## ◆ getInterfaceRadius()

double slbm::GridProfileSLBM::getInterfaceRadius | ( | const int & | k | ) |
| inlinevirtual

Retrieve the radius of the k'th interval, in km.

Retrieve the radius of the k'th interval, in km.

Reimplemented from slbm::GridProfile.

Definition at line 221 of file GridProfileSLBM.h.

## ◆ getMantleGradient() [1/2]

double slbm::GridProfileSLBM::getMantleGradient | ( | const int & | waveType | ) |
| inlinevirtual

Retrieve the P or S velocity gradient in the mantle, in 1/sec.

Retrieve the P or S velocity gradient in the mantle, in 1/sec.

Parameters

  waveType | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.

Reimplemented from slbm::GridProfile.

Definition at line 177 of file GridProfileSLBM.h.

## ◆ getMantleGradient() [2/2]

void slbm::GridProfileSLBM::getMantleGradient | ( | double * | g | ) |
| inlinevirtual

Retrieve the P and S velocity gradients in the mantle, in 1/sec.

Retrieve the P and S velocity gradients in the mantle, in 1/sec.

Reimplemented from slbm::GridProfile.

Definition at line 196 of file GridProfileSLBM.h.

## ◆ getVelocity() [1/2]

double slbm::GridProfileSLBM::getVelocity | ( | const int & | waveType,
|  | const int & | k
| ) |  |
| inlinevirtual

Retrieve the P or S velocity of the k'th interval, in km/sec.

Retrieve the P or S velocity of the k'th interval, in km/sec.

Parameters

  waveType | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
  k | the index of the desired interval. The shallowest interval is index 0.

Reimplemented from slbm::GridProfile.

Definition at line 170 of file GridProfileSLBM.h.

## ◆ getVelocity() [2/2]

void slbm::GridProfileSLBM::getVelocity | ( | const int & | waveType,
|  | double * | velocity
| ) |  |
| inlinevirtual

Retrieve the P or S velocities of all intervals, in km/sec.

Retrieve the P or S velocities of all intervals, in km/sec.

Parameters

  waveType | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
  velocity | (output) the P or S velocity of all the intervals, in km/sec

Reimplemented from slbm::GridProfile.

Definition at line 190 of file GridProfileSLBM.h.

## ◆ getWaterThick()

double slbm::GridProfileSLBM::getWaterThick | ( |  | ) |
| inlinevirtual

Reimplemented from slbm::GridProfile.

Definition at line 198 of file GridProfileSLBM.h.

## ◆ setData()

void slbm::GridProfileSLBM::setData | ( | double * | depths,
|  | double * | pvelocities,
|  | double * | svelocities,
|  | double * | gradients
| ) |  |
| virtual

Set the P and S velocities and gradients associated with this GridProfileSLBM object to specified values.

Set the P and S velocities and gradients associated with this GridProfileSLBM object to specified values.

Parameters

  depths | the depths of the interfaces, in km below sea level.
  pvelocities | the P velocities stored in this GridProfileSLBM, in km/sec.
  svelocities | the S velocities stored in this GridProfileSLBM, in km/sec.
  gradients | a 2-element vector specifying the P and S velocity gradients in the mantle, in 1/sec.

Reimplemented from slbm::GridProfile.

## ◆ setDepths()

void slbm::GridProfileSLBM::setDepths | ( | const vector< double > & | depths | ) |
| virtual

Set the layer depths to specified values.

Set the layer depths to specified values.

Parameters

  depths | the layer depths, in km below sea level.

Reimplemented from slbm::GridProfile.

## ◆ setGradient()

void slbm::GridProfileSLBM::setGradient | ( | const vector< double > & | gradient | ) |
| virtual

Set the P and S velocity gradients to specified values.

Set the P and S velocity gradients to specified values.

Parameters

  gradient | the P and S velocity gradients, in km/sec.

Reimplemented from slbm::GridProfile.

## ◆ setVelocity()

void slbm::GridProfileSLBM::setVelocity | ( | const int & | waveType,
|  | const vector< double > & | velocity
| ) |  |
| virtual

Set the P or S velocity to specified values.

Set the P or S velocity to specified values.

Parameters

  waveType | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
  velocity | the P or S velocity, in km/sec.

Reimplemented from slbm::GridProfile.

## Friends And Related Function Documentation

## ◆ Grid

friend class Grid
| friend

Definition at line 74 of file GridProfileSLBM.h.

## Member Data Documentation

## ◆ geoStack

GeoStack* slbm::GridProfileSLBM::geoStack
| protected

The GeoStack object that holds all the interface depths, velocities and gradients.

The GeoStack object that holds all the interface depths, velocities and gradients.

Definition at line 209 of file GridProfileSLBM.h.

## ◆ grid

Grid& slbm::GridProfileSLBM::grid
| protected

Definition at line 202 of file GridProfileSLBM.h.

## ◆ waterThick

double slbm::GridProfileSLBM::waterThick
| protected

Definition at line 211 of file GridProfileSLBM.h.

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

- rstt/SLBM/include/GridProfileSLBM.h