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,- Geometryand- Optionsdata structures and how to set up acquisition geometries.
- Abstract Vectors: Documents JUDI's abstract vector classes - judiVector,- judiWavefield,- judiRHS,- judiWeightsand- judiExtendedSource.
- Linear Operators: Lists and explains JUDI's abstract linear operators - judiModeling,- judiJacobian,- judiProjectionand- judiLRWF.
- Input/Output: Read SEG-Y data and set up - judiVectorsfor 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.