A Profile object based on values interpolated from nearby GridProfile objects.
More...
#include <InterpolatedProfile.h>
Inherited by slbm::CrustalProfile, slbm::LayerProfile, and slbm::QueryProfile.
|
| 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...
|
|
virtual size_t | memSize () |
|
The InterpolatedProfile class represents a Profile based on depth, velocity and gradient values interpolated from values from nearby GridProfile objects.
An InterpolatedProfile object is not particularly useful since it does not own any containers to store depth, velocity and gradient information. CrustalProfile, LayerProfile and QueryProfile objects are derived off of InterpolatedProfile class and provide that functionality.
slbm::InterpolatedProfile::InterpolatedProfile |
( |
| ) |
|
slbm::InterpolatedProfile::InterpolatedProfile |
( |
Grid & |
grid, |
|
|
Location & |
location |
|
) |
| |
Parameterized constructor that sets up a Profile object based on values interpolated from nearby GridProfile objects.
- Parameters
-
grid | a reference to the Grid object. Grid::findProfile() will be called to retrieve the neighbors and interpolation coefficients. |
location | the Location where the profile is to be constructed |
virtual slbm::InterpolatedProfile::~InterpolatedProfile |
( |
| ) |
|
|
virtual |
static int slbm::InterpolatedProfile::getClassCount |
( |
| ) |
|
|
static |
double slbm::InterpolatedProfile::getCoefficient |
( |
const int & |
i | ) |
|
|
inline |
vector<double>& slbm::InterpolatedProfile::getCoefficients |
( |
| ) |
|
|
inline |
Retrieve the interpolation coefficients that define the dependency of this InterpolatedProfile on its neighbors. The calling application is given a const reference to the double array of values owned by this InterpolatedProfile object. There will be SLBMGlobals::nCoefficients elements.
void slbm::InterpolatedProfile::getCoefficients |
( |
double * |
coeff, |
|
|
int & |
size |
|
) |
| |
|
inline |
Retrieve the interpolation coefficients that were applied to the neighboring GridProfiles that contributed to the interpolated values at this InterpolatedProfile object. It is the responsibility of the caller to supply a double array large enough to hold the requested values. There will be SLBMGlobals::nCoefficients elements.
int slbm::InterpolatedProfile::getNCoefficients |
( |
| ) |
|
|
inline |
GridProfile* slbm::InterpolatedProfile::getNode |
( |
const int & |
i | ) |
|
|
inline |
int slbm::InterpolatedProfile::getNodeId |
( |
const int & |
i | ) |
|
|
inline |
vector<int>& slbm::InterpolatedProfile::getNodeIds |
( |
| ) |
|
|
inline |
void slbm::InterpolatedProfile::getNodeIds |
( |
int * |
nodeIds, |
|
|
int & |
size |
|
) |
| |
|
inline |
Retrieve the ID numbers of the GridProfiles that contributed to the interpolated values at this InterpolatedProfile object. It is the responsibility of the caller to supply an int array large enough to hold the requested values. There will be SLBMGlobals::nCoefficients elements.
void slbm::InterpolatedProfile::getWeights |
( |
int * |
nodeIds, |
|
|
double * |
coeff, |
|
|
int & |
size |
|
) |
| |
|
inline |
void slbm::InterpolatedProfile::interpDepth |
( |
const int & |
k, |
|
|
double & |
depth |
|
) |
| |
|
inline |
Calculate a single depth value based on the neighboring GridProfile objects and the interpolation coefficients.
- Parameters
-
k | the interval id of the desired radius. |
depth | the interpolated depth value, in km. |
void slbm::InterpolatedProfile::interpGradient |
( |
const int & |
type, |
|
|
double & |
gradient |
|
) |
| |
|
inline |
Calculate a single gradient value based on the neighboring GridProfile objects and the interpolation coefficients.
- Parameters
-
type | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE. |
gradient | the interpolated gradient value, in 1/sec. |
void slbm::InterpolatedProfile::interpRadius |
( |
const int & |
k, |
|
|
double & |
radius |
|
) |
| |
|
inline |
Calculate a single radius value based on the neighboring GridProfile objects and the interpolation coefficients.
- Parameters
-
k | the interval id of the desired radius. |
radius | the interpolated radius value, in km. |
void slbm::InterpolatedProfile::interpVelocity |
( |
const int & |
type, |
|
|
const int & |
k, |
|
|
double & |
velocity |
|
) |
| |
|
inline |
Calculate a single velocity value based on the neighboring GridProfile objects and the interpolation coefficients.
- Parameters
-
type | either SLBMGlobals::PWAVE or SLBMGlobals::SWAVE. |
k | the interval id of the desired velocity. |
velocity | the interpolated velocity value, in km/sec. |
bool slbm::InterpolatedProfile::isActiveProfile |
( |
| ) |
|
|
inline |
are active nodes.
Returns true if all of the neighboring GridProfile objects are active nodes.
virtual size_t slbm::InterpolatedProfile::memSize |
( |
| ) |
|
|
virtual |
vector<double> slbm::InterpolatedProfile::coefficients |
|
protected |
The interpolation coefficients which should be applied to this InterpolatedProfile's neighbors in order to compute interpolated quantities.
int slbm::InterpolatedProfile::interpolatedProfileClassCount |
|
staticprotected |
vector<int> slbm::InterpolatedProfile::nodeIds |
|
protected |
The documentation for this class was generated from the following file:
- /nfs/tonto2/devlpool/sballar/RSTT/SLBM_Root.3.0.5/install/SLBM_Root.3.0.5.Linux/SLBM/include/InterpolatedProfile.h