This document focuses on how to write quantum chemistry programs with C++. Besides, relevant references about algorithms and some programming language tricks will also be presented here in order to reduce potential bugs and make programs run faster.
It was around 2018 when I first started writing quantum chemistry programs. I was lucky enough to find a great tutorial[1] from Crawford Group as well as a book easy to understand.[2] As I learned more, I found some other references that were also helpful in writing quantum chemistry programs. The aim of the project is to summarize the useful tutorials and some key points in programming so that future learners can avoid detours.
- Quantum chemistry. I recommend this book[3] as a reference if you are not familiar with the field.
- C++ programming experience (500-1000 lines of code) and basic data structures.
- Ask a question where you don't understand
- Rephrase ambiguous expressions
- Submit bugs and improve the quality of code
- Make a suggestion for improving the document
When any of the above situations were encountered, contact me via email. I would greatly appreciate receiving any suggestions that readers may have for improving the document.
- Project #01: Something about C++ Programming.
- Project #02: Encapsulation of Matrix Class.
- Project #03: Basics of Molecular Integrals.
- Project #04: The Hartree-Fock SCF procedure.
- Project #05: Initial Guess and Convergence Acceleration.
- Project #06: Molecular Integral Evaluation.
- Project #07: Hartree-Fock Analytic Gradient.
- Project #08: Hartree-Fock Hessian and Frequency.
- Project #09: Density Functional Theory
- Project #10: Resolution of Identity (RI).
- Project #11: Chain of Spheres Exchange (COSX).
It is a pleasure to thank those people who helped me with different aspects of this document.
- Lingxiao Zhan helped me improve the English expression in this document.