Salvus 0.12.10
First release of 2023 with several small improvements in various components of Salvus. Details are listed below.
Changes
Add support ASDF output for receivers that only differ by location code.
There is a a new custom_commands setting for Slurm sites to add custom
bash commands to a job script.
Add function to compute the density model based on Gardner’s relation, and support customizable Gardner’s constants alpha and beta.
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.
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.
Throw a descriptive error message when trying to use the waveform database with unsupported receiver types.
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,
}
}
)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.
Stability improvements in the receiver weighting algorithms in case a particular event has no or very little windows.
Add a new salvus.utils.logging.log_timing() context manager that logs the
time the context takes to execute.
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.