SIESTA is a first-principles materials simulation program based on density-functional theory (DFT). It was one of the first codes to enable the treatment of large systems with first-principles electronic-structure methods, which opened up new research avenues in many disciplines. SIESTA is used in a wide range of applications, encompassing materials science, nanotechnology, catalysis, biological sciences (including interaction between organic and inorganic materials), geology and materials under high pressure, materials for nuclear reactors, and astrophysical and atmospheric systems.

License: SIESTA is an open source code distributed under the GNU General Public License.

Key information

  • First-principles materials simulation code based on density-functional theory (DFT) mostly written in modern Fortran.

  • Uses of atomic-like strictly-localised basis sets, allowing unlimited multiple-zeta and angular momenta, polarization and off-site orbitals. The use of a “good first approximation” to the full problem decreases the number of basis functions needed to achieve a given accuracy, and the finite support of the orbitals leads to sparsity in the Hamiltonian and overlap matrices, thus enabling the use of reduced-scaling methods.

  • Uses the standard Kohn-Sham self-consistent density functional method in the local density (LDA-LSD) or generalized gradient (GGA) approximations, and also implements functionals capable of describing van der Waals interactions. It employs norm-conserving pseudopotentials in their fully nonlocal (Kleinman-Bylander) form. SIESTA uses a real-space grid in order to calculate the Hartree and exchange-correlation potentials and their matrix elements.

  • SIESTA contains the transport code TranSIESTA, which is based on the non-equilibrium Green’s function formalism and enables open-boundary condition calculations by extending periodic regions with electrodes. TranSIESTA’s features include advanced inversion algorithms and multiple electrodes, and the code works seamlessly with post-processing codes like tbtrans/phtrans for additional analysis of electron and phonon transport properties.

  • SIESTA can also be used to provide base calculations for the execution of other electronic structure packages such as BerkeleyGW (optical properties and quasiparticle excitations), Gollum (transport), Wannier90 (maximally localized Wannier functions and advanced electronic properties), or i-PI (nuclear quantum effects in condensed phase systems).

Features

  • Total energies, forces, and stress.

  • Band structures.

  • Local and orbital-projected density of states.

  • Electron density.

  • Spin polarized calculations (collinear or not, including spin-orbit coupling).

  • k-sampling of the Brillouin zone.

  • COOP and COHP curves for chemical bonding analysis.

  • Dielectric polarization (Berry phase method).

  • Atomic, orbital and bond populations (Mulliken).

  • Geometry relaxation, fixed or variable cell.

  • Constant-temperature molecular dynamics (Nose thermostat).

  • Variable cell dynamics (Parrinello-Rahman).

  • Vibrations (phonons), in both the frozen-phonon and linear-response modes.

  • Time-dependent density-functional-theory.

  • Electronic-transport within the non-equilibrium Green’s function formalism.

Libraries

Development is hosted on the GitLab platform. SIESTA works with Fortran (and C for some functionality) and uses standard optimized libraries such as BLAS, LAPACK, ScaLAPACK, and NetCDF/HDF5. Some optional functionality depends on domain-specific libraries such as ELSI, ELPA, PEXSI, libXC, and/or the embedding of a (lightweight) Lua interpreter together with associated glue libraries. Note that some of the functional modules within SIESTA are being made stand-alone and released as library packages within the Electronic Structure Library (ESL).

I/O requirements

Checkpointing is based on the saving of the density matrix, which is a sparse data object in SIESTA, and hence moderate in size. Some modes of operation require the saving of (a subset of) the wavefunctions, which is a more substantial demand, but still manageable due to the low-cardinality of SIESTA’s basis set.

Diffusion

SIESTA is distributed for free under a GPL license. Release tarballs and development versions can be downloaded from its GitLab repository, while tutorials and other learning materials are publicly accessible from a dedicated documentation site. Further hands-on training activities are organised routinely, and SIESTA developers (about 20 of them active at the moment) can be easily reached through the SIESTA mailing list and the usual forums of the electronic structure community. SIESTA has a large use base, as displayed by the number of citations that the reference publication [1] receives every year, well over 600 (more than 12,000 citations by early 2022).

References

[1] J. M. Soler, E. Artacho, J. D. Gale, A. Garcia, J. Junquera, P. Ordejon, and D. Sanchez-Portal, The SIESTA method for ab initio order-n materials simulation, J. Phys.: Condens. Matter 14, 2745 (2002).

[2] García et al, Siesta: Recent developments and applications. J. Chem. Phys. 29 May 2020; 152 (20): 204108.

Performance

Scalability

SIESTA supports very diverse hardware architectures, including GPU acceleration via the ELPA library and massive parallelization with the PEXSI solver. SIESTA’s cost-effectiveness enables DFT calculations of hundreds of atoms even in personal computers. In HPC infrastructures, SIESTA can deal easily with calculations for thousands of atoms, giving it a distinct competitive advantage.

Parallel programming

The main parallelization paradigm is MPI, with some modules (notably TranSiesta) offering parallelization also using OpenMP. The solver stage, when using standard diagonalization algorithms, can also benefit from “library-mode” OpenMP. For most problems, the most computationally-demanding stage of SIESTA execution is the solver stage (calculation of energy eigenvalues from the above-mentioned sparse objects). On the one hand, SIESTA provides a range of solvers of its own, from cubic-scaling diagonalisation to linear-scaling methods, that exploit existing linear algebra libraries such as ScaLAPACK, ELPA, and DBCSR. On the other hand, SIESTA can leverage a number of libraries that implement favorably-scaling solvers, such as PEXSI (Pole EXpansion and Selected Inversion method). All these libraries are designed for parallel execution, and they are progressively incorporating support for offloading to an increasing breadth of GPU architectures.

HPC environments

SIESTA has been deployed in state-of-the-art HPC machines (including nearly all the EuroHPC systems), using suitable system and domain-specific libraries to achieve performance portability.


Figure 1:
Time per solver step for a system consisting of a COVID protein in water with 8,783 atoms and 57,647 orbitals. The calculation was performed using 8 nodes in each of the EuroHPC JU partitions evaluated, with various solvers available in SIESTA.


Figure 2:
Strong scaling in different EuroHPC JU supercomputer CPU partitions using the ELPA solver. The scalability measures the efficiency of the use of computational time when compared to a single node on the same partition. Work on fine-tuning performance on large numbers of GPU nodes is ongoing. The system is the same COVID protein in water described earlier.