Geophysical Inversion and Modelling Library
v1.5.2-5-g042d7f36
|
Modelling class for travel time problems using the Dijkstra algorithm. More...
Public Member Functions | |
TravelTimeDijkstraModelling (bool verbose=false) | |
TravelTimeDijkstraModelling (Mesh &mesh, DataContainer &dataContainer, bool verbose=false) | |
virtual RVector | createDefaultStartModel () |
RVector | createGradientModel (double lBound, double uBound) |
virtual RVector | response (const RVector &slowness) |
virtual void | createJacobian (const RVector &slowness) |
virtual void | initJacobian () |
Graph | createGraph (const RVector &slownessPerCell) const |
double | findMedianSlowness () const |
RVector | getApparentSlowness () const |
void | createJacobian (RSparseMapMatrix &jacobian, const RVector &slowness) |
const IndexArray & | way (Index sht, Index rec) const |
const Dijkstra & | dijkstra () const |
Public Member Functions inherited from GIMLI::ModellingBase | |
ModellingBase (bool verbose=false) | |
ModellingBase (DataContainer &dataContainer, bool verbose=false) | |
ModellingBase (const Mesh &mesh, bool verbose=false) | |
ModellingBase (const Mesh &mesh, DataContainer &dataContainer, bool verbose=false) | |
void | setVerbose (bool verbose) |
bool | verbose () const |
virtual RVector | response_mt (const RVector &model, Index i=0) const |
RVector | operator() (const RVector &model) |
void | setData (DataContainer &data) |
DataContainer & | data () const |
virtual RVector | startModel () |
virtual void | setStartModel (const RVector &startModel) |
void | setMesh (const Mesh &mesh, bool ignoreRegionManager=false) |
Mesh * | mesh () |
void | createRefinedForwardMesh (bool refine=true, bool pRefine=false) |
void | deleteMesh () |
virtual void | setJacobian (MatrixBase *J) |
virtual void | createJacobian (const RVector &model, const RVector &resp) |
virtual void | createJacobian_mt (const RVector &model, const RVector &resp) |
MatrixBase * | jacobian () |
MatrixBase * | jacobian () const |
virtual RMatrix & | jacobianRef () const |
virtual RMatrix & | jacobianRef () |
virtual void | clearJacobian () |
RVector | createMappedModel (const RVector &model, double background=-9e99) const |
void | setRegionManager (RegionManager *reg) |
const RegionManager & | regionManager () const |
RegionManager & | regionManager () |
RegionManager & | regionManagerRef () |
bool | verbose () |
Region * | region (int marker) |
RVector | createStartModel () |
RVector | createStartVector () |
void | initRegionManager () |
void | setThreadCount (Index nThreads) |
Index | threadCount () |
void | setMultiThreadJacobian (Index nThreads) |
Index | multiThreadJacobian () const |
Protected Member Functions | |
virtual void | updateMeshDependency_ () |
Protected Member Functions inherited from GIMLI::ModellingBase | |
virtual void | init_ () |
virtual void | deleteMeshDependency_ () |
virtual void | updateDataDependency_ () |
void | setMesh_ (const Mesh &mesh, bool update=true) |
Protected Attributes | |
Dijkstra | dijkstra_ |
double | background_ |
IndexArray | shotNodeId_ |
std::map< Index, Index > | shotsInv_ |
IndexArray | receNodeId_ |
std::map< Index, Index > | receiInv_ |
std::vector< std::vector< IndexArray > > | wayMatrix_ |
Protected Attributes inherited from GIMLI::ModellingBase | |
Mesh * | mesh_ |
DataContainer * | dataContainer_ |
MatrixBase * | jacobian_ |
bool | ownJacobian_ |
MatrixBase * | constraints_ |
bool | ownConstraints_ |
RMatrix | solutions_ |
RVector | startModel_ |
bool | verbose_ |
bool | regionManagerInUse_ |
bool | ownRegionManager_ |
Index | nThreads_ |
Index | nThreadsJacobian_ |
Modelling class for travel time problems using the Dijkstra algorithm.
TravelTimeDijkstraModelling(mesh, datacontainer)
|
virtual |
Interface to define custom start model generators.
Reimplemented from GIMLI::ModellingBase.
Reimplemented in GIMLI::TTModellingWithOffset.
Referenced by GIMLI::TTModellingWithOffset::createDefaultStartModel().
|
virtual |
Interface.
Reimplemented from GIMLI::ModellingBase.
Reimplemented in GIMLI::TTModellingWithOffset.
Referenced by GIMLI::TTModellingWithOffset::createJacobian().
|
inline |
Read only access to the recent dijktra.
|
virtual |
Interface. Calculate response
Reimplemented from GIMLI::ModellingBase.
Reimplemented in GIMLI::TTModellingWithOffset.
References GIMLI::ModellingBase::createMappedModel(), receiInv_, receNodeId_, shotNodeId_, shotsInv_, GIMLI::DataContainer::size(), GIMLI::ModellingBase::threadCount(), and GIMLI::ModellingBase::verbose().
Referenced by GIMLI::TTModellingWithOffset::response().
|
protectedvirtual |
Automatically looking for shot and receiver points if the mesh is changed.
Reimplemented from GIMLI::ModellingBase.
References GIMLI::Mesh::findNearestNode(), GIMLI::BaseEntity::id(), receiInv_, receNodeId_, GIMLI::Vector< ValueType >::resize(), GIMLI::DataContainer::sensorPosition(), shotNodeId_, shotsInv_, and GIMLI::unique().
const IndexArray & GIMLI::TravelTimeDijkstraModelling::way | ( | Index | sht, |
Index | rec | ||
) | const |
Returns the mesh node indieces for the way from shot to receiver, respective the data for the last Jacobian calculation. If you want further infos about the way element. You can ask the Dijkstra about the graph infos.
References receiInv_, shotsInv_, and wayMatrix_.
|
protected |
Map receiver id to sequential receiver node number of receNodeId_
Referenced by response(), updateMeshDependency_(), and way().
|
protected |
Nearest nodes for the current mesh for all receiver points.
Referenced by response(), and updateMeshDependency_().
|
protected |
Nearest nodes for the current mesh for all shot points.
Referenced by response(), and updateMeshDependency_().
|
protected |
Map shot id to sequential shot node number of shotNodeId_
Referenced by response(), updateMeshDependency_(), and way().
|
protected |
Way matrix of the last full jacobian generation.
Referenced by way().