The Julia Devito Inversion framework (JUDI.jl)

JUDI is a framework for large-scale seismic modeling and inversion and designed to enable rapid translations of algorithms to fast and efficient code that scales to industry-size 3D problems. Wave equations in JUDI are solved with Devito, a Python domain-specific language for automated finite-difference (FD) computations.

Docs overview

This documentation provides an overview over JUDI's basic data structures and abstract operators:

  • Installation: Install guidlines for JUDI and compilers.

  • Getting Started: A few simple guided examples to get familiar with JUDI.

  • Data structures: Explains the Model, Geometry and Options data structures and how to set up acquisition geometries.

  • Abstract Vectors: Documents JUDI's abstract vector classes judiVector, judiWavefield, judiRHS, judiWeights and judiExtendedSource.

  • Linear Operators: Lists and explains JUDI's abstract linear operators judiModeling, judiJacobian, judiProjection and judiLRWF.

  • Input/Output: Read SEG-Y data and set up judiVectors for shot records and sources. Read velocity models.

  • Helper functions: API of functions that make your life easier.

  • Seismic Inversion: Inversion utility functions to avoid recomputation and memry overhead.

  • Seismic Preconditioners: Basic preconditioners for seismic imaging.

  • pysource package: API reference for the propagators implementation with Devito in python. The API is the backend of JUDI handled with PyCall.