SimPEG 0.18.0 Release Notes#

October 26th, 2022

This minor release is a major step forward for SimPEG and includes many additions and improvements to the codebase.


  • Removal of properties

  • New website preliminaries

  • 1D electromagnetic simulation and inversions

  • Refactor of Regularizations

  • Potential field simulation speedups

  • Removed calls of deprecated discretize methods

  • Arbitrary FDEM and TDEM receiver orientations

  • Dedicated Equivalent source simulations for Potential fields

  • Multipole DC sources

  • Bug fixes!

Removal of properties and the new API documentation website#

The first thing you might’ve noticed is the new layout of the SimPEG documentation page. We are working towards improving many of the internal documentation strings for SimPEG’s functions and classes. While you will be able to find links to all of SimPEG’s items, the Survey, Source, and Receiver classes have all had their docstrings significantly improved. Also many utility functions should now have many more details. The rest of the classes will receive improved docstrings in the future, but for now are at least listed. This is always an area of suggested improvements for SimPEG and contributions are very welcome in this area.

1D EM simulations#

There are now classes for 1D frequency and time domain simulations, that support airborne and surface simulations, this has been ported over from the legacy simpegEM1D package, and worked into a form that should be consistent with the rest of the SimPEG framework.

Regularization refactor#

We have deprecated the Tikhonov and Simple regularizers as it was confusing for the average user to choose one or the other. They were actually doing very much the same thing, unintentionally, just with slightly different ways of setting parameters for the weighting of the different regularization components. These have now been changed into a single SimPEG.regularization.WeightedLeastSquares class.

As a part of this, we have also overhauled the internal workings of regularizations to give a more intuitive user experience to setting different weights for the model parameters, now support both cell-based and face-based weights.

Potential Fields simulations#

Internally, the integral formulations of the potentials fields have been overhauled to improved the speed of the simulations, expect roughly 10-20x speedups of sensitivity matrix creations.

We have also implemented dedicated simulations for equivalent source simulations. They use two dimensional meshes where the tops and bottoms are defined for each cell.

Discretize Deprecations#

We have done a substantial pass to remove all calls to deprecated discretize functions. As such, your python scripts and jupyter notebooks should emit much fewer FutureWarnings.

FDEM and TDEM improvements#

Time domain and frequency domain receivers now support arbitrary orientations. There are now also new properties on CircularLoop sources enabling an n_turns attribute.

DC Multipole sources#

The static module should now support multipole sources!


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

Pull requests#

  • #1007: Extend BaseScr to that Pole and Dipole DC are simply minor extensions…

  • #1038: Issue-1037

  • #1040: Refactor/regularization

  • #1059: Bringing in simpegEM1D into SimPEG

  • #1077: Exorcise properties preliminary

  • #1080: Fix for broken TensorMesh

  • #1082: Quadtree fix for potential fields simulation

  • #1085: Add separate pf quadtree equivalent source simulation

  • #1086: include the number of turns in the source initialization

  • #1087: Em1d single sounding

  • #1093: TDEM line current h-field update

  • #1094: fix bracket error

  • #1095: arbitrary orientation for tdem rx

  • #1096: bug fix for inversion with only a single parameter

  • #1097: Update geoapps 0.8.0

  • #1100: add exception for B-field computation with EB formulation when the waveform starts at 0.

  • #1107: Improve how path to sensitivity files are built

  • #1111: Remove all properties

  • #1114: Remove LineCurrent1D

  • #1113: Pf update

  • #1115: Discretize deprecation cleanup

  • #1117: Make sparse regularization use the validator functions

  • #1118: TDEM exponential waveform

  • #1119: 0.18.0 Release Notes

  • #1120: Single reg directive fix