
This project is maintained by Marco A. Lopez-Sanchez - Last update: 2026-06-18
PyRockWave is a free, open-source Python tool that reads single-crystal elasticity databases and calculates the elastic properties of Earth materials. Its submodules can compute isotropic seismic properties, volume- and CPO-weighted averages, phase and group seismic properties from the Christoffel equation, analytical anisotropy models, reflectivity and effective stiffness/compliance tensors for layered media (Schoenberg & Muir approach), and ultrasonic signal processing. Further tools visualize seismic properties, convert between spherical and Cartesian coordinates, generate S2 grids, and simplify working with tensors.
PyRockWave is modular: it exposes plain Python functions so you can develop with it and integrate it into other tools. Worked examples in Jupyter notebooks keep workflows easy to follow and reproducible.
View repository on GitHub: https://github.com/marcoalopez/PyRockWave
Warning
PyRockWave is still in the beta stage. Its functionality may change and break backward compatibility. Parts of the code are not well tested yet, and there is no installation guide or detailed documentation. However, the code will always be free and open source. You are welcome to explore and use it at your own risk.
Available soon (I'm working on it! π)
Available soon (I'm working on it! π)
Available soon (I'm working on it! π)
Accessing elastic databases and estimating isotropic seismic properties with the elastic_tensor submodule
Demonstration of the functionality of the christoffel submodule
Demonstration of the functionality of the layered_media submodule
Demonstration of the functionality of the averaging _schemes submodule
Demonstration of the functionality of the anisotropic_models submodule
Demonstration of the functionality of the coordinates module
Demonstration of the functionality of the tensor_tools module
The GitHub website hosting the project provides several options (you will need a GitHub account, itβs free!):
Open a discussion: This is a place to:
Ask questions.
Request features or share ideas with the developers.
Open an issue: This is a place to report and track bugs.
Create a pull request: Submit a fix or new feature for a notebook, and a developer will review it and merge it.
Funding from the Government of the Principality of Asturias and the Foundation for the Promotion of Applied Research in Asturias (FICYT) (grant: SV-PA-21-AYUD/2021/57163) under the Asturias Plan for Science, Technology and Innovation (PCTI-Asturias) 2018-2022 seeded this project. I am currently seeking further funding to complete it.
Copyright Β© 2023-present Marco A. Lopez-Sanchez
Note
The information on this website and in the script documentation is provided without any warranty of any kind, either expressed or implied, and may include technical inaccuracies or typographical errors. The author reserves the right to make changes or improvements to the content of this website and the script documentation at any time without notice. This website and its documentation are not responsible for the content of external links. Notebook content is licensed under Creative Commons Attribution license CC-BY 4.0 and code is licensed under GNU General Public License v3 (https://www.gnu.org/licenses/gpl-3.0.en.html) unless otherwise noted.
Hosted on GitHub Pages β This website was created with Typora