Mondaic

Salvus 2024.1.0

Released: 2024-05-15

This is a major release which brings in several important changes. Salvus now natively supports Windows, which required a lot of modernizations and changes under the hood. However, we’ve been able to largely maintain backwards compatility with the existing API.

See here for the installation instructions.

Further notable changes include:

  • The dependency to libmpicxx has been removed. Salvus runs with any ABI-compatible MPI implementation such as MPICH and only the C-interface and library is required at runtime.
  • A versioning scheme for organizing a project’s internal files has been introduced.
  • A major upgrade of the internal meshing routines for layered models and an overhaul of the implementation of linear solids.

Additional new features and bug fixes are listed below.

If you have any questions or concerns about upgrading, please reach out in the user forum or contact [email protected] .

Changes

SalvusCompute

Upgrade to PETSc 3.20.5 and remove dependency on libmpicxx.

SalvusFlow

Fix a bug in salvus-cli status that would throw an index error when trying to query empty job arrays from the database.

SalvusFlow

Adjoint sources can now be computed for receiver channels.

SalvusFlow

Updated the Salvus Jupyter notebook snippets collection. It can be accessed by executing the following in a Jupyter notebook:

%load_ext salvus
%salvus_snippets
SalvusMesh API CHANGE

Add utilities for converting attenuation parameters and unify the handling of linear solids. The class sn.simple_mesh.linear_solid.LinearSolid has been removed and superseded. The class sn.LinearSolids can be used directly for a constant Q approximation. Alternatively, and for more fine-grained control, the coefficients of the standard linear solids (SLS) can be obtained using salvus.material.attenuation.lsqr_fit_q_factor_model.

SalvusMesh

Addition of algorithms to modify side sets in salvus.mesh.algorithms.unstructured_mesh_utils: retain_unique_facets, uniquefy_side_sets, get_internal_side_set_facets, disconnect_along_side_set.

SalvusMesh

Allow one to compute normal vectors and related rotation matrices for side sets of a mesh.

SalvusProject

Add methods to get all misfits of inversion and method to get all inverse_problem_configurations, respectively p.inversions.get_misfits() and p.entities.get_inverse_problem_configurations().

SalvusProject

The default seismology data processing function shows a lot of warnings of the external library ObsPy. If the wurlitzer library is installed, it will now be used to suppress these warnings.

SalvusProject

Start versioning the file structure of SalvusProject. User are able to migrate from an older version of the file structure to a newer one.