Mondaic

Salvus 0.11.26

Released: 2021-02-23

This release focusses on quality of life improvements for solving the inverse problem. It includes a bunch of bug fixes as well as new features.

A new tab has been added to the inversion dashboard showing some details about model updates and the evolution of the trust-region algorithm. This grants insights into how an ongoing inversion is doing.

SalvusProject and SalvusFlow can now recover more gracefully from partially failed job arrays where only a few jobs did not finish.

Furthermore the window picking for seismological full waveform inversions is now a lot faster.

Note that plotly >= 4.12.0 is required to display the new widgets properly. To update the python environment, check the installation instructions or run

wget https://mondaic.com/environment.yml -O salvus-0.11.26.yml
conda env update -n salvus -f salvus-0.11.26.yml

.

Changes

SalvusFlow

If a few jobs in a Salvus job array failed for some reason, the output for the successfully completed jobs can now be retrieved in a much simpler way:

SalvusJobArray.copy_output(..., copy_partial_results=True)

copy_partial_results defaults to True.

The same parameter is exposed to the salvus.flow.functions.run_many() command and also defaults to True there.

Changes to Experimental Features

SalvusOpt

Expose more parameters to steer the adaptive adjustment of the trust-region radius.

SalvusProject

Bug fix for the gradient widget of the inversion dashboard, where previously some event-dependent gradients were not displayed correctly.

SalvusProject

Bug fix in the SimulationConfiguration to ensure the extra_output_configuration passed to launch overwrites additional output values defined in the WaveformSimulationConfiguration. The output options in the WaveformSimulationConfiguration will be deprecated in a future release.

SalvusProject

Add a new tab to the inversion dashboard to visualize the progress of model updates and trust-region radius.

SalvusProject

Add a toggle button to the misfit widget to switch between absolute and relative misfits - normalized per iteration or event, respectively.

SalvusProject

Much faster seismological window picking for some cases. Additionally it is now a bit more conservative and will not pick some sketchy windows it did not pick before. All in all the picked windows should be very similar to results from the previous version of this algorithm but a few less windows will be picked.

SalvusProject

The p.waveforms.has_data() method now also works for synthetic data.

SalvusProject

The partial copy of the Salvus job array results has been integrated into all parts of SalvusProject. If one or more jobs fail for a forward or an adjoint simulation, it will still raise an exception but copy all successfully completed jobs to the project folder. Any subsequent simulations launched will be aware of this and not submit the already run ones.

This makes it much easier to recover from sporadic cluster failures without having to directly modify the project directory.