Surf: Surface waves in anisotropic layered media

Surf is a collection of Python codes and Jupyter notebooks for the calculation of dispersion curves, depth-dependent stress and displacement functions, as well as sensitivity kernels for Love and Rayleigh waves in stratified, radially anisotropic media. The codes very closely follow the developments in the 1972 classic of H. Takeuchi and M. Saito on external pageSeismic Surface Waves.

For a fixed frequency, Surf solves the systems of ordinary differential equations for Love and Rayleigh waves using a Runge-Kutta integration scheme for a range of trial wave numbers, until a wave number meets the free-surface boundary conditions. This allows us to obtain the fundamental and all higher modes. Sensitivity kernels for density and the elastic parameters A, C, F, L and N are computed on-the-fly using variational principles applied to the energy equation.

While the Python codes can be run independently, the whole package is more accessible via the two Jupyter notebooks, one for Love and one for Rayleigh waves. These notebooks are written in an educational style that covers part of the underlying theory and numerical methods. Furthermore, the notebooks include analytical solutions for very simple structural models, which may serve as an accuracy check of the numerical procedures.

Download

Downloadsurf.zip (ZIP, 2.3 MB)

Citation

Takeuchi, H., Saito, M., 1972. Seismic surface waves. Methods in Computational Physics: Advances in Research and Application 11, 217-295, external pagehttps://doi.org/10.1016/B978-0-12-460811-5.50010-6.

JavaScript has been disabled in your browser