# Release Notes

## Release 0.5.0 (2026-06-05)

### Plate Simulation
* Create UI and Driver for the classification of EM anomalies
* Export best match models as Maxwell plates (w/ GEOPY-2661)
* Finalize Anglo Accelerated Development with synthetic example
* Add documentation for plate sweep and match
* Add summary option for plate sweep
* Change reference of Plate from center-center to top-center
* Plate Match: Attach figure with comparative plot of scaled obs versus simulated data
* Make simpeg group names in plate-simulation more clear in the ui.jsons
### Mag/Grav
* MVI: Add small value to reference amplitude if reference are used
* Implement MVI with PDE inversion
* Use cyclic colormap by default for declination angle model
* Change data groups saved for MVI as requested by users
* Revert legacy behaviour with reference model ON by default
### FEM/TEM
* Implement arbitrary receiver orientations (u-v-w) for airborne EM surveys
* Relabel ui.json for TEM using Vertical, inLine, cross-line
* Airborne FEM coaxial do not rotate transmitter, and ppm normalization needs to be adjusted
* Allow rotated receivers for ground EM survey
* Remove dependency on Tx frequency for airborne FEM survey
### Natural Sources
* Incorporate MobileMT inversion with SimPEG (apparent conductivity only) DC/IP
### DC/IP
* Parallelize batch 2D inversion
* Improve topography augmentation for DC and MT
* Accept 2D inversion mesh (DrapeModel) in sensitivity_cutoff application
* Add tooltips to missing IP inversion inputs
* DC2D with single line crashes on run with n_workers set
* Investigate edge cells recovered with DC2D inversions
### Joint Inversion
* Joint surveys using mvi crashes with dimension mismatch
* PGI: Add checks for reference model present on inversion groups. Return clean GeoAppsError if not
* Research auto-scaling strategy for cross-gradient regularization terms
* Membership flip between iterations in PGI
* Add PGI documentation
### General Utilities
* Add dip_direction to list of supported variables by plate_sweep
* Micro-management of auto-scaling of misfits with tiles, channels and within joint inversions
* Clip limits of topography extent based on mesh extent
* Add datetime stamp to simpeg.log and simpeg.out file names
* Add validator for negative on NDV values in uncertainties
* Transfer visual parameters Core volume settings from the input mesh to the inversion mesh (if present)
* Add optional out_group to Depth of Investigation app
### Bugs and Maintenance
* Update GravityUIJson with new data forms
* Conductivity/Resistivity switcher doesn't make sense for joint mvi/mag
* Synthetic topography for runtests is overly sampled
* Fix capitalization in labels and tooltips of ui.json files
* Update minimum requirement to python >=3.12, <3.14 and numpy 2.*
* Implement direct run_commands to specific modules for forwards and inversions
* DCIP 2D crash on line ID selection
* PGI failure on petrophysical model with air cells
* Inversion stalls on tiling for large problems during redistribution of clusters
* Refactor extent property calculation for all grid objects
* Consolidate code for plate model definition between different repos
* Update dictionary to choose driver from run_command
* Triangulation crash on input surface
* Regularization parameters of sub-drivers always over-written by joint parameters
* Inversion crash on tile mesh creation transferring data
* Refresh screenshots of UIJsons in docs

## Release 0.4.0 (2026-01-06)

