SLBM: slbm::GridProfileGeoTess Class Reference

SLBM 3.0 Regional Seismic Travel Time

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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

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

`#include <GridProfileGeoTess.h>`

Inherits slbm::GridProfile.

## Public Member Functions
| GridProfileGeoTess (Grid &g, const int &nodeId, Location &location)
| Parameterized constructor. More...
| GridProfileGeoTess (const GridProfileGeoTess &other)
| Copy constructor. More...
| ~GridProfileGeoTess ()
| 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[NLAYERS], double pvelocities[NLAYERS], double svelocities[NLAYERS], double gradients[2])
| Set the P and S velocities and gradients associated with this GridProfileGeoTess 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 *velocities)
| 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 ()
virtual void | setData (double *depths, double *pvelocities, double *svelocities, double *gradients)
| Set the P and S velocities and gradients associated with this GridProfile object to specified values. More...
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 Member Functions
bool | hasLowVelocityZone ()

## Protected Attributes
GeoTessModelSLBM * | model
GeoTessProfile ** | gtProfiles
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 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.

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

## Constructor & Destructor Documentation

slbm::GridProfileGeoTess::GridProfileGeoTess | ( | Grid & | g,
|  | const int & | nodeId,
|  | Location & | location
| ) |  |

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().

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

Copy constructor.

slbm::GridProfileGeoTess::~GridProfileGeoTess | ( |  | ) |

Destructor.

## Member Function Documentation

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

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

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.

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

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

Reimplemented from slbm::GridProfile.

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

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

Reimplemented from slbm::GridProfile.

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

Retrieve the depths of all intervals, in km.

Reimplemented from slbm::GridProfile.

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

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

Reimplemented from slbm::GridProfile.

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

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.

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

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

Parameters

  g | a 2-element array that will be populated with the gradients.

Reimplemented from slbm::GridProfile.

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

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.

void slbm::GridProfileGeoTess::getVelocity | ( | const int & | waveType,
|  | double * | velocities
| ) |  |
| inlinevirtual

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

Parameters

  waveType | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
  velocities | a double array with at least NLAYERS elements that will be populated with the velocity information

Reimplemented from slbm::GridProfile.

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

Reimplemented from slbm::GridProfile.

bool slbm::GridProfileGeoTess::hasLowVelocityZone | ( |  | ) |
| protected

void slbm::GridProfileGeoTess::setData | ( | double | depths[NLAYERS],
|  | double | pvelocities[NLAYERS],
|  | double | svelocities[NLAYERS],
|  | double | gradients[2]
| ) |  |

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

Parameters

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

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

Set the layer depths to specified values.

Parameters

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

Reimplemented from slbm::GridProfile.

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

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.

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

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

friend class Grid
| friend

## Member Data Documentation

GeoTessProfile** slbm::GridProfileGeoTess::gtProfiles
| protected

GeoTessModelSLBM* slbm::GridProfileGeoTess::model
| protected

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

- /nfs/tonto2/devlpool/sballar/RSTT/SLBM_Root.3.0.5/install/SLBM_Root.3.0.5.Linux/SLBM/include/GridProfileGeoTess.h