### Computing Environments

- Fortran and C/C++ interfaces provided; Python planned for a future release
- All major compiler suites supported (GNU, Intel, PGI, XL, Cray)
- Compiles and run on computing environments as diverse as NERSC’s Cori and Edison, Argonne’s Mira and Theta, Oak Ridge’s Titan, generic *nix-based clusters, and MacBook Pros

### Supported Solvers

The Kohn-Sham eigenvalue problem can be explicitly solved by traditional (tri)diagonalization. In ELSI, the massively parallel dense eigensolver ELPA facilitates the solution of symmetric or Hermitian eigenproblems on high-performance computers. It was initially designed for distributed memory architectures, extended to exploit multi-threading parallelism, and is subject to ongoing work for GPU acceleration.

The orbital minimization method (OMM) bypasses the Kohn-Sham eigenvalue problem by efficient iterative algorithms which directly minimize an unconstrained energy functional using a set of auxiliary Wannier functions. The Wannier functions are defined on the occupied subspace of the system, reducing the size of the problem. The density matrix of the system is then obtained directly, bypassing the need to calculate Kohn-Sham orbitals.

PEXSI is a Fermi operator expansion (FOE) based method which expands the density matrix in terms of a linear combination of a small number of rational functions (i.e. a pole expansion). Evaluation of these rational functions exploit the sparsity of the Hamiltonian and overlap matrices using selected inversion to enable scaling to 100,000s+ of MPI tasks for calculation of the electron density, energy, and forces in electronic structure calculations.

### Solvers Planned for Future Integration

From authors: *“CheSS is a package providing various high-level operations based on Chebyshev expansions for sparse matrices. Among other functionalities, it provides an implementation of the Fermi Operator Expansion (FOE) method to calculate the density matrix in an electronic structure calculation and an efficient way of calculating the power of a sparse matrix.”*