SLBM  3.0
Regional Seismic Travel Time
Public Member Functions | Private Attributes | List of all members
taup::TPdDistdr< V > Class Template Reference

Distance Integrand. Integrating this function over radius yields distance. More...

#include <TPVelocityModels.h>

Public Member Functions

 TPdDistdr (V &v)
 Standard constructor. More...
 
 TPdDistdr (const TPdDistdr< V > &di)
 Copy constructor. More...
 
virtual ~TPdDistdr ()
 Destructor. More...
 
TPdDistdroperator= (const TPdDistdr< V > &di)
 Assignment Operator. More...
 
double operator() (double r)
 Function operator that returns the result of the distance integrand evaluated at the input radius r. More...
 
void setP (double p)
 Sets the ray parameter to the input value p. More...
 

Private Attributes

double diP
 The ray parameter as set through the function setP(p). More...
 
V & diV
 The velocity model as set through the standard constructor. More...
 

Detailed Description

template<class V>
class taup::TPdDistdr< V >

This is the 1D radially symetric layered model distance integrand given by

                     p v(r)
dDist/dr = --------------------------
           r sqrt(r^2 - (p v(r))^2)

This object requires the velocity model as a template parameter (V) from which the velocity at a radial position (v(r)) is found. The ray parameter (p) is set with the function setP(). The velocity model is set at construction and cannot be changed once defined.

The equation above is defined in the overloaded function operator() which is called by the numerical integration facility to integrate the function.

Constructor & Destructor Documentation

template<class V>
taup::TPdDistdr< V >::TPdDistdr ( V &  v)
inline

This is the only means of setting the velocity model into the integrand. The ray parameter is initialized to 0.

template<class V>
taup::TPdDistdr< V >::TPdDistdr ( const TPdDistdr< V > &  di)
inline
template<class V>
virtual taup::TPdDistdr< V >::~TPdDistdr ( )
inlinevirtual

Member Function Documentation

template<class V>
double taup::TPdDistdr< V >::operator() ( double  r)
inline
template<class V>
TPdDistdr& taup::TPdDistdr< V >::operator= ( const TPdDistdr< V > &  di)
inline

Since the velocity model is set by reference it cannot be changed. The assignment operator simply sets the ray parameter as defined in the input TPdDistdr

template<class V>
void taup::TPdDistdr< V >::setP ( double  p)
inline

Member Data Documentation

template<class V>
double taup::TPdDistdr< V >::diP
private
template<class V>
V& taup::TPdDistdr< V >::diV
private

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