Developer notes
The QDYN team welcomes contributions from the community, which is facilitated by GitHub through pull requests. The optimal workflow for this is as follows:
- Fork the QDYN repository
- Modify or extend the code
- Push the commits to your forked repository
- Create a pull request to merge your code with that in the QDYN repository
When the pull request is made, Travis CI will assess the validity of the code by compiling the code and running the testing suite. The core developers will ensure that the pull request will be merged with the appropriate branch (e.g. release/2.3.4
).
For large modifications or new features, please contact the QDYN team or open an issue on GitHub to discuss the implementation strategy.
Work in progress
The following items are under active development and will be included in the stable branch in the future.
Physics
- Surface deformation to compare with GPS data
- Slip-dependent friction law
- 3D kernel for faults in infinite media
- Variable strike
- Layered media: EDKS (Luis Rivera), Relax (Sylvain Barbot)
- Heterogeneous media: import kernel from Relax, Pylith, or SPECFEM3D?
- Triangular mesh elements: e.g. Meade (2007), Gimbutas et al. (2012), Pan et al. (2014), Nikkhoo & Walter (2015)
Code engineering and optimisation
- QDYN-SPECFEM3D (QSB) bridge
- Update I/O management for compatibility with the stable QDYN version
- Design benchmark/integration test
- Create examples/tutorials using QSB
- Update documentation
- Incorporate QSB into the Python wrapper
- Intel MKL optimised libraries (e.g. for FFT)
- Hierarchical matrix techniques (“H-matrices”)
Input/Output
- Parallel MPI I/O or parallel I/O library (HDF5, NETCDF4, ADIOS)
- Binary output
The QDYN team
(listed alphabetically)
Jean-Paul Ampuero (IRD/UCA, Géoazur, France; Caltech Seismolab, USA)
Martijn van den Ende (Université Côte d’Azur, Géoazur, France)
Percy Galvez (KAUST, Saudi Arabia; AECOM, Switzerland)
Benjamin Idini (Caltech Seismolab, USA)
Yingdi Luo (NASA JPL, USA)