The Electronic Structure Library (ESL, esl.cecam.org) is a new project to build a community-maintained library of software of use for electronic structure simulations. The goal is to create an extended library that can be employed by everyone for building their own packages and projects. It consists of entries documenting functionalities, algorithms, interfaces, standards and pieces of code ranging from small routines for performing simple tasks, all the way up to complete libraries. Although wiki entries may document software maintained elsewhere, the ESL also provides a software development infrastructure for internally developed projects. This infrastructure also permits the regular building of automatic documentation, for both internal and external projects.
The ambition of the ESL is to segregate layers of functionality within modules which are general, standardised and efficient. In this way, new ideas, and new science, can be coded by scientists without needing to rewrite functionalities that are already well-established, and without needing to know more software engineering than science. In other words, we want to separate the coding effort for cutting-edge research from the software infrastructure it rests on top of, which needs maintaining and rewriting at every step of the hardware race.
ESL development is being carried out in a series of coding-based workshops. This year, development of new libraries will revolve around the broad theme of solvers. We plan to work on three specific library bundles, all relating to crucial parts of any density-functional theory code:
-Kohn-Sham eigensolvers: Development for the ESL is already underway in this area. New steps forward will be taken through a new “Electronic Structure Infrastructure” (ELSI, www.elsi-interchange.org) project, in direct coordination with ESL and also connecting U.S. based researchers to the wider ESL effort. ELSI will bring together several different approaches to solving or circumventing the Kohn-Sham eigenvalue problem, including a density matrix solver (libOMM), a resolvent-based method (PEXSI), and a scalable diagonalization method (ELPA), and will be open to integrating other open source solvers that are compatible and/or complementary.
-Poisson solvers: similarly to the eigensolvers, the aim will be to implement in a single package several different algorithms of use in different situations, providing a unified and clean interface for the user. Special attention will go to allowing different FFT back ends to be connected to the library.
-Atomic solvers: this is one of the most notable examples of replicated development in different code bases, with no modern independent library available. The aim will therefore be to create a new library with a modern, coherent list of features, ultimately targeting spherical Hartree-Fock, semilocal and hybrid DFT, and different optional relativistic levels of theory. It will also be connected to LibXC for immediate access to many different exchange-correlation functionals (and, in doing so, will avoid replicated development).
In addition to the solvers, work will also continue on maintaining existing ESL developments.