Skip to content

simpeg/inversion-design-ideas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Draft ideas for a new design of the inversion framework

This repo was created as motivation to start implementing some of the ideas laid out in https://curvenote.com/@simpeg/simpeg-inversion-refactor.

Warning

This repository will never host a stable and well tested codebase. Its purpose is to have a place where we can freely try new ideas without having to worry about breaking existing code, supporting backward compatibility, or providing support to the community.

Goals

The main goal of the redesign is to create a new public inversion framework in SimPEG that:

  • Is modular, allowing users to plug custom or third-party minimizers, simulations, regularizations, etc.
  • Can be easily extended (with minimum extra work) to problems outside the traditional $\phi(m) = \phi_d(m) + \beta \phi_m(m)$ inversion problem.
  • Is implemented in such way that is easier to read, study, and understand by beginners that are taking their first steps in inversion theory.
  • Is implemented in such way that can be easily extended to more complex and/or complicated use cases.
  • Defines a clear and minimal interface for each one of the classes.
  • Makes use of abstract classes to enforce implementation of required methods and properties.
  • Simplifies the inheritance tree by lowering the amount of inheritance levels.

Note

These goals are not set in store and are flexible. We are free to add, remove, and edit them at any point.

License

The code in this repository is made available under an MIT License*. A copy of this license is provided in LICENSE.

About

Draft ideas for a new design of the inversion framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published