A new inversion framework for SimPEG
Info
- Presented at: EMIW 2026
- Source code: santisoler/emiw2026
- Creative Commons Attribution 4.0 International
- doi: 10.5281/zenodo.21650405
Poster
The poster has been archived in Zenodo under the following doi: 10.5281/zenodo.21650405.
Find the poster in other file formats in santisoler/emiw2026.
Abstract
SimPEG is an open-source Python library that supports simulation and inversion of time and frequency domain EM data, among many other geophysical methods. It was created over a decade ago with the aim of being a modular toolbox for research.
We present a prototype for a redesign of SimPEG’s inversion framework. Newer research methods, such in joint inversions and in leveraging aspects of machine learning in the inverse problem, have exposed areas where the initial framework had made some rigid assumptions. The goal of the redesign is to support this next generation of research by improving its design, usability, extensibility, and code readability.
The new framework is based on three main pillars.
First, objective functions can be defined as any linear combination of misfits
and model norms, enabling new regularizations to be designed and joint
inversions to be defined in easily readable manner.
Secondly, objective functions can be minimized through general purpose
minimizers, like the ones available in SciPy, or through custom ones.
Finally, the inversion process can be constructed through an Inversion object
that can be iterated over, allowing users to insert code between iterations for
plotting, saving outputs, modifying trade-off parameters, etc.
These design choices led to a modular framework that is easier to extend,
experiment with, and learn from it.
The prototype is available in https://github.com/simpeg/inversion-design-ideas under the open-source MIT License. We invite everyone to experiment with it and provide feedback. Our goal is to incorporate it into SimPEG in the near future.