I know lot of density functional packages in fortran, including one which we are developing in our group (Fireball-DFT) but I don't like fortran very much and I would like something which is easier to integrate to other software.

For example, I have idea to create some simple interactive tool with GUI based on DFT or semi-empirical quantum chemistry method which can provide rough results (e.g. molecular orbitals) in almost real time (for small molecules).

Although some fortran based DFT packages can be interfaced into python interface e.g. in ASE it is quite slow and cumbersome way. Also I search for solver which is minimalistic and intendend for small systems, therefeore e.g. GPAW which is largely in C/C++ is not very good for me.

Do you know some simple quantum solver written in C/C++ or even better OpenCL? In case, I consider start to develop something similar by myself.

  • 1
    $\begingroup$ If you can accept Python, have a look at PyQuante. It's open-source, small, and simple to use. PLus it contains some C++ routines underneath. $\endgroup$
    – davidhigh
    May 11, 2017 at 11:52
  • 1
    $\begingroup$ You can make a fast search in GitHub and limit the search to C++, for example, I found cppDFT, that seems to fulfill your requirements. $\endgroup$
    – nicoguaro
    May 11, 2017 at 13:21

1 Answer 1


Quantum Chemistry codes can get very complicated very fast. Even if you limit yourself to DFT, there are many functionals to support. There's going to be a trade off here for you. You can get a simple, smaller code base, but you'll end up with very few features. Or you can go with a larger, more mature code base, but it will be more complicated for you to package it.

Speaking of simple, consider the example code from LIBINT:


This builds a fairly functional Hartree-Fock code in modern C++ using only a few hundred lines of code. Why not reproduce that in your new package? Of course, implementing density functionals, post Hartree-Fock methods, forces, etc is going to make your code grow quickly.

Edit: the full Hartree-Fock example code example including the 2 electron integrals is in the source code under tests/hartree-fock/hartree-fock.cc .

  • $\begingroup$ LIBINT looks exactly as what I want, I have to try $\endgroup$ May 12, 2017 at 13:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.