Skip to content

slimgroup/ConstrainedFWIExamples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

ConstrainedFWIExamples

This code base is using the Julia Language and DrWatson to make a reproducible scientific project named

ConstrainedFWIExamples

It is authored by Mathias Louboutin.

To (locally) reproduce this project, do the following:

  1. Download this code base. Notice that raw data are typically not included in the git-history and may need to be downloaded independently.
  2. Open a Julia console and do:
    julia> using Pkg
    julia> Pkg.activate("path/to/this/project")
    julia> Pkg.instantiate()
    

This will install all necessary packages for you to be able to run the scripts and everything should work out of the box.

Content

This repository currently contains two notebooks

01_const_fwi_judi.ipynb

This notebook implements FWI with TV constraints and box constraints with the projectd quasi-Newton method. In this example, we highlight the use of constraints for a very simple transmission example with a squared perturation on the middle. This example is using JUDI as the framework for wave propagation and inversion where the wave-propagators are implemented using Devito. This tutorial demonstrates that our constraints framework SetIntersectionProjection provides better result than standard FWI while never requiring any additional PDE solves (function and/or gradient evaluation).

02_constr_fwi_jetpack.ipynb

This notebook implements FWI with TV constraints and box constraints with the projectd quasi-Newton method. This notebook is an adaptation of an FWI example using an open-source framework for wave propagation and inversion. The original example does not implement constraints and use a standard L-BFGS solver. In the example here, we show how to use out constraints framework, SetIntersectionProjection, to setup constraints for FWI.

The major advantages of our constraints frameowrk is that, unlike standard optimization packages, are:

  • The constraints projection do not involve any function or gradient evaluation, making it computationally efficient.
  • The projection algorithm is implemented to be computationally scalable up to 3D, and support distriubted computing of the projection for efficiency.
  • A broad range of constraints are available, not only box constraints, such as TV, nuclear norm, rank, ....

We refer to the Documentation of the software for a more detailed overview of the capabilities and performance.

Links

  • The origianl notebook can be found at Notebook for reference. This repository is in progress so their result may have changed.

  • The constraints framework can be found at SetIntersectionProjection and is described in Projections.