Salvus 2024.1.0
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
libmpicxxhas 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
Upgrade to PETSc 3.20.5 and remove dependency on libmpicxx.
Fix a bug in salvus-cli status that would throw an index error when trying
to query empty job arrays from the database.
Adjoint sources can now be computed for receiver channels.
Updated the Salvus Jupyter notebook snippets collection. It can be accessed by executing the following in a Jupyter notebook:
%load_ext salvus
%salvus_snippetsAdd 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.
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.
Allow one to compute normal vectors and related rotation matrices for side sets of a mesh.
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().
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.
Start versioning the file structure of SalvusProject. User are able to migrate from an older version of the file structure to a newer one.