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

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

#include <LayerProfile.h>

Inheritance diagram for slbm::LayerProfile:
slbm::InterpolatedProfile slbm::LayerProfileG

Public Member Functions

 LayerProfile (GreatCircle *greatCircle, Location &location)
 Parameterized constructor. More...
 
 LayerProfile (const LayerProfile &LayerProfile)
 Copy constructor. More...
 
 ~LayerProfile ()
 Destructor. More...
 
LayerProfileoperator= (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...
 
InterpolatedProfileoperator= (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...
 
GridProfilegetNode (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
greatCirclethe GreatCircle object of which this LayerProfile will be a member.
locationthe 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: