RSTT: slbm::LayerProfile Class Reference

RSTT 3.1.0 Regional Seismic Travel Time

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

A Profile object based on values interpolated from nearby GridProfile objects. More...

`#include <LayerProfile.h>`

Inheritance diagram for slbm::LayerProfile:

## Public Member Functions
| LayerProfile (GreatCircle *greatCircle, Location &location)
| Parameterized constructor. More...
| LayerProfile (const LayerProfile &LayerProfile)
| Copy constructor. More...
| ~LayerProfile ()
| Destructor. More...
LayerProfile & | operator= (const LayerProfile &other)
| Equal operator. More...
bool | operator== (const LayerProfile &other)
| Equality operator. More...
bool | operator!= (const LayerProfile &other)
| Inequality operator. More...
int | nIntervals ()
| Retrieve the number of intervals associated with this Profile (always returns 1). More...
double | getRadius ()
| Retrieve the radius of the top of the interval represented by this LayerProfile, in km. More...
double | getVelocity ()
| Retrieve the velocity of the interval represented by this LayerProfile, in km/s. More...
virtual double | getGradient ()
| Retrieve the velocity gradient in the interval represented by this LayerProfile, in 1/s. More...
virtual size_t | memSize ()
Public Member Functions inherited from slbm::InterpolatedProfile
| InterpolatedProfile ()
| Default constructor. More...
| InterpolatedProfile (Grid &grid, Location &location)
| Parameterized constructor. More...
| InterpolatedProfile (const InterpolatedProfile &other)
| Copy constructor. More...
virtual | ~InterpolatedProfile ()
| Destructor. More...
InterpolatedProfile & | operator= (const InterpolatedProfile &other)
| Equal operator. More...
bool | operator== (const InterpolatedProfile &other)
| Equality operator. More...
bool | operator!= (const InterpolatedProfile &other)
| Inequality operator. More...
int | getNCoefficients ()
vector< GridProfile * > & | getNodes ()
| Retrieve a list of pointers to the GridProfile objects upon which this InterpolatedProfile is dependent. More...
GridProfile * | getNode (const int &i)
vector< int > & | getNodeIds ()
int | getNodeId (const int &i)
vector< double > & | getCoefficients ()
| Retrieve the interpolation coefficients that define the dependency of this InterpolatedProfile on its neighbors. More...
double | getCoefficient (const int &i)
void | getNodeIds (int *nodeIds, int &size)
| Retrieve the ID numbers of the GridProfiles that contributed to the interpolated values at this InterpolatedProfile object. More...
void | getCoefficients (double *coeff, int &size)
| Retrieve the interpolation coefficients that were applied to the neighboring GridProfiles that contributed to the interpolated values at this InterpolatedProfile object. More...
void | getWeights (int *nodeIds, double *coeff, int &size)
void | interpRadius (const int &k, double &radius)
| Calculate a single radius value based on the neighboring GridProfile objects and the interpolation coefficients. More...
void | interpDepth (const int &k, double &depth)
| Calculate a single depth value based on the neighboring GridProfile objects and the interpolation coefficients. More...
void | interpVelocity (const int &type, const int &k, double &velocity)
| Calculate a single velocity value based on the neighboring GridProfile objects and the interpolation coefficients. More...
void | interpGradient (const int &type, double &gradient)
| Calculate a single gradient value based on the neighboring GridProfile objects and the interpolation coefficients. More...
bool | isActiveProfile ()
| Returns true if all of the neighboring GridProfile objects. More...

## Static Public Member Functions
static int | getClassCount ()
Static Public Member Functions inherited from slbm::InterpolatedProfile
static int | getClassCount ()

## Protected Attributes
double | radius
| The radius of the interface represented by this LayerProfile object, in km. More...
double | velocity
| The P or S velocity of the interval, in km/sec. More...
Protected Attributes inherited from slbm::InterpolatedProfile
vector< GridProfile * > | nodes
| An array of pointers to the GridProfile objects upon which this InterpolatedProfile is dependent. More...
vector< int > | nodeIds
| An array of pointers to the GridProfile objects upon which this InterpolatedProfile is dependent. More...
vector< double > | coefficients
| The interpolation coefficients which should be applied to this InterpolatedProfile's neighbors in order to compute interpolated quantities. More...

## Static Protected Attributes
static int | layerProfileClassCount
Static Protected Attributes inherited from slbm::InterpolatedProfile
static int | interpolatedProfileClassCount

## Detailed Description

A Profile object based on values interpolated from nearby GridProfile objects.

A LayerProfile object only stores the depth, velocity and gradient for a single interval of the Earth model. For a LayerProfile object instantiated to support the Pn or Sn phase, the interval represented is the mantle. For Pg and Lg phases, the represented interval is the middle crust. For Pn and Pg, the velocity stored is the P wave velocity. For Sn and Lg, S wave velocity is stored. For Pn and Sn, P wave and S wave mantle velocity gradient information is stored, respectively. For Pg and Lg, the mantle gradient attribute is set to SLBMGlobals::NA_VALUE.

LayerProfile objects are designed to be as small as possible. From parent class InterpolatedProfile, they inherit the node IDs and interpolation coefficients that relate them to neighboring GridProfile objects. On top of this they store a single radius and velocity value. If the supported phase is Pn or Sn, they also store a gradient value.

LayerProfile objects do not store a Location and hence do not know their position in space. The GreatCircle object that owns the LayerProfile object can determine its position however.

Definition at line 75 of file LayerProfile.h.

## Constructor & Destructor Documentation

## ◆ LayerProfile() [1/2]

slbm::LayerProfile::LayerProfile | ( | GreatCircle * | greatCircle,
|  | Location & | location
| ) |  |

Parameterized constructor.

Parameterized constructor that builds a LayerProfile object based on values interpolated from nearby GridProfile objects.

Parameters

  greatCircle | the GreatCircle object of which this LayerProfile will be a member.
  location | the Location where the profile is be constructed.

## ◆ LayerProfile() [2/2]

slbm::LayerProfile::LayerProfile | ( | const LayerProfile & | LayerProfile | ) |

Copy constructor.

Copy constructor.

## ◆ ~LayerProfile()

slbm::LayerProfile::~LayerProfile | ( |  | ) |

Destructor.

Destructor.

## Member Function Documentation

## ◆ getClassCount()

static int slbm::LayerProfile::getClassCount | ( |  | ) |
| static

## ◆ getGradient()

virtual double slbm::LayerProfile::getGradient | ( |  | ) |
| inlinevirtual

Retrieve the velocity gradient in the interval represented by this LayerProfile, in 1/s.

Retrieve the velocity gradient in the interval represented by this LayerProfile, in 1/s. For Pg and Lg, returns SLBMGlobals::NA_VALUE.

Reimplemented in slbm::LayerProfileG.

Definition at line 140 of file LayerProfile.h.

## ◆ getRadius()

double slbm::LayerProfile::getRadius | ( |  | ) |
| inline

Retrieve the radius of the top of the interval represented by this LayerProfile, in km.

Retrieve the radius of the top of the interval represented by this LayerProfile, in km.

Definition at line 125 of file LayerProfile.h.

## ◆ getVelocity()

double slbm::LayerProfile::getVelocity | ( |  | ) |
| inline

Retrieve the velocity of the interval represented by this LayerProfile, in km/s.

Retrieve the velocity of the interval represented by this LayerProfile, in km/s.

Definition at line 132 of file LayerProfile.h.

## ◆ memSize()

size_t slbm::LayerProfile::memSize | ( |  | ) |
| inlinevirtual

Reimplemented from slbm::InterpolatedProfile.

Reimplemented in slbm::LayerProfileG.

Definition at line 169 of file LayerProfile.h.

## ◆ nIntervals()

int slbm::LayerProfile::nIntervals | ( |  | ) |
| inline

Retrieve the number of intervals associated with this Profile (always returns 1).

Retrieve the number of intervals associated with this Profile (always returns 1).

Definition at line 118 of file LayerProfile.h.

## ◆ operator!=()

bool slbm::LayerProfile::operator!= | ( | const LayerProfile & | other | ) |
| inline

Inequality operator.

Inequality operator.

Definition at line 111 of file LayerProfile.h.

## ◆ operator=()

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

Equal operator.

Equal operator.

## ◆ operator==()

bool slbm::LayerProfile::operator== | ( | const LayerProfile & | other | ) |

Equality operator.

Equality operator.

## Member Data Documentation

## ◆ layerProfileClassCount

int slbm::LayerProfile::layerProfileClassCount
| staticprotected

Definition at line 148 of file LayerProfile.h.

## ◆ radius

double slbm::LayerProfile::radius
| protected

The radius of the interface represented by this LayerProfile object, in km.

The radius of the interface represented by this LayerProfile object, in km.

Definition at line 155 of file LayerProfile.h.

## ◆ velocity

double slbm::LayerProfile::velocity
| protected

The P or S velocity of the interval, in km/sec.

The P or S velocity of the interval, in km/sec.

Definition at line 160 of file LayerProfile.h.

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

- rstt/SLBM/include/LayerProfile.h