minichem

A very simple quantum chemistry program

minichem

A very simple quantum chemistry program.

Minichem is a tiny educational project, created in order to better understand the computational methods of quantum chemistry. I will improve it while studying new methods.
For details, see A. Szabo, N. Ostlund, “Modern Quantim Chemistry”, and T. Helgaker, P. Jorgensen, J. Olsen, “Molecular Electronic-Structure Theory”. All example calculations were validated using NWChem.

Features:

  • Single-point energy calculation;
  • RHF and UHF methods;
  • DIIS convergence acceleration algorithm;
  • OpenMP parallelization (not yet implemented in C++ version);
  • Available elements: all periodic table (but only non-relativistic treatment is available!);
  • Available basis sets: cartesian and spherical with L up to g-functions;
  • Tiny basis set library (adopted from EMSL [1,2]).

Possibilities to be implemented in the future:

  • DIIS implementation for UHF;
  • More scalable OpenMP parallelization;
  • Analytic gradients and geometry optimization;
  • Projection population analysis;
  • Molecular symmetry;
  • I want to try to implement also four-index transformation and MP2

Required tools:

  • C compilers (GNU or Intel)
  • CMake and make

Required libraries:

  • libc
  • MPI
  • BLAS/LAPACK and CBLAS/LAPACKE (C wrappers for their routines)
  • OpenMP (optional)

How to compile:

$ mkdir build && cd build

$ cmake …

$ make [-jN]

For suggestions and questions, [email protected], I look forward to any comments!

Citations

[1] The Role of Databases in Support of Computational Chemistry Calculations
Feller, D., J. Comp. Chem., 17(13), 1571-1586, 1996.

[2] Basis Set Exchange: A Community Database for Computational Sciences
Schuchardt, K.L., Didier, B.T., Elsethagen, T., Sun, L., Gurumoorthi, V., Chase, J., Li, J., and Windus, T.L.
J. Chem. Inf. Model., 47(3), 1045-1052, 2007, doi:10.1021/ci600510j.