Salvus 0.11.36
This release adds more flexibility for handling side-set extrusion and topography in 2-D, as well as a more robust implementation of processing function serialization. Additionally, the minimum supported CUDA Compute Capability has been lowered to 3.5, and as such Kepler-based NVIDIA GPUs can now be used.
Changes
Previously, the lowest CUDA compute capability supported by Salvus was 6.0, due to the unavailability of a double precision atomic add function in previous CCs. A workaround is now implemented, which should allow Salvus to run on GPUs of CC 3.5 and greater. Note that NVIDIA will soon deprecate architectures < 6.0, so at some point in the future new Salvus versions will again only support CC 6.0 and greater.
Add initial support for the GridEngine job queueing system.
There are a number of different versions of GridEngine out there and minor adjustments might be necessary for Salvus to run on them. Please let us know if you encounter some.
Add a utility to extrude meshes across side sets in 2D. The functionality is currently limited to Cartesian meshes and side sets aligned with a coordinate axis.
Example:
mesh = basic_mesh.CartesianHomogeneousAcoustic2D(
vp=1500.0, rho=1000.0, x_max=1.0, y_max=0.5,
max_frequency=1e3,
).create_mesh()
mesh = mesh.extrude_side_set_2D(
side_set="x1",
offsets=np.array([0.0, 2.0, 4.0]),
direction="x",
)More general definition of 2D dem objects for non-spherical models.
Now, y0 can be set to -np.inf to deform all elements in y direction
with negative y coordinates.
Example:
mesh = basic_mesh.CartesianHomogeneousAcoustic2D(
vp=1500.0, rho=1000.0, x_max=1.0, y_max=2.0, max_frequency=10e3
).create_mesh()
mesh.points[:, 1] -= 0.5
mesh.add_dem_2D(
x=np.array([0.0, 1.0]),
dem=np.array([-0.25, 0.25]),
y0=-np.inf,
y1=np.inf,
kx=1,
ky=1,
)
mesh.apply_dem()SalvusProject sometimes has to serialize Python functions to disc (e.g. misfits, processing functions, …).
This now works with more functions, like functions that call other custom functions, closure values within with statements and a few other things.
In general it should just be more reliable.