Geophysical Inversion and Modelling Library  jenkins-pyGIMLi_release-295-SUCCESS-1-geb9a2204
GIMLI::TravelTimeDijkstraModelling Class Reference

Modelling class for travel time problems using the Dijkstra algorithm. More...

+ Inheritance diagram for GIMLI::TravelTimeDijkstraModelling:
+ Collaboration diagram for GIMLI::TravelTimeDijkstraModelling:

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 IndexArrayway (Index sht, Index rec) const
const Dijkstradijkstra () 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)
DataContainerdata () const
virtual RVector startModel ()
virtual void setStartModel (const RVector &startModel)
void setMesh (const Mesh &mesh, bool ignoreRegionManager=false)
Meshmesh ()
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)
MatrixBasejacobian ()
MatrixBasejacobian () const
virtual RMatrixjacobianRef () const
virtual RMatrixjacobianRef ()
virtual void clearJacobian ()
virtual void setConstraints (MatrixBase *C)
virtual void clearConstraints ()
virtual void initConstraints ()
virtual void createConstraints ()
virtual MatrixBaseconstraints ()
virtual MatrixBaseconstraints () const
virtual RSparseMapMatrixconstraintsRef () const
virtual RSparseMapMatrixconstraintsRef ()
const RMatrixsolution () const
void mapModel (const RVector &model, double background=0)
RVector createMappedModel (const RVector &model, double background=-9e99) const
void setRegionManager (RegionManager *reg)
const RegionManagerregionManager () const
RegionManagerregionManager ()
RegionManagerregionManagerRef ()
bool verbose ()
Regionregion (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
bool ownJacobian_
bool ownConstraints_
RMatrix solutions_
RVector startModel_
bool verbose_
bool regionManagerInUse_
bool ownRegionManager_
Index nThreads_
Index nThreadsJacobian_

Detailed Description

Modelling class for travel time problems using the Dijkstra algorithm.

TravelTimeDijkstraModelling(mesh, datacontainer)

Member Function Documentation

◆ createDefaultStartModel()

RVector GIMLI::TravelTimeDijkstraModelling::createDefaultStartModel ( )

◆ createJacobian()

void GIMLI::TravelTimeDijkstraModelling::createJacobian ( const RVector slowness)

◆ dijkstra()

const Dijkstra& GIMLI::TravelTimeDijkstraModelling::dijkstra ( ) const

Read only access to the recent dijktra.

◆ initJacobian()

void GIMLI::TravelTimeDijkstraModelling::initJacobian ( )


Reimplemented from GIMLI::ModellingBase.

Reimplemented in GIMLI::TTModellingWithOffset.

◆ response()

RVector GIMLI::TravelTimeDijkstraModelling::response ( const RVector slowness)

Interface. Calculate response

Reimplemented from GIMLI::ModellingBase.

Reimplemented in GIMLI::TTModellingWithOffset.

Referenced by GIMLI::TTModellingWithOffset::response().

◆ updateMeshDependency_()

void GIMLI::TravelTimeDijkstraModelling::updateMeshDependency_ ( )

Automatically looking for shot and receiver points if the mesh is changed.

Reimplemented from GIMLI::ModellingBase.

References GIMLI::unique().

◆ way()

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.

Member Data Documentation

◆ receiInv_

std::map< Index, Index > GIMLI::TravelTimeDijkstraModelling::receiInv_

Map receiver id to sequential receiver node number of receNodeId_

◆ receNodeId_

IndexArray GIMLI::TravelTimeDijkstraModelling::receNodeId_

Nearest nodes for the current mesh for all receiver points.

◆ shotNodeId_

IndexArray GIMLI::TravelTimeDijkstraModelling::shotNodeId_

Nearest nodes for the current mesh for all shot points.

◆ shotsInv_

std::map< Index, Index > GIMLI::TravelTimeDijkstraModelling::shotsInv_

Map shot id to sequential shot node number of shotNodeId_

◆ wayMatrix_

std::vector< std::vector < IndexArray > > GIMLI::TravelTimeDijkstraModelling::wayMatrix_

Way matrix of the last full jacobian generation.