SimPEG 0.20.0 Release Notes#

August 9th, 2023

This minor release contains many bugfixes and additions to the code base, including improvements to documentation for regularization.

Updates#

Spontaneous Potential#

The spontaneous (self) potential module has finally been re-implemented into the simulation framework of simpeg 0.14.0. Check out the new module at simpeg.electromagnetics.static.spontaneous_potential.

MVI inversions#

There are now two new support regularization functions relevant to vector inversions in the cartesian domain. an amplitude based regularization, and a direction based regularization, which both support reference models.

FDEM#

The frequency domain simulations now support forward modeling with electrical permittivity as a property

Flake8 improvements#

We continue to add improvements to the internal code structures to be more in line with flake8 practices.

MetaSimulation#

There is now a multiprocessing version of the MetaSimulation class for interested users to experiment with.

Documentation#

We’ve made substantial additions to the regularization documentation.

We have also updated the getting started guides to represent current recommend practices for installing, developing with, and contributing to SimPEG.

Others#

We’ve added support for taking derivatives of anisotropic models, which also fixed derivatives of properties on tetrahedral and curvilinear meshes.

Invertible properties may now be not required for certain simulations (e.g. permittivity in a FDEM simulation).

Last but not least, there are of course many bugfixes!

Contributors#

This is a combination of contributors and reviewers who’ve made contributions towards this release (in no particular order).

Pull requests#

  • #1103: Amplitude regularization

  • #1195: Refactor PGI_BetaAlphaSchedule directive

  • #1201: Multiprocessing MetaSimulation

  • #1211: Sp reimplement

  • #1212: Add a linearity property to mappings

  • #1213: Pydata sphinx theme updates

  • #1214: Cross reference vector

  • #1215: Meta/meta patches

  • #1216: Tiny typo triggers error when displaying error output string

  • #1217: Update index.rst

  • #1224: Replace deprecated numpy type aliases with builtin types

  • #1225: Regularization docstrings

  • #1229: Generalize __add__ for any ComboObjectiveFunction

  • #1230: Discretize 0.9.0updates

  • #1231: Fix IP simulation / inversion with SimPEG.dask

  • #1234: General Doc cleanup

  • #1235: conditionally allow invertible property to also be optional

  • #1236: FDEM permittivity

  • #1237: Anisotropy derivative support

  • #1238: Move flake8 ignored rules to .flake8 and rename Makefile targets

  • #1239: Add flake8 to pre-commit configuration

  • #1240: Merge docs for developers into a Contributing section

  • #1241: Refactor BaseObjectiveFunction and ComboObjectiveFunction

  • #1242: Fix flake E711 error: wrong comparison with None

  • #1243: Fix flake E731 error: assign lambda functions

  • #1244: Fix flake F403 and F405 errors: don’t use star imports

  • #1245: Fix F522, F523, F524 flake errors: format calls

  • #1246: Fix F541 flake error: f-string without placeholder

  • #1247: Simplify CONTRIBUTING.md

  • #1248: Fix F811 flake error: remove redefinitions

  • #1249: Add more hints about pre-commit in documentation

  • #1250: Rename “basic” directory in docs to “getting_started”

  • #1251: Test patches

  • #1252: Fix W291 and W293 flake errors: white spaces

  • #1253: Always calculate gzz if needed

  • #1254: Fix B028 flake error: non-explicit stacklevel

  • #1256: Make units of gravity simulations more explicit

  • #1257: unpack the data misfits for plotting tikhonov curves

  • #1258: Update pull_request_template.md

  • #1260: Optionally import utm

  • #1261: Set storage type of pf sensitivity matrix

  • #1262: final unresolved comments for PR #1225

  • #1264: Fix sparse inversion example: remove beta schedule

  • #1267: Add building docs and serving them to documentation

  • #1274: use setuptools_scm to track version

  • #1275: 0.20.0 staging