View the Project on GitHub jimlutsko/classicalDFT

Unit tests


Welcome to classicalDFT

classicalDFT aims at making possible to do classical density functional theory (DFT) calculations in a smooth manner.

classicalDFT is a repository which started as a suite of code for doing advanced calculations in various research projects on the broad field of statistical physics. This suite of code has matured over the years and it successfully served its purpose. The evolution of this repository into a standard library (classicalDFT) was motivated by the apparent lack of a standard open-source repository for classical DFT calculations in a compiled and robust language, as is the case of C++.

In the future, a mailing list will be advertised here for questions, discussions, and other topics which might be worth channeling in a unified way.

Getting started

The standard rules for installing a C++ library from an external repository apply in this case too. However, such standard steps which might be obvious for experienced developers could become overwhelming for developers or researchers who just have some basic understanding of software development with CMake and C++. Considering the broad audience this project might be subject to, we recommend the following documentation links for the different users:


classicalDFT is thought to keep requirements for building at minimum. However, there are some requirements which need to be satisfied for the correct funcitoning of the library. Such dependencies are:

If you notice any problems on your platform, please notify Patches for fixing them are more than welcome!


In this section we will list the main features implemented in classicalDFT, e.g. the different DFT energy models, differentiation methods, etc. The library is currently being refactored with the aim of achieving a better harmonisation between the different modules implemented. For this reason, we’ll be listing here only the modules which are ready in the new refactored version (though you can always check the original version in here):


classicalDFT has been used on a variety of platforms:



If you feel like contributing to this project, please read the where you will find the basic details on how to contribute to classicalDFT.


This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details


Development was funded by ESA