Mondaic

Salvus 0.12.10

Released: 2023-03-15

First release of 2023 with several small improvements in various components of Salvus. Details are listed below.

Changes

SalvusCompute

Add support ASDF output for receivers that only differ by location code.

SalvusFlow

There is a a new custom_commands setting for Slurm sites to add custom bash commands to a job script.

SalvusMesh

Add function to compute the density model based on Gardner’s relation, and support customizable Gardner’s constants alpha and beta.

SalvusMesh

Adds a new function mesh.adjust_side_sets.adjust_site_set that allows for the re-interpolation of a mesh’s vertical side set to a new digital elevation model, potentially at a higher order than originally used. This can be useful, for instance, when changing frequency bands and taking advantage of the smaller mesh size to better resolve topography, changing a mesh’s model order, or re-interpolating after adding local refinements. This re-interpolation also now happens by default when using the layered meshing interface.

SalvusMesh

Both 2- and 3-d anisotropic acoustic models can now be specified in terms of velocities (rho, vph, and vpv). Note that this parameterization implies that epsilon = delta.

SalvusModules

Throw a descriptive error message when trying to use the waveform database with unsupported receiver types.

SalvusProject

Enable passing start and end time for computing the discrete Fourier transform as extra output configuration in SalvusProject.

Example:

p.simulations.launch(
    simulation_configuration="my_simulation",
    events=p.events.list(),
    ranks_per_job=2,
    site_name="local",
    extra_output_configuration={
        "frequency_domain": {
            "frequencies": [10.0],
            "fields": ["phi"],
            "start_time_in_seconds": 1.0,
            "end_time_in_seconds": 1.1,
        }
    }
)
SalvusProject

Fix a bug that would prevent launching simulations of events without receivers in SalvusProject. This can be useful, for instance, if only volumetric output is desired.

SalvusProject

Stability improvements in the receiver weighting algorithms in case a particular event has no or very little windows.

SalvusUtils

Add a new salvus.utils.logging.log_timing() context manager that logs the time the context takes to execute.

SalvusUtils

Adds the ability to properly handle surface output in the salvus.toolbox.helpers.wavefield_output module. To use this, one simply needs to pass “surface” as an output type when loading the wavefield output. Also added the ability to drop dimensions from outputs, so 3-D surface outputs can be visualized in 2-D planar plots (such as in matplotlib). This can be accessed by calling the .drop(...) function on a WavefieldOutput instance.