SLBM  3.0
Regional Seismic Travel Time
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
slbm::QueryProfile Class Reference

An InterpolatedProfile object that also has information about the the P and S wave velocity as a function of depth for all layers, and the velocity gradient in the mantle. More...

#include <QueryProfile.h>

Inherits slbm::InterpolatedProfile.

Public Member Functions

 QueryProfile (Grid &grid, Location &location)
 Parameterized constructor. More...
 
 QueryProfile (const QueryProfile &QueryProfile)
 Copy constructor. More...
 
 ~QueryProfile ()
 
QueryProfileoperator= (const QueryProfile &other)
 Equal operator. More...
 
bool operator== (const QueryProfile &other)
 Equality operator. More...
 
bool operator!= (const QueryProfile &other)
 Inequality operator. More...
 
int nIntervals ()
 Retrieve the number of intervals associated with this Profile. More...
 
void getData (int *nodeIds, double *coefficients, int &nNeighbors, double *depths, double *pvelocities, double *svelocities, double &pgradient, double &sgradient)
 Retrieve all the interval depth and velocity information contained in this QueryProfile object. More...
 
vector< int > & getNodeIds ()
 
double * getDepth ()
 Retrieve the depth of the top of the k'th interval, in km. More...
 
double * getVelocity (const int &waveType)
 Retrieve the P or S wave velocity of the k'th interval, in km/sec. More...
 
double * getMantleGradient ()
 Retrieve the P or S wave velocity gradient, in 1/sec. More...
 
string toString ()
 Returns a formatted string containing detailed information about this Profile. More...
 
- 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...
 
virtual size_t memSize ()
 

Static Public Member Functions

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

Private Attributes

Location location
 
vector< int > nodeIds
 
double depth [NLAYERS]
 Depth of the top of each interval, in km. More...
 
double pvelocity [NLAYERS]
 The P velocity of each interval, in km/sec. More...
 
double svelocity [NLAYERS]
 The S velocity of each interval, in km/sec. More...
 
double gradient [2]
 The P and S velocity gradients in the mantle, in 1/sec. More...
 

Static Private Attributes

static int queryProfileClassCount
 

Additional Inherited Members

- 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 inherited from slbm::InterpolatedProfile
static int interpolatedProfileClassCount
 

Detailed Description

The QueryProfile class represents a Profile based on depth, velocity and gradient values interpolated from values of nearby GridProfile objects. The simplest way to obtain a QueryProfile object is to call Grid::getQueryProfile().

Constructor & Destructor Documentation

slbm::QueryProfile::QueryProfile ( Grid grid,
Location location 
)

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

Parameters
grida reference to the Grid object. Grid::findProfile() will be called to retrieve the neighbors and interpolation coefficients.
locationthe Location of the query position.
slbm::QueryProfile::QueryProfile ( const QueryProfile QueryProfile)

Copy constructor.

slbm::QueryProfile::~QueryProfile ( )

Member Function Documentation

static int slbm::QueryProfile::getClassCount ( )
static
void slbm::QueryProfile::getData ( int *  nodeIds,
double *  coefficients,
int &  nNeighbors,
double *  depths,
double *  pvelocities,
double *  svelocities,
double &  pgradient,
double &  sgradient 
)
inline

Retrieve all the interval depth and velocity information contained in this QueryProfile object.

double* slbm::QueryProfile::getDepth ( )
inline

Retrieve the depth of the top of the k'th interval, in km.

double* slbm::QueryProfile::getMantleGradient ( )
inline

Retrieve the P or S wave velocity gradient, in 1/sec.

vector<int>& slbm::QueryProfile::getNodeIds ( )
inline
double* slbm::QueryProfile::getVelocity ( const int &  waveType)
inline

Retrieve the P or S wave velocity of the k'th interval, in km/sec.

int slbm::QueryProfile::nIntervals ( )
inline

Retrieve the number of intervals associated with this Profile.

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

Inequality operator.

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

Equal operator.

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

Equality operator.

string slbm::QueryProfile::toString ( )

Returns a formatted string containing detailed information about this Profile.

Member Data Documentation

double slbm::QueryProfile::depth[NLAYERS]
private

Depth of the top of each interval, in km.

double slbm::QueryProfile::gradient[2]
private

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

Location slbm::QueryProfile::location
private
vector<int> slbm::QueryProfile::nodeIds
private
double slbm::QueryProfile::pvelocity[NLAYERS]
private

The P velocity of each interval, in km/sec.

int slbm::QueryProfile::queryProfileClassCount
staticprivate
double slbm::QueryProfile::svelocity[NLAYERS]
private

The S velocity of each interval, in km/sec.


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