Matrix-free parallel Krylov solvers for Helmholtz equation discretized by finite-difference method, mainly using CSLP and high-order deflation preconditioning
Warning
This project is currently in active development and should be considered a work in progress. The source code is not yet optimized for performance or efficiency. Users should expect potential bugs, and changes in functionality. We welcome feedback and contributions.
The Helmholtz equation is a crucial mathematical model that describes the behavior of time-harmonic waves in various scientific fields, such as seismology, sonar technology, and medical imaging. For large-scale problems, iterative methods and parallel computing are commonly used. We aim to contribute to the broad research on this open problem by developing a matrix-free parallel scalable deflation preconditioned method for the Helmholtz equation.
This is the official repository for our research project "high-performance iterative solvers for the Helmholtz equation" and related papers.
The primary purpose of this repository is to:
- Make our code and data publicly available
- Allow other researchers to reproduce the results presented in our papers
- Verify our methodologies and findings
- Provide a foundation for further research and development in this field
- Source code for our matrix-free parallel Krylov solver
- Input data sets used in our experiments
- Scripts to run our solver
- Documentation on the code and its usage
- Matrix-free implementation for reduced memory footprint
- Parallel computing support for high-performance computation
- Complex Shifted Laplacian Preconditioner (CSLP) for improved convergence
- High-order (multilevel) deflation preconditioning for wavenumber-independent convergence
- Scalable design for large-scale Helmholtz problems
- Fortran compiler (e.g., gfortran 7.0+, ifort 18.0+)
- MPI library for parallel computing (with Fortran enabled)
- Tecplot360 (optional, for results visualization)
- Clone the repository:
git clone https://github.com/ARS183/paraMADP.git
- Navigate to the project directory:
cd paraMADP - Edit the input file
Helmholtz.inin theInputfolder (instructions for settings are in the input file). - Check and modify the
makefileif necessary. - Compile the project:
make
- Edit the job script
frun.shand specify the output log file name. - Run the solver:
Replace
./frun.sh <num_processes>
<num_processes>with the actual number of processes used for parallel computing. - Check the log file and the results in the
Outputdirectory. Note that the results can be visualized using Tecplot360.
For a quick start, refer to the README.md file in the current directory. The current job script frun.sh and input file Helmholtz.in is an typical example to reproduce our results about multilevel deflation.
Detailed documentation for this project:
- Refer to our papers in Citation for an overview of the mathematical theory behind the solver and preconditioners.
- Index: Detailed documentation of the codebase, including function descriptions and module structures generated by FORD
This project is a work in progress. We encourage contributions from the scientific community. We welcome feedback, questions, and contributions from the community. Please feel free to open issues or submit pull requests if you have suggestions or improvements.
For questions or support, please contact:
- Jinqiang Chen: j.chen-11@tudelft.nl
If you use this code or data in your research, please cite our papers:
[1] Chen, J., Dwarka, V., Vuik, C. (2024). Matrix-Free Parallel Preconditioned Iterative Solvers for the 2D Helmholtz Equation Discretized with Finite Differences. In: van Beurden, M., Budko, N.V., Ciuprina, G., Schilders, W., Bansal, H., Barbulescu, R. (eds) Scientific Computing in Electrical Engineering. SCEE 2022. Mathematics in Industry(), vol 43. Springer, Cham. https://doi-org.tudelft.idm.oclc.org/10.1007/978-3-031-54517-7_7
[2] Chen, J., Dwarka, V., & Vuik, C. (2024). A matrix-free parallel two-level deflation preconditioner for two-dimensional heterogeneous Helmholtz problems. Journal of Computational Physics, 113264. https://doi.org/10.1016/j.jcp.2024.113264
[3] Chen, J., Dwarka, V., & Vuik, C. Matrix-Free Parallel Scalable Multilevel Deflation Preconditioning for Heterogeneous Time-Harmonic Wave Problems. Coming soon.