This repository provides scripts to build a planetary model on a deformable tetrahedal mesh as well as its reference gravity. It supports and provides input files for the repository "normal mode computation at planetary scales".
The above are two animations for compressional wave speed of PREM and shear wave speed of PREM.
- Demos: scripts to build 3D planetary models;
- bin: a script to run the Matlab scripts in the Demos/;
- figs: figures and animation of different planetary models;
- modelbuilder: scripts to build finite-element matrices and other information;
- packages: external packages to build the mesh, compute the reference gravity and visualize the modeling results;
- radialmodels: scripts and data that contain information about radial planetary models from the existing literature;
- discontinuities: scripts to build discontinuities using unstructured triangles as well as some precomputed meshes;
- visual: scripts to visualize the normal modes computed from the repository "normal mode computation at planetary scales".
This repository uses several packages, including
- TetGen by Hang Si;
- distmesh by Per-Olof Persson;
- several Matlab scripts from Hesthaven & Warburton's book 'Nodal Discontinuous Galerkin Methods';
- fmmlib3d from Leslie Greengard and Zydrunas Gimbutas;
- a Matlab script for vtk users by Shawn Walker;
We've put most of the original codes under different folders with some minor changes for this application.
You may follow the README.md under packages to compile what you need. If you only need to build a tetrahedral mesh, please compile TetGen; if you are a Linux user, just go to packages/tetgen1.5.0 and type make. If you need to compute the reference gravity, please check the readme under packages/ and compile packages/fmmlib3d-1.2.
Please check the scripts under Demos/CONST for a constant ball model, Demos/PREM for a standard Earth model, Demos/Moon for a Moon model and Demos/RT_MarsDWAK for a Mars model. Under these folders, you may run
run {CONST/PREM/M6Ltopo/MarsDWAK}_mesh; run Gravity;
to obtain the model and its reference gravity. Note that the 3D crusts used in this work are based on the results of several NASA missions, including the Lunar Orbiter Laser Altimeter (LOLA), Gravity Recovery and Interior Laboratory (GRAIL) and the Mars Orbiter Laser Altimeter (MOLA). Please see discontinuities/ for more details.
Here, we show a Moon shear wave speed model in the top right figure, the Mars topography in the top middle figure and a Mars shear wave speed model in the top right figure. These models can be reproduced by the scripts provided in the Demos.The corresponding Moon and Mars models can be found via this IEEE data port.
You can build more realistic models using similiar ideas and following the above tips! You may need to understand what distmesh can do. It is quite simple, please see its Demos.
The top right figure illustrates an Earth compressional wave speed model based on MIT tomographic results (Burdick et al. 2017) and crust 1.0 (Laske et al. 2013). The top left one shows the topography of the Moho discontinuity under Tibetan Plateau. If you would like to reproduce these models, you may need to download the model data and make some minor changes in the scripts to obtain and visualize your results.
- We use ParaView to visualize the results (vtk or vtu files).
- To design your own models, you may change the settings, including different discontinuities and model profiles.
- To insert discontinuities, such as topography, interior boundaries, please check the folder discontinuities/ and utilize surface distance functions to build your own meshes.
You can use scripts in visual/ to visualize your computed normal modes from the repository "normal mode computation at planetary scales". Please check visual/README.md for more details.
- [Theory, discretization and validation]: Jia Shi, Ruipeng Li, Yuanzhe Xi, Yousef Saad, and Maarten V. de Hoop. "A non-perturbative approach to computing seismic normal modes in rotating planets." Journal of Scientific Computing, 91:67, 2022, the paper link.
- [Reproducibility, summary and discussion of the student cluster competition results]: Jia Shi, Ruipeng Li, Yuanzhe Xi, Yousef Saad, and Maarten V. de Hoop. "Planetary normal mode computation: Parallel algorithms, performance, and reproducibility." IEEE Transactions on Parallel and Distributed Systems, 32, no. 11 (2021): 2609-2622, the paper link.
- [Parallel performace and algorithms]: Jia Shi, Ruipeng Li, Yuanzhe Xi, Yousef Saad, and Maarten V. de Hoop. "Computing planetary interior normal modes with a highly parallel polynomial filtering eigensolver." In SC18: International Conference for High Performance Computing, Networking, Storage and Analysis, pp. 894-906. IEEE, 2018, the paper link.
Other related references can be found in modelbuilder/, packages/, radialmodels/ and discontinuities/.
Please let us know any issues of this repository. Contributions are welcome.