Skip to main content

Seismic modeling and inversion examples using Devito.

Project description

Devito-Examples

Examples

This repository contains a set of examples and tutorials for seismic modeling and inversion using Devito. These examples use four different wave equations, namely

  • The acoustic isotropic wave equation inseismic/acoustic
  • The TTI pseudo-acoustic wave equation in seismic/tti
  • The elastic isotropic wave equation in seismic/elastic
  • The viscoelastic isotropic wave equation in seismic/elastic

Currently, the acoustic isotropic wave equation solver also contains the propagator associated with the adjoint and linearized (Born) wave-equation solution and the gradient of the FWI objective (application of the Jacobian to data residual)

Disclaimer

The majority of these examples can also be found in the Devito examples directory, which is a fork of this repository. These examples for seismic applications have been developed and implemented by Mathias Louboutin at the Georgia Institute of Technology. For additional introductory examples, including tutorials on the Devito compiler, we refer to the Devito example directory on github since these were developed primarily by people from the Devito team at Imperial College London. The contributions by Mathias Louboutin were made as part of actvities at the Georgia Tech's Seismic Laboratory for Imaging and modeling ([SLIM).

Installation

To install this set of examples with its dependencies run in your terminal (OSX, Ubuntu):

git clone https://github.com/slimgroup/Devito-Examples
cd Devito-Examples
pip install -e .

This command will install all dependencies including Devito and will allow you to run the examples. To verify your installation you can run:

python seismic/acoustic/acoustic_example.py -nd 1

Some of the examples require velocity models such as the marmousi-ii model. These models can be downloaded at devito-data to be used in the tutorials.

How to navigate this directory

Examples and tutorials are provided in the form of single Python files and as Jupyter notebooks.Jupyter notebooks are files with extension .ipynb. To execute these, run jupyter notebook, and then click on the desired notebook in the window that pops up in your browser.

The seismic examples and tutorials are organized as follows:

  • seismic/tutorials: A series of Jupyter notebooks of incremental complexity, showing a variety of Devito features in the context of seismic inversion operators. Among the discussed features are modeling, adjoint modeling, computing a gradient and a seismic image, FWI and elastic modeling on a staggered grid.
  • seismic/acoustic: Example implementations of isotropic acoustic forward, adjoint, gradient and born operators, suitable for full-waveform inversion methods (FWI).
  • seismic/tti: Example implementations of several anisotropic acoustic forward operators (TTI).
  • seismic/elastic: Example implementation of an isotropic elastic forward operator. elastic, unlike acoustic and tti, fully exploits the tensorial nature of the Devito symbolic language.
  • seismic/viscoelastic: Example implementation of an isotropic viscoelastic forward operator. Like elastic, viscoelastic exploits tensor functions for a neat and compact representation of the discretized partial differential equations.

Related literature

Some of these examples are described in the following papers:

More advanced geophysical application can be found in the JUDI repository. JUDI is a linear algebra DSL built on top of Devito for large scale inverse problems and includes abstractions for source/receivers and handles large SEG-Y datasets with SegyIO. A complete description of JUDI and the related seismic inversion application can be found in Philipp Witte's thesis.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devito_examples-1.0.tar.gz (7.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devito_examples-1.0-py3-none-any.whl (7.0 MB view details)

Uploaded Python 3

File details

Details for the file devito_examples-1.0.tar.gz.

File metadata

  • Download URL: devito_examples-1.0.tar.gz
  • Upload date:
  • Size: 7.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for devito_examples-1.0.tar.gz
Algorithm Hash digest
SHA256 5ce60f7bae050a8710147b3e139c77f208cb1be6febee11812f072e58ceaa6c9
MD5 35483dd4928dab3ee7adfac5b8376207
BLAKE2b-256 627cd0650ead1148a219553dd16d5a3d83bacf18386c231e8a78da30d230b800

See more details on using hashes here.

File details

Details for the file devito_examples-1.0-py3-none-any.whl.

File metadata

  • Download URL: devito_examples-1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for devito_examples-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c7948e9514292934fd4b244af0c34717829cadd0428b344a14c95ed8cca255b
MD5 5b75e9cc5114e213edd86997ab51f24f
BLAKE2b-256 46d856d0593c414c7444852a7430010dab616498ea78a90b2b31c3049cf57c74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page