

The first ESL workshop (July 2014) was an extended six-week software development workshop hosted by CECAM HQ in Lausanne, in which the tools and infrastructure for the project were prepared (such as the wiki website ), and the first contributions were included and made available online. The overarching strategy and direction of the ESL is also discussed and decided upon at these workshops, coordinated by a core group of organizers.
#Crosscode a promise is a promise 3 code
The ESL aims to be a community-driven project which anyone can contribute to, with regular hands-on workshops being held to encourage developers to get involved in working on individual libraries and contributing to the ESL website, and to form collaborations between different code bases. The aim of project, therefore, is to create a common online repository of high-quality software libraries, programming interfaces and data standards in the field of electronic structure, which will facilitate reuse of code, interoperability between different code bases, rapid and efficient evolution to new computer architectures, and development of new methodologies. In 2014 the Electronic Structure Library (ESL) project was launched in collaboration with CECAM, with the idea of fostering a new paradigm of library-based development for electronic structure, following the promise of the early examples mentioned above. The success of these particular examples may be partly attributed to the fact that they perform operations that are fairly loosely coupled to the main electronic structure code and, therefore, can be relatively easily abstracted. Examples include visualization, symmetry analysis, the computation and use of maximally-localized Wannier functions, libraries for exchange and correlation, and data structures and standards. There have been and there are a few notable efforts to go beyond the traditional paradigm by producing communal software and libraries that are agnostic to the specific electronic structure code in which they are used. In practical terms, this also limits the incentive for effective communication between scientists in the same field but involved in different codes, since technically separate solutions to the same conceptual problems must eventually be sought.Īt the moment it is widely recognized in the community that these are important, yet unsolved, problems. This makes it increasingly difficult for scientists to contribute new ideas built on top of everything that is already known, without becoming deeply involved with the development of a specific package. Furthermore, the complexity of the separate programs keeps on growing, in order to keep up with developments in the theory as well as in computer hardware. Because of this, most of the large code developments independently maintain routines providing overlapping functionalities and make use of non-universal data formats. Electronic structure methods and software still overwhelmingly work on a paradigm of separate complete programs that are self-contained and depend only on the compiler and a few basic libraries.