* Support 3D vector property group for orientation of rotated gradients
* Add rotated_gradient to 2D inversions
* Refactor components of inversion options
* single entry point to run any application
* Joint inversion: PGI
* Migrate param-sweeps to geoapps-utils
* Migrate plate-simulation to simpeg-drivers
* Hook up 2D rotated gradients to batch 2D inversions
* Investigate random failure of cross-gradient test
* Amplitude model stuck on upper bound for MVI
* Change default sensitivity threshold for DC inversions
* Fix plate simulation label and tooltip
* Speed up saving directive by keeping the file open during series
* Change units displayed on selector of data type for V/Am^2
* Investigate slow startup time for TEM inversion
* Make pydantic validator issues returns clean GeoAppsError option
* Add case study with Forestania datasets
* Improve rotated gradient on octree change with average cell dim
* Add files via upload
* Add docs on rotated gradient options
* Force use of MKL for Blas implementation
* Bad flipping of large loop orientation
* Refactor of the Factory classes
* Migrate octree-creation-app to grid-app
* Investigate double-print of Geoapps-Error
* Can't handle topography grid with nan
* Parallelize 1D simulations
* Forward simulation of potential fields always forms the full J
* Re-order parameters to mimic the order in metadata
* Add check for negative cond/res model values
* Lost control on reference angles for MVI
* Add core depth to the max-min elevation of the survey
* Detect issues with waveform and throw a custom GeoappsError if found
* Add a copy group+object base in input file as it exists in the UIJson group
* Failure of directives when using Futures for simulation
* Create custom sweep UIjson for plate-simulation
* Investigate speckly looking MVI models with rotated gradients
* Make start/stop group optional, and use the plate-sim parameter instead if disabled
* Missing grouping of EM data in save directive for joint inversions
* Parallelize the Sweeps
* Explore 2D gridding techniques for EM line data
* Pydantic error on auto-mesh creation with Grid2D topography object
* Crash on Zarr file shape for tiled inversions with disk storage
* Crash on no-upper bound for MVI within a joint process
* Improve parallel creation of 1D simulations
* Investigate erratic corner cells when using rotated gradients
* Add custom error for topography grid selected without data
* Random failure of sensitivity cutoff app tests
* Workers crash on creating misfits for large problems
* Remove save directive for petrophysical model
* Adjust target misfit down to account for number of NDV in data
* PGI fails with single simulation selected
* MT predicted channels missing [] indices
* Break edge case for 1D inversion with negative elevation (release 4.7)
* Save sensitivities option ignored (release 4.7)
* Wrong normalization for MT
* Speed up active from topography algorithm
* Bring in doc of plate simulation
* Remove out_group form ui.json
* Cannot load results from Batch 2D inversion runs
* DEVOPS-922: adjust or fix text in ui.json
* Check for MVI Simpeg groups and raise error
* Joint surveys fails validation if no starting/reference models chosen

## Release 0.3.0 (2025-06-20)

* Create spatial tiling estimator
* Add a depth of investigation application
* Add auto-meshing option for all inversions with default parameters
* Fix simpeg-drivers pyproject still pointing to octree-creation-app/*
* Auto-meshing: Round cell size to nearest 5 multiplier
* Allow option for percentile cutoff in sensitivity based depth of investigation
* Auto-meshing: Only use depth_code (no vertical pads) for potential fields and DC-IP inversions
* Add UIJson group to hold octree creation parameters and update options
* Octree mesh upside down
* Refactor Params class with BaseData
* Convert all of potential fields to BaseData params class
* Faulty air cells in 2D inversion active
* Reduce tests runtime
* Use MetaSimulations instead of custom misfit mapping towards distributed process
* Convert all DC/IP 3D/2D params to BaseData
* Convert all EM params to BaseData
* Convert both joint params to BaseData
* Export uml from simpeg-drivers and design class structure for inversion parameters.
* Selecting an active model instead of topography with surface survey option crashes
* Update discretize to >=0.11.*
* Cleanup constant files and data classes
* Add version validation and write_default method to update version in …
* Update SimPEG 0.21.2 to 0.23
* Crash running 2D IP
* Add custom Error for problem too large
* Add UIJson class for gravity forward/inversion
* Add option for MUMPS solver
* Duplicated survey object when monitoring_directory is used
* Resolve deprecation warnings with latest simpeg 0.23 and discretize 0.11
* Create documentation for depth of investigation app
* Fixup dependencies
* Draft uml file for the UIJson/Params design
* Update inversion docs to describe the auto-mesh option
* Phi-d at Iter 0 shows as nan in the *.out file
* Handle extra fields and deprecations in UIJson version validation
* Clean up pydantic warnings
* Implement structural orientation (rotated gradient) option to the inversion UI
* Migrate em_inversion (EM1D) script to simpeg-drivers
* Should update version when writing ui.json from simpeg-drivers options classes
* Migrate FEM-1D from simpeg-drivers
* Make lower bound for MVI visible=False
* Add strike/dip option to the choice list of rotated_gradients.
* Deprecate gradient_type
* Fix warning about differing number of parameters between ui_json and data.
* Relock on latest git dev revisions
* Environment for coming pre-release
* Fix UI json version tests (part of GEOPY-2049)
* Rename params modules to options
* Group models for L2 and LP
* Add version to print screen
* Allow IntegerData for active cell value model type
* Use published dependencies, no git branches
* Correctly declare dask for pip and dask-core for conda
* Fixup dask dependency: do not lock on pypi
* Use dask.distributed with workers as default behaviour
* IP inversion with resistivity option does not convert the model to conductivity
* Name of conductivity_model does not match the selection for resistivity
* Change default auto-scaling to false
* Bring back adjusted ui.json from Analyst to their respective repo
* Bad referencing to transmitter id name
* MVI name change breaks the forward
* Fem1d title
* Outdated inversion_type for 3D FDEM
* Non-zero evaluation of the rotated gradient of a constant model
* Sub-mesh reused on split data
* Ensure backward compatibility of saved ui.json from Analyst 4.5 to 4.6

## Release 0.2.0 (2025-02-07)

* Octree mesh cell definition not update if rec array
* Make the canny add_data optional on get_edges method
* Crash on joint survey with apparent resistivity
* Update simpeg fork to 0.21.2
* Streamline geoapps-utils
* Generate tutorial for Natural source EM
* Add checks on waveform before sending to SimPEG
* Training material for ATEM
* Always check/closed EM loops and return warning
* Fix handling of UBC ordered Octree cells
* Add docs for validation
* Allow input active cells instead of topography
* Fix formatting of warning for LargeLoop. Use logging instead warning
* Inversion: Allow for model vector to define norms
* Re-order the inversion inputs following users comments
* Add option to export sensitivities for all inversions
* Enable cell/face weights in params
* Fill in default ui.json tooltips for inversion parameters
* Review stitching of predicted data on tipper inversion
* Review log and out for cross-gradient inversion.
* Regression: Crash with no-reference data
* Group vector model orientation parameters as "Dip Direction & Dip"
* Add option for cond/resis for all EM/DC methods
* Flip upper and lower bound value for resistivity style inversions
* Implement rescaling of misfit functions for joint inversion
* Tipper inversion crashes on background_model if not constant
* DC3D inversion reports disconnected cells
* Ram/Disk option not working in simpeg through Analyst
* Save sensitivities fails for MVI inversion in Analyst
* Nan data values not handled by the inversion
* Simpeg-drivers is adding a transmitter id to the transmitter always
* Make the transmitter id name agnostic


## Release 0.1.0 (2024-06-17)

* Copy model to avoid applying double log
* prepare distribution
* Remove factor of half on cpu count for n_cpu=disabled
* Fix reduced set of linter errors on simpeg-drivers
* Regenerate env lock files (for SimPEG rc.1)
* Enforce counter-clockwise ordering of EM large loops
* Move params tests from geoapps to simpeg-drivers
* Deal with negative octree cell dimensions from legacy inversions
* Improve tiling strategy for large loop EM
* Improve scaling of cross-gradient regularization
* Build distribution files for geology and geophysics modules for Analyst
* Use new dev script to create lock files
* Fix tile ID on save directive
* New RC distribution for Analyst 4.4
* Import of simpeg-drivers too slow
* Merge Release/0.1.0 to main
* Use octree-creation-app v0.1.1

 Copyright (c) 2023-2026 Mira Geoscience Ltd.
