This repository applied a combination of several highly parallel algorithms to compute the planetary interior normal modes. The elastic-gravitational system is discretized using the Continuous Galerkin mixed finite element method. A Lanczos approach with polynomial filtering is utilized for solving the resulting generalized eigenvalue problems.
Self-gravitation and rotation are included in the branch "rotation".
News: This work has been selected to serve as the benchmark for the student cluster competition reproducibility challenge at SC'19. Please see the official announcement and teams named. If you look for the code for the competition, please see SCC19 version in the release.
Many different modes are expected. Please see below for selected normal modes computed from a standard spherically symmetric Earth model.
It is not straightforward to compute the normal modes of a fully heterogeneous planet. We have to deal with multiphysics at large scales, which computationally involves many techniques in numerical linear algebra, finite element method, computer graphics, high-performance computing, etc. We do not expect that we can obtain everything via a single click. However, to solve this complicated problem, we divide the original one into several smaller subproblems. Indeed, via solving each subproblem separately, it actually simplifies our work significantly. We develop three repositories to provide a solid solution for this application:
- PlanetaryModels: It is a planet model builder and provides scripts to generate planetary models on fully unstructured tetrahedral meshes. It provides a simple and flexible way to create a 3D body with almost arbitrary exterior and interior shapes.
- pEVSL: It is a parallel eigenvalue slicing library. It provides general algebraic algorithms to solve large-scale generalized Hermitian extreme and interior eigenvalue problems. You may use the forked pEVSL version for this application, since it contains several modifications for your convenience.
- NormalModes: It builds up the matrices from the elastic-gravitational system using finite element method and utilizes several external libraries, including pEVSL, to solve for the normal modes of the planetary model generated by PlanetaryModels.
- exafmm: It computes the gravitational potentials and fields using fast multiple method.
The separated repositories also provide flexibility to extend our work for other purposes. Please let us know if you plan to utilize what we have to your work.
Please follow INSTALL.md to install the application. Please check the demos/global_conf, which shows an extremely simple parameter setting. Since the problem is deterministic, there are only a few parameters that are needed to compute the normal modes. You can then obtain all the eigenpairs in the prescribed frequency interval. The values of eigenfrequencies will be shown at the end of the computation as well as their relative errors, i.e., ||Ax-λBx||/||λ||, which is typically around 10^-13. The eigenfunctions will be saved in the binary format. Please check the README.md under demos/ for more details.
Tips: Please always check the performance and scalability before running large-scale applications.
Visualization: You can use scripts in PlanetaryModels and Paraview to visualize your results. Here, we show animations created by Paraview: 0S2, 0T2, 3S9 and 1T11. 3S9 and 1T11 are illustrated below.
You can also use the NMPostProcess library to visualize modes and automatically identify them.
- [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.
Please report issues under this repository. Contributions are welcome.