Mondaic

Salvus 0.11.46

Released: 2022-03-18

This release comes with a fairly long list of small improvements and bug fixes listed below. Notable new features include (full) gradient sources for elastic simulations, GPU support for acoustic gradient sources, better memory management of inversions, several tweaks regarding window selection and weighting, and a more robust and faster algorithm to attach receivers.

Thanks again to all users who reported bugs and requested features!

Changes

SalvusCompute

Added vector gradient sources for elastic media.

SalvusCompute

Scalar gradient sources now also work on GPUs.

SalvusFlow

Initializing a site with SalvusFlow now runs a test job using the default number of ranks for that site instead of 2.

SalvusFlow

The site configuration for the GridEngine and PBS site types now allows simplistic expressions:

  [[sites.site_name.site_specific.additional_qsub_arguments]]
      name = "pe"
      value = "mpi {NODES * TASKS_PER_NODE}"

  [[sites.site_name.site_specific.additional_qsub_arguments]]
      name = "l"
      value = "ngpus={int(ceil(RANKS / 12))}"
SalvusFlow

Add a new lat_lng_to_utm_crs() helper routine to directly get a pyproj UTM CRS object from a point given in latitude and longitude.

SalvusFlow

The relative source and receiver placement code is much faster now due to algorithmic changes and code optimizations. Additionally, a few previously uncaught edge cases now work as expected.

SalvusFlow

Added local version of all HPC sites that directly interact with the job queuing and file systems without using SSH.

SalvusFlow

New salvus-cli alias for the salvus-flow command line call. This will become the default at one point.

SalvusProject

Safely remove adjoint sources after the adjoint simulation. This happens automatically after retrieving the results from the adjoint simulation. Adjoint source files will be recomputed on-the-fly if required. This can also be done explicitly using

p.misfits.compute_adjoint_source()
SalvusProject

Fix a bug in the hash computation for adjoint simulations that could result in non-unique hashes in special cases.

SalvusProject

New default basemap for the seismology receiver weights and misfit maps. Furthermore they are now configurable.

SalvusProject

The error log output of the seismological window picking routine is now more descriptive.

SalvusProject

SalvusProject will no longer create an empty EventWindowAndWeightSet in case the window selection routine did not pick a single window for a chosen event.

An appropriate warning message and log file entry will be created in that case.

SalvusProject

New function to get all events with windows for a chosen data selection configuration:

p.actions.seismology.get_events_with_windows("DSC_NAME")
SalvusProject

Added some more receiver weight validation steps and Salvus now properly deals with a few more edge cases, for example when the total receiver weight sum of an event is zero.

SalvusProject

UTMDomain objects no longer require the ellipsoid to be passed.