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 a 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 is developed at the Forschungszentrum Jülich in a collaborative effort by the Peter Grünberg Institut and the Jülich Supercomputing Centre. It is highly parallelizable which opens the way for the quantum-mechanical treatment of up to a million atoms. KKRnano was initially 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 complex non-collinear magnetic structures, such as skyrmions, in real space. Skyrmions are two-dimensional magnetization solitons, i.e. two-dimensional magnetic structures localized in space, topologically protected by a non-trivial magnetization texture, which has particle-like properties. Special emphasis is currently put on the code’s performance with regards to present and upcoming many-core architectures to ensure maximum efficiency on future supercomputers.

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 (Juqueen) and /P (Jugene)
  • x86 (Jureca, Hazel Hen)
  • Xeon Phi (KNL) (QPACE3)

Application developers

Rudolf Zeller
Marcel Bornemann
Paul F. Baumeister


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

(Text and images provided by the developers)