RSTT 3.2.1 Regional Seismic Travel Time

Loading...
Searching...
No Matches
Grid.h
Go to the documentation of this file.
1//- ****************************************************************************
2//-
3//- Copyright 2009 National Technology & Engineering Solutions of Sandia, LLC
4//- (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S.
5//- Government retains certain rights in this software.
6//-
7//- BSD Open Source License
8//- All rights reserved.
9//-
10//- Redistribution and use in source and binary forms, with or without
11//- modification, are permitted provided that the following conditions are met:
12//-
13//- 1. Redistributions of source code must retain the above copyright notice,
14//- this list of conditions and the following disclaimer.
15//-
16//- 2. Redistributions in binary form must reproduce the above copyright
17//- notice, this list of conditions and the following disclaimer in the
18//- documentation and/or other materials provided with the distribution.
19//-
20//- 3. Neither the name of the copyright holder nor the names of its
21//- contributors may be used to endorse or promote products derived from
22//- this software without specific prior written permission.
23//-
24//- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25//- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26//- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27//- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
28//- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29//- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30//- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31//- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32//- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33//- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34//- POSSIBILITY OF SUCH DAMAGE.
35//-
36//- ****************************************************************************
37
38#ifndef SLBM_GRID_H
39#define SLBM_GRID_H
40
41// **** _SYSTEM INCLUDES_ ******************************************************
42#include <vector>
43#include <map>
44#include <cmath>
45
46 using namespace std;
47
48// **** _LOCAL INCLUDES_ *******************************************************
49
50#include "SLBMGlobals.h"
51#include "GridProfile.h"
52#include "InterpolatedProfile.h"
53#include "LayerProfile.h"
54#include "LayerProfileG.h"
55#include "QueryProfile.h"
56#include "CrustalProfile.h"
57#include "CrustalProfileStore.h"
58#include "GreatCircle.h"
59#include "GreatCircleFactory.h"
60#include "Location.h"
61#include "SLBMException.h"
62#include "Triangle.h"
63#include "UncertaintyPIU.h"
64#include "UncertaintyPDU.h"
65#include "GeoTessPolygon.h"
66#include "GeoTessModelSLBM.h"
67
68#include "DataBuffer.h"
69#include "MD50.h"
70
71// **** _BEGIN SLBM NAMESPACE_ **************************************************
72
73 namespace slbm {
74
90 class SLBM_EXP_IMP Grid
91{
92
93 public:
94
98 Grid();
99
103 // Grid(const Grid &other);
104 // virtual Grid *clone() = 0;
105
109 virtual ~Grid();
110
111 static Grid* getGrid(const string& modelDirectory);
112
113 static Grid* getGrid(util::DataBuffer& buffer);
114
115 static bool fileExists(const string& fileName);
116
120 virtual bool operator == (const Grid& other);
121
125 virtual bool operator != (const Grid& other) {return !(*this == other);};
126
130 static string class_name() { return "Grid"; };
131
135 virtual string getGridType() { return class_name(); };
136
140 virtual void clear();
141
147 virtual void loadFromFile(const string& filename) = ABSTRACT;
148
154 virtual void loadFromDirectory(const string& dirName) = ABSTRACT;
155
161 virtual void loadFromDataBuffer(util::DataBuffer& buffer) = ABSTRACT;
162
167 virtual void saveVelocityModel(util::DataBuffer& buffer) = ABSTRACT;
168
175 virtual void saveVelocityModel(const string& filename, const int& format) = ABSTRACT;
176
177 virtual int getBufferSize() const = ABSTRACT;
178
179 virtual bool is_directory(const string& dir);
180
184 virtual int getNNodes() { return profiles.size(); }
185
190 virtual int getNIntervals() { return NLAYERS;};
191
198 virtual GridProfile* getProfile(const int& nodeId);
199
227 virtual GreatCircle* getGreatCircle(
228 const int& phase,
229 const double& latSource,
230 const double& lonSource,
231 const double& depthSource,
232 const double& latReceiver,
233 const double& lonReceiver,
234 const double& depthReceiver,
235 const double& delta,
236 const double& ch_max);
237
255 //CrustalProfile* getCrustalProfile(const int& phase,
256 // const double& lat, const double& lon, const double& depth);
257
258 virtual CrustalProfile* getReceiverProfile(const int& phase,
259 const double& lat, const double& lon, const double& depth);
260
261 virtual CrustalProfile* getSourceProfile(const int& phase,
262 const double& lat, const double& lon, const double& depth);
263
267 virtual void clearCrustalProfiles();
268
286 virtual LayerProfile* getLayerProfile(GreatCircle* greatCircle,
287 Location& location);
288
298 virtual QueryProfile* getQueryProfile(Location& location);
299
305 vector<vector<UncertaintyPIU*> >& getUncertainty() { return piu; }
306 vector<vector<UncertaintyPIU*> >& getUncertaintyPIU() { return piu; }
307
314 UncertaintyPIU& getUncertaintyPIU(int phase, int attribute) { return *piu[phase][attribute]; }
315
320 vector<UncertaintyPDU*>& getUncertaintyPDU() { return pdu; }
321
327 UncertaintyPDU& getUncertaintyPDU(int phase) { return *pdu[phase]; }
328
335 virtual double getAverageMantleVelocity(const int& waveType) = ABSTRACT;
336
343 virtual void setAverageMantleVelocity(const int& waveType, const double& velocity) = ABSTRACT;
344
345 virtual int getNCrustalProfiles();
346
366 virtual bool findProfile(Location& location,
367 vector<GridProfile*>& neighbors, vector<int>& nodeIds,
368 vector<double>& coefficients) = ABSTRACT;
369
379 void initializeActiveNodes(double activeNodeLatMin,
380 double activeNodeLonMin,
381 double activeNodeLatMax,
382 double activeNodeLonMax);
383
392 void initializeActiveNodes(GeoTessPolygon* polygon);
393
397 virtual int getNActiveNodes() { return activeNodes.size(); };
398
399 void clearActiveNodes();
400
406 virtual int getGridNodeId(int activeNodeId)
407 { return (activeNodeId < 0 ? -1 : activeNodes[activeNodeId]); };
408
414 virtual int getActiveNodeId(int nodeId)
415 { return profiles[nodeId]->getActiveNodeId(); };
416
422 virtual void getNodeNeighbors(const int& nodeId, int neighbors[], int& nNeighbors) = ABSTRACT;
423
429 virtual void getNodeNeighbors(const int& nodeId, vector<int>& neighbors) = ABSTRACT;
430
438 virtual void getNodeNeighborInfo(const int& nodeId, int neighbors[],
439 double distance[], double azimuth[], int& nNeighbors);
440
448 virtual void getNodeNeighborInfo(const int& nodeId, vector<int>& neighbors,
449 vector<double>& distance, vector<double>& azimuth);
450
451 virtual void getActiveNodeNeighbors(const int& nodeid, int neighbors[], int& nNeighbors) = ABSTRACT;
452
453 virtual void getActiveNodeNeighbors(const int& nodeid, vector<int>& neighbors) = ABSTRACT;
454
455 virtual void getActiveNodeNeighborInfo(const int& nid, int neighbors[],
456 double distance[], double azimuth[], int& nNeighbors);
457
458 virtual void getActiveNodeNeighborInfo(const int& nid, vector<int>& neighbors,
459 vector<double>& distance, vector<double>& azimuth);
460
462 // grid nodes.
465 // grid nodes.
466 virtual void getNodeSeparation(const int& node1, const int& node2, double& distance);
467
471 virtual void getNodeAzimuth(const int& node1, const int& node2, double& azimuth);
472
473 virtual void getNodeHitCount(const int& nodeId, int& hitCount)
474 { hitCount = profiles[nodeId]->getHitCount(); };
475
476 virtual void clearNodeHitCount();
477
478 virtual int addGeoStack(GeoStack* geoStack) = ABSTRACT;
479
480 virtual size_t memSize() = ABSTRACT;
481
482 virtual size_t memSizeCrustalProfiles();
483
484 virtual string getTessId() = ABSTRACT;
485
486 string& getModelPath() { return modelPath; }
487
488 virtual string toString() = ABSTRACT;
489
490 virtual void setInterpolatorType(const string& interpolatorType) = ABSTRACT;
491
492 virtual string getInterpolatorType() = ABSTRACT;
493
494 string& getOutputDirectory() { return outputDirectory; }
495
496 void specifyOutputDirectory(const string& outputDir);
497
498 virtual GeoTessModelSLBM* getModel() { return model; }
499
500 virtual GeoTessPolygon *getPolygon() { return polygon; }
501
502 virtual vector<GridProfile*>& getProfiles() { return profiles; }
503
504 virtual GeoTessPosition* getPosition() = ABSTRACT;
505
506 CrustalProfileStore* getSources() { return sources; }
507 CrustalProfileStore* getReceivers() { return receivers; }
508
509
510 protected:
511
515 string modelPath;
516
520 vector<GridProfile*> profiles;
521
522 vector<int> activeNodes;
523
524 GeoTessModelSLBM* model;
525
526 GeoTessPolygon* polygon;
527
528 CrustalProfileStore* sources;
529 CrustalProfileStore* receivers;
530
531 vector<vector<UncertaintyPIU*> > piu;
532
533 vector<UncertaintyPDU*> pdu;
534
535 void writeBufferToFile(util::DataBuffer& buffer, string fileName);
536
537 void reaDataBuffererFromFile(util::DataBuffer& buffer, string dirname,
538 string fileName);
539
540// private:
541
542 string outputDirectory;
543
544};
545
546 inline GridProfile* Grid::getProfile(const int& n)
547{
548 if (n < 0 || n >= (int)profiles.size())
549 {
550 ostringstream os;
551 os << setiosflags(ios::fixed) << setiosflags(ios::showpoint) << setprecision(4);
552 os << endl << "ERROR in Grid::getProfile. NodeId "<< n << " is out of range. " << endl
553 << "Valid range is >= 0 and < " << profiles.size() << endl
554 << "Version " << SlbmVersion << " File " << __FILE__ << " line " << __LINE__ << endl << endl;
555 throw SLBMException(os.str(),107);
556 }
557 return profiles[n];
558}
559
560 inline LayerProfile* Grid::getLayerProfile(GreatCircle* gc,
561 Location& location)
562{
563 if (gc->getPhase()/2 == 0)
564 // for Pn or Sn, return a LayerProfile with gradient info.
565 return new LayerProfileG(gc, location);
566 else
567 // for Pg or Lg, return a LayerProfile without gradient info.
568 return new LayerProfile(gc, location);
569}
570
571 inline QueryProfile* Grid::getQueryProfile(Location& location)
572{
573 return new QueryProfile(*this, location);
574}
575
576 inline CrustalProfile* Grid::getSourceProfile(const int& phase,
577 const double& lat, const double& lon, const double& depth)
578{
579 return sources->getCrustalProfile(phase, lat, lon, depth);
580}
581
582 inline CrustalProfile* Grid::getReceiverProfile(const int& phase,
583 const double& lat, const double& lon, const double& depth)
584{
585 return receivers->getCrustalProfile(phase, lat, lon, depth);
586}
587
588 inline void Grid::clearCrustalProfiles()
589{
590 receivers->clear();
591 sources->clear();
592}
593
594 inline int Grid::getNCrustalProfiles()
595{
596 return receivers->getNCrustalProfiles()
597 + sources->getNCrustalProfiles();
598}
599
600 inline size_t Grid::memSizeCrustalProfiles()
601{
602 return receivers->memSize() + sources->memSize();
603}
604
605 inline void Grid::clearNodeHitCount()
606{
607 for (int i=0; i<(int)profiles.size(); ++i)
608 profiles[i]->clearHitCount();
609}
610
611 inline bool Grid::fileExists(const string& fileName)
612{
613 fstream f;
614
615 f.open(fileName.c_str(), ios::in);
616 if (f.is_open())
617 {
618 f.close();
619 return true;
620 }
621 return false;
622}
623
624
625} // end slbm namespace
626
627#endif // GRID_H
CrustalProfile.h
CrustalProfileStore.h
DataBuffer.h
GeoTessModelSLBM.h
GreatCircle.h
GreatCircleFactory.h
GridProfile.h
InterpolatedProfile.h
LayerProfile.h
LayerProfileG.h
Location.h
MD50.h
QueryProfile.h
SLBMException.h
SLBMGlobals.h
SLBM_EXP_IMP
#define SLBM_EXP_IMP
Definition SLBMGlobals.h:180
Triangle.h
UncertaintyPDU.h
UncertaintyPIU.h
slbm::CrustalProfile
A profile through the Earth model that stores interface radius, and interval P or S wave velocity inf...
Definition CrustalProfile.h:101
slbm::CrustalProfileStore
CrustalProfileStore supports pool allocation for CrustalProfile objects.
Definition CrustalProfileStore.h:108
slbm::GeoStack
Manages all information related to a single node in a Grid object.
Definition GeoStack.h:65
slbm::GeoTessModelSLBM
Definition GeoTessModelSLBM.h:84
slbm::GreatCircle
The GreatCircle class manages information related to a great circle path between two Locations on the...
Definition GreatCircle.h:114
slbm::GreatCircle::getPhase
int getPhase()
Retrieve the phase that this GreatCircle supports. Will be one of SLBMGlobals::Pn,...
Definition GreatCircle.h:179
slbm::Grid::writeBufferToFile
void writeBufferToFile(util::DataBuffer &buffer, string fileName)
slbm::Grid::getNodeNeighbors
virtual void getNodeNeighbors(const int &nodeId, int neighbors[], int &nNeighbors)
Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node.
slbm::Grid::outputDirectory
string outputDirectory
Definition Grid.h:542
slbm::Grid::getNodeHitCount
virtual void getNodeHitCount(const int &nodeId, int &hitCount)
Definition Grid.h:473
slbm::Grid::saveVelocityModel
virtual void saveVelocityModel(util::DataBuffer &buffer)
Save the Earth model currently in memory, to a DataBuffer.
slbm::Grid::setInterpolatorType
virtual void setInterpolatorType(const string &interpolatorType)
slbm::Grid::getActiveNodeNeighborInfo
virtual void getActiveNodeNeighborInfo(const int &nid, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
slbm::Grid::getGrid
static Grid * getGrid(const string &modelDirectory)
slbm::Grid::piu
vector< vector< UncertaintyPIU * > > piu
Definition Grid.h:531
slbm::Grid::reaDataBuffererFromFile
void reaDataBuffererFromFile(util::DataBuffer &buffer, string dirname, string fileName)
slbm::Grid::polygon
GeoTessPolygon * polygon
Definition Grid.h:526
slbm::Grid::getActiveNodeId
virtual int getActiveNodeId(int nodeId)
Retrieve the grid node id that corresponds to a specified active node id.
Definition Grid.h:414
slbm::Grid::saveVelocityModel
virtual void saveVelocityModel(const string &filename, const int &format)
Save the Earth model currently in memory, to an ascii flat file.
slbm::Grid::getPolygon
virtual GeoTessPolygon * getPolygon()
Definition Grid.h:500
slbm::Grid::Grid
Grid()
Default constructor.
slbm::Grid::getProfile
virtual GridProfile * getProfile(const int &nodeId)
Retrieve a pointer to the GridProfile that is node (i, j) in this Grid.
Definition Grid.h:546
slbm::Grid::addGeoStack
virtual int addGeoStack(GeoStack *geoStack)
slbm::Grid::getAverageMantleVelocity
virtual double getAverageMantleVelocity(const int &waveType)
Retrieve the average P or S wave velocity of the mantle, in km/sec.
slbm::Grid::clear
virtual void clear()
Clears and releases all memory held by this Grid object.
slbm::Grid::getNodeNeighborInfo
virtual void getNodeNeighborInfo(const int &nodeId, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node.
slbm::Grid::getGrid
static Grid * getGrid(util::DataBuffer &buffer)
slbm::Grid::getModel
virtual GeoTessModelSLBM * getModel()
Definition Grid.h:498
slbm::Grid::getUncertaintyPIU
vector< vector< UncertaintyPIU * > > & getUncertaintyPIU()
Definition Grid.h:306
slbm::Grid::loadFromFile
virtual void loadFromFile(const string &filename)
Load the depth, velocity and gradient information from an ascii flat file.
slbm::Grid::getNActiveNodes
virtual int getNActiveNodes()
Retrieve the number of active nodes.
Definition Grid.h:397
slbm::Grid::getActiveNodeNeighbors
virtual void getActiveNodeNeighbors(const int &nodeid, vector< int > &neighbors)
slbm::Grid::memSizeCrustalProfiles
virtual size_t memSizeCrustalProfiles()
Definition Grid.h:600
slbm::Grid::clearNodeHitCount
virtual void clearNodeHitCount()
Definition Grid.h:605
slbm::Grid::model
GeoTessModelSLBM * model
Definition Grid.h:524
slbm::Grid::sources
CrustalProfileStore * sources
Definition Grid.h:528
slbm::Grid::loadFromDataBuffer
virtual void loadFromDataBuffer(util::DataBuffer &buffer)
Load the depth, velocity and gradient information from DataBuffer.
slbm::Grid::~Grid
virtual ~Grid()
Virtual copy constructor.
slbm::Grid::getNodeNeighborInfo
virtual void getNodeNeighborInfo(const int &nodeId, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node.
slbm::Grid::getSourceProfile
virtual CrustalProfile * getSourceProfile(const int &phase, const double &lat, const double &lon, const double &depth)
Definition Grid.h:576
slbm::Grid::getReceiverProfile
virtual CrustalProfile * getReceiverProfile(const int &phase, const double &lat, const double &lon, const double &depth)
Retrieve a CrustalProfile containing data appropriate for the specified phase at the specified locati...
Definition Grid.h:582
slbm::Grid::profiles
vector< GridProfile * > profiles
The GridProfile objects which constitute the nodes in a Grid object.
Definition Grid.h:520
slbm::Grid::loadFromDirectory
virtual void loadFromDirectory(const string &dirName)
Load the depth, velocity and gradient information from binary files in specified directory.
slbm::Grid::is_directory
virtual bool is_directory(const string &dir)
slbm::Grid::getUncertainty
vector< vector< UncertaintyPIU * > > & getUncertainty()
Definition Grid.h:305
slbm::Grid::getSources
CrustalProfileStore * getSources()
Definition Grid.h:506
slbm::Grid::getNNodes
virtual int getNNodes()
Retrieve the number of nodes in the model.
Definition Grid.h:184
slbm::Grid::getReceivers
CrustalProfileStore * getReceivers()
Definition Grid.h:507
slbm::Grid::activeNodes
vector< int > activeNodes
Definition Grid.h:522
slbm::Grid::getOutputDirectory
string & getOutputDirectory()
Definition Grid.h:494
slbm::Grid::modelPath
string modelPath
The name of the file or directory from which the velocity model was loaded.
Definition Grid.h:515
slbm::Grid::initializeActiveNodes
void initializeActiveNodes(GeoTessPolygon *polygon)
Specify the Polygon that will define which grid nodes are also active nodes.
slbm::Grid::getGridType
virtual string getGridType()
Returns the type of Grid.
Definition Grid.h:135
slbm::Grid::getPosition
virtual GeoTessPosition * getPosition()
slbm::Grid::getNodeNeighbors
virtual void getNodeNeighbors(const int &nodeId, vector< int > &neighbors)
Retrieve the grid node ids of the nodes that are direct neighbors of the specified grid node.
slbm::Grid::getUncertaintyPIU
UncertaintyPIU & getUncertaintyPIU(int phase, int attribute)
Definition Grid.h:314
slbm::Grid::getNodeSeparation
virtual void getNodeSeparation(const int &node1, const int &node2, double &distance)
Retrieve the angular separation in radians between any pair of.
slbm::Grid::toString
virtual string toString()
slbm::Grid::getTessId
virtual string getTessId()
slbm::Grid::getQueryProfile
virtual QueryProfile * getQueryProfile(Location &location)
Retrieve a QueryProfile containing all available model information, at the latitude and longitude of ...
Definition Grid.h:571
slbm::Grid::getGridNodeId
virtual int getGridNodeId(int activeNodeId)
Retrieve the grid node id that corresponds to a specified active node id.
Definition Grid.h:406
slbm::Grid::memSize
virtual size_t memSize()
slbm::Grid::getModelPath
string & getModelPath()
Definition Grid.h:486
slbm::Grid::setAverageMantleVelocity
virtual void setAverageMantleVelocity(const int &waveType, const double &velocity)
Retrieve the average P or S wave velocity of the mantle, in km/sec.
slbm::Grid::findProfile
virtual bool findProfile(Location &location, vector< GridProfile * > &neighbors, vector< int > &nodeIds, vector< double > &coefficients)
Find the neighboring GridProfile objects and associated interpolation coefficients at a specified Loc...
slbm::Grid::getNIntervals
virtual int getNIntervals()
Retrieve the number of intervals in each Profile.
Definition Grid.h:190
slbm::Grid::getNCrustalProfiles
virtual int getNCrustalProfiles()
Definition Grid.h:594
slbm::Grid::clearCrustalProfiles
virtual void clearCrustalProfiles()
Delete all the CrustalProfile objects managed by this Grid.
Definition Grid.h:588
slbm::Grid::fileExists
static bool fileExists(const string &fileName)
Definition Grid.h:611
slbm::Grid::class_name
static string class_name()
Returns the class name.
Definition Grid.h:130
slbm::Grid::pdu
vector< UncertaintyPDU * > pdu
Definition Grid.h:533
slbm::Grid::clearActiveNodes
void clearActiveNodes()
slbm::Grid::getActiveNodeNeighbors
virtual void getActiveNodeNeighbors(const int &nodeid, int neighbors[], int &nNeighbors)
slbm::Grid::getUncertaintyPDU
vector< UncertaintyPDU * > & getUncertaintyPDU()
Definition Grid.h:320
slbm::Grid::initializeActiveNodes
void initializeActiveNodes(double activeNodeLatMin, double activeNodeLonMin, double activeNodeLatMax, double activeNodeLonMax)
Specify the latitude, longitude range in radians that will define which grid nodes are also active no...
slbm::Grid::getInterpolatorType
virtual string getInterpolatorType()
slbm::Grid::getProfiles
virtual vector< GridProfile * > & getProfiles()
Definition Grid.h:502
slbm::Grid::getBufferSize
virtual int getBufferSize() const
slbm::Grid::getLayerProfile
virtual LayerProfile * getLayerProfile(GreatCircle *greatCircle, Location &location)
Retrieve a LayerProfile containing data appropriate for the specified GreatCircle,...
Definition Grid.h:560
slbm::Grid::getNodeAzimuth
virtual void getNodeAzimuth(const int &node1, const int &node2, double &azimuth)
Retrieve the azimuth in radians from one grid node to another.
slbm::Grid::receivers
CrustalProfileStore * receivers
Definition Grid.h:529
slbm::Grid::getUncertaintyPDU
UncertaintyPDU & getUncertaintyPDU(int phase)
Definition Grid.h:327
slbm::Grid::getGreatCircle
virtual GreatCircle * getGreatCircle(const int &phase, const double &latSource, const double &lonSource, const double &depthSource, const double &latReceiver, const double &lonReceiver, const double &depthReceiver, const double &delta, const double &ch_max)
Retrieve a GreatCircle object between a source and a receiver.
slbm::Grid::getActiveNodeNeighborInfo
virtual void getActiveNodeNeighborInfo(const int &nid, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
slbm::Grid::specifyOutputDirectory
void specifyOutputDirectory(const string &outputDir)
slbm::GridProfile
Manages all information related to a single node in a Grid object.
Definition GridProfile.h:71
slbm::LayerProfileG
A LayerProfile with mantle velocity gradient information.
Definition LayerProfileG.h:64
slbm::LayerProfile
A Profile object based on values interpolated from nearby GridProfile objects.
Definition LayerProfile.h:76
slbm::Location
The Location Class manages a single point in/on the Earth, which is described by the GRS80 ellipsoid.
Definition Location.h:78
slbm::QueryProfile
An InterpolatedProfile object that also has information about the the P and S wave velocity as a func...
Definition QueryProfile.h:68
slbm::SLBMException
An Exception class for Grid and related objects.
Definition SLBMException.h:55
slbm::UncertaintyPDU
A UncertaintyPDU object contains the raw data to calculate a path dependent modeling error in seconds...
Definition UncertaintyPDU.h:81
slbm::UncertaintyPIU
A UncertaintyPIU object contains the raw data to calculate a modeling error in seconds as a function ...
Definition UncertaintyPIU.h:73
util::DataBuffer
A byte array container used to hold binary data in the same manner as disk based file system.
Definition DataBuffer.h:81
slbm
Definition CrustalProfile.h:59