RSTT
3.2.0
Regional Seismic Travel Time
|
A Profile object based on values interpolated from nearby GridProfile objects. More...
#include <LayerProfile.h>
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 () |
![]() | |
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 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... | |
![]() | |
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 int | interpolatedProfileClassCount |
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.
slbm::LayerProfile::LayerProfile | ( | GreatCircle * | greatCircle, |
Location & | location | ||
) |
Parameterized constructor.
Parameterized constructor that builds a LayerProfile object based on values interpolated from nearby GridProfile objects.
greatCircle | the GreatCircle object of which this LayerProfile will be a member. |
location | the Location where the profile is be constructed. |
slbm::LayerProfile::LayerProfile | ( | const LayerProfile & | LayerProfile | ) |
Copy constructor.
Copy constructor.
slbm::LayerProfile::~LayerProfile | ( | ) |
Destructor.
Destructor.
|
static |
|
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.
|
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.
|
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.
|
inlinevirtual |
Reimplemented from slbm::InterpolatedProfile.
Reimplemented in slbm::LayerProfileG.
Definition at line 169 of file LayerProfile.h.
|
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.
|
inline |
LayerProfile& slbm::LayerProfile::operator= | ( | const LayerProfile & | other | ) |
Equal operator.
Equal operator.
bool slbm::LayerProfile::operator== | ( | const LayerProfile & | other | ) |
Equality operator.
Equality operator.
|
staticprotected |
Definition at line 148 of file LayerProfile.h.
|
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.
|
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.