link to homepage

Institute for Advanced Simulation (IAS)

Navigation and service


Korringa-Kohn-Rostoker Green function code for quantum description of nano-materials

Scientific area

All-electron density-functional calculations.

Short description

KKRnano is linear-scaling (order-N) electronic structure code suitable for systems with tens of thousands of atoms. The electronic density, the fundamental quantity of density-functional theory, is determined from the Green function of the Kohn-Sham wave equation by using the concept of a repulsive reference system. The main computational effort consists in the iterative solution of large sets of sparse linear equations. The application of Kohn's nearsightedness principle of electronic matter, which is implemented by neglecting Green-function elements describing long-range interactions, leads to an algorithm with computing time and storage requirements which increase only linearly with the number of atoms. The code, which was developed at the Institute of Advanced Simulation and the Peter Grünberg Institut, both Research Centre Jülich, the German Research School of Simulation Sciences, Jülich, and the Department of Mathematics, University of Wuppertal, is highly parallelizable which opens the way for the quantum-mechanical treatment of tens of thousands of atoms. KKRnano was applied in large simulations for the phase-change material GeSb2Te4, the dilute magnetic semiconductor GaN doped with Gd and the shape-memory alloy NiTi. It is presently used to study oxygen vacancies in the resistive switching material SrTiO3 and long-range electronic-structure changes induced by P impurities in Si which are considered as a promising system for solid-state quantum computing.

A key point for running KKRnano on the full JUQUEEN was the use of SIONlib to reduce drastically the time spent for I/O.


  • 458,752 cores (1,835,008 parallel threads) on BlueGene/Q (JUQUEEN)
  • 294,912 cores on BlueGene/P (JUGENE)

Scaling of KKRnano on JUQUEEN(left) weak-scaling obtained by increasing the number of MPI tasks together with the number of atoms, (right) scaling to the full machine by increasing the number of OpenMP threads while keeping the number of MPI tasks fixed. Both use 64 hardware threads on each node.

Programming language and model

  • Fortran 2003
  • MPI, OpenMP, SIONlib for file I/O

Tested on platforms

  • BlueGene/Q and /P
  • x86

Application developers

Rudolf Zeller
Alexander Thiess
Elias Rabel
Matthias Bolten


Rudolf Zeller
Institute for Advanced Simulation
Theoretical Nanoelectronics
Forschungszentrum Jülich GmbH
52425 Jülich

(Text and images provided by the developers)