2
$\begingroup$

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.

$\endgroup$
  • 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 '17 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 '17 at 13:21
1
$\begingroup$

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:

https://github.com/evaleev/libint/wiki/using-modern-CPlusPlus--interface-v22

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 .

$\endgroup$
  • $\begingroup$ LIBINT looks exactly as what I want, I have to try $\endgroup$ – Prokop Hapala May 12 '17 at 13:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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