Electronic Structure Modules¶
Introduction¶
This is a collection of the modules that have been created by E-CAM community within the area of Electronic Structure. This documentation is created using ReStructured Text and the git repository for the documentation source files can be found at https://gitlab.e-cam2020.eu/e-cam/E-CAM-Library which are public and open to contributions.
In the context of E-CAM, the definition of a software module is any piece of software that could be of use to the E-CAM community and that encapsulates some additional functionality, enhanced performance or improved usability for people performing computational simulations in the domain areas of interest to us.
This definition is deliberately broader than the traditional concept of a module as defined in the semantics of most high-level programming languages and is intended to capture inter alia workflow scripts, analysis tools and test suites as well as traditional subroutines and functions. Because such E-CAM modules will form a heterogeneous collection we prefer to refer to this as an E-CAM software repository rather than a library (since the word library carries a particular meaning in the programming world). The modules do however share with the traditional computer science definition the concept of hiding the internal workings of a module behind simple and well-defined interfaces. It is probable that in many cases the modules will result from the abstraction and refactoring of useful ideas from existing codes rather than being written entirely de novo.
Perhaps more important than exactly what a module is, is how it is written and used. A final E-CAM module adheres to current best-practice programming style conventions, is well documented and comes with either regression or unit tests (and any necessary associated data). E-CAM modules should be written in such a way that they can potentially take advantage of anticipated hardware developments in the near future (and this is one of the training objectives of E-CAM).
Extended Software Development Workshops¶
ESDW Zaragoza 2016¶
The first Electronic Structure ESDW in Zaragoza in June 2016 was the starting point for the modules below.
ESDW San Sebastian 2016¶
The ESDW in San Sebastian in September 2016 was the starting point for the modules below.
- Symmetry-Adapted-Wannier-Functions module
- Wannier90-TB-Interface module
- Non-Collinear-Spin module
- Adaptively-Refined-Mesh module
- FORD-Documentation-Tool-Integration module
- Improvement-Wannier90-Z2pack-Interface module
- Improvements-Makefiles module
- Use_WS_Distance module
- Test-Suite-Travis-CI-Integration module
ESDW Lausanne 2018¶
The ESDW in Lausanne in February 2018 was the starting point for the modules below.
ESDW Dublin 2019¶
The ESDW in Dublin in January 2019 was the starting point for the modules below.
ESDW Lausanne 2020¶
The ESDW in Lausanne in February/March 2020 was the starting point for the modules below.
Other Modules¶
Modules not coming from ESDWs
- flook
- LibGridXC - Exchange-correlation energies and potentials in radial and 3D grids
- libvdwxc - A library for vdW-DF exchange-correlation functionals
- DBCSR@MatrixSwitch
- Mass-Zero Constrained Dynamics for Orbital Free Density Functional Theory.
- Mass-Zero Constrained Dynamics for Orbital Free Density Functional Theory (HPC Version).
- Nonlinear Conjugate Gradient for Orbital Free Density Functional Theory.
Additionally, a module from an ESDW of WP4 was more relevant to this Work Package and so is reported here
Pilot Projects¶
One of primary activity of E-CAM is to engage with pilot projects with industrial partners. These projects are conceived together with the partner and typically are to facilitate or improve the scope of computational simulation within the partner. The related code development for the pilot projects are open source (where the licence of the underlying software allows this) and are described in the modules associated with the pilot projects.
Below is a list of the modules developed directly within the context of the pilot projects within E-CAM:
- Geomoltools
- GRASP Sampling
- GROMACS_Interface
- Gaussian_interface
- Selectively-Localized-Wannier-Functions
- Differential Evolution (SHADE)
- Weighted Linear Ridge Regression
- SCDM Wannier Functions
- Automated high-throughput Wannierisation
- W90_solution_booklet
- FFTXlib
- W90_cube_format_non-orthogonal
- miniPWPP
- PANNA-GVECT
- PANNA-TFR
- PANNA-TRAIN
- PANNA-EVAL
- PANNA-Charges
QMCPack interfaces¶
The following modules related to interfaces for the QMCPack code have been produced so far in the context of an associated Pilot Project: