Salvus 0.12.6
New features introduced with this release include callback functions to implement event-dependent meshes and iteration-dependent event selections for mini-batch inversions. Furthermore, an initial implementation of a new workflow for computing forward simulations, misfits and gradients within a single chain of tasks is introduced.
Additionally, the release contains various minor bug fixes and small improvements listed below.
Changes
Allow for an axis-aligned shortcut for absorbing boundary attachment. Useful in
cartesian domains, and specified via passing “side_sets_are_axis_aligned” to
the simple config AbsorbingBoundary constructor.
Use shutil.copyfile() instead of shutil.copy() and shutil.copy2() to
avoid problems copying between file systems with and without permission bits.
The data selection can now properly deselect data whose processing raises an exception for only a few receivers. This usually only happens with faulty receiver metadata.
Add new option use_event_dependent_gradients for the trust-region method.
When set to True, only the accumulated gradient for all events is used, and
tasks of type TaskMisfitsAndSummedGradient are issued instead of
TaskMisfitsAndGradients.
Add a new option for discontinuous_model_blocks to the mapping function.
When used in combination with a homogeneous scaling, this function allows
for the parameterization of piecewise constant models.
Upgrade to ipywidgets>=8.0.0. The changes are backward compatible with older
versions of ipywidgets.
Add functionality to check the trial model on subsets of events (including
none). The list can be adjusted by using the optional argument
control_group_events in the constructor of an iteration.
New optional parameter max_events_per_job_submission for inversion action
component to limit the maximum number of events that are simultaneously
submitted per job to reduce the memory overhead.
Add an optional callback function event_batch_selection to the
InverseProblemConfiguration, which allows to define an iteration-dependent
selection of events and/or control group to check the trial model only for a
subset of events.
Implement gradient mapping for event-dependent meshes to enable their use for inversions.
Mitigate open nfs file handles when deleting simulation results.
Integrate using event-dependent meshes with task chains. This also adds a faster way to compute misfits without gradients.
Changes to Experimental Features
Initial implementation of task chains for solving inverse problems.
The job_submission settings can now optionally receive a TaskChainSiteConfig
to compute misfits in parallel, and to chain forward and adjoint simulations.
This is an experimental feature which is currently restricted to remote sites which share the same file system and the DataBlockIO backend of events.