SLBM  3.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>

Inherits slbm::InterpolatedProfile.

Inherited by 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 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.

Constructor & Destructor Documentation

slbm::LayerProfile::LayerProfile ( GreatCircle greatCircle,
Location location 
)

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.
slbm::LayerProfile::LayerProfile ( const LayerProfile LayerProfile)

Copy constructor.

slbm::LayerProfile::~LayerProfile ( )

Destructor.

Member Function Documentation

static int slbm::LayerProfile::getClassCount ( )
static
virtual double slbm::LayerProfile::getGradient ( )
inlinevirtual

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.

double slbm::LayerProfile::getRadius ( )
inline

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

double slbm::LayerProfile::getVelocity ( )
inline

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

size_t slbm::LayerProfile::memSize ( )
inlinevirtual

Reimplemented from slbm::InterpolatedProfile.

Reimplemented in slbm::LayerProfileG.

int slbm::LayerProfile::nIntervals ( )
inline

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

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

Inequality operator.

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

Equal operator.

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

Equality operator.

Member Data Documentation

int slbm::LayerProfile::layerProfileClassCount
staticprotected
double slbm::LayerProfile::radius
protected

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

double slbm::LayerProfile::velocity
protected

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


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