YAMBO code

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Yambo
Original authorAndrea Marini
DevelopersDavide Sangalli, Claudio Attaccalite, Andrea Ferretti, Henrique Miranda, Myrta Gruning, Conor Hogan, Daniele Varsano, Dario A. Leon, Fulvio Paleari, Igancio Alliati, Nicola Spallanzani, Nalabothula Muralidhar, Elena Molteni, Alberto Guandalini, Pedro Melo, Ryan McMillan, Fabio Affinito, Alejandro Molina-Sanchez
Initial release2008; 18 years ago (2008)
Stable release
5.2 / 31 August 2023; 2 years ago (2023-08-31)
Repositorygithub.com/yambo-code/yambo
Written inFortran, C
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, Unix-like
    Platformx86, x86-64
    Available inEnglish
    TypeMany-body theory
    LicenseGPL
    Websitewww.yambo-code.eu

    Yambo is a computer software package for studying many-body theory aspects of solids and molecule systems.[1][2] It calculates the excited state properties of physical systems from first principles, e.g., from quantum mechanics law without the use of empirical data. It is an open-source software released under the GNU General Public License (GPL). However the main development repository is private and only a subset of the features available in the private repository are cloned into the public repository and thus distributed.[3]

    Excited state properties

    [edit | edit source]

    Yambo can calculate:

    Physical systems

    [edit | edit source]

    Yambo can treat molecules and periodic systems (both metallic an insulating) in three dimensions (crystalline solids) two dimensions (surfaces) and one dimension (e.g., nanotubes, nanowires, polymer chains). It can also handle collinear (i.e., spin-polarized wave functions) and non-collinear (spinors) magnetic systems.

    Typical systems are of the size of 10-100 atoms, or 10-400 electrons, per unit cell in the case of periodic systems.

    Theoretical methods and approximations

    [edit | edit source]

    Yambo relies on many-body perturbation theory and time-dependent density functional theory.[13][14] Quasiparticle energies are calculated within the GW approximation[15] for the self energy. Optical properties are calculated either by solving the Bethe–Salpeter equation[16][17] or by using the adiabatic local density approximation within time-dependent density functional theory.

    Numerical details

    [edit | edit source]

    Yambo uses a plane waves basis set to represent the electronic (single-particle) wavefunctions. Core electrons are described with norm-conserving pseudopotentials. The choice of a plane-wave basis set enforces the periodicity of the systems. Isolated systems, and systems that are periodic in only one or two directions can be treated by using a supercell approach. For such systems Yambo offers two numerical techniques for the treatment of the Coulomb integrals: the cut-off[18] and the random-integration method.

    Technical details

    [edit | edit source]
    • Yambo is interfaced with plane-wave density-functional codes: ABINIT, PWscf, CPMD and with the ETSF-io library.[19] The utilities that interface these codes with Yambo are distributed along with the main program.
    • The source code is written in Fortran 95 and C
    • The code is parallelized using MPI running libraries

    User interface

    [edit | edit source]
    • Yambo has a command line user interface. Invoking the program with specific option generates the input with default values for the parameters consistent with the present data on the system.
    • A postprocessing tool, distributed along with the main program, helps with the analysis and visualization of the results.

    System requirements, portability

    [edit | edit source]

    Learning Yambo

    [edit | edit source]

    The Yambo team provides a wiki web-page with a list of tutorials and lecture notes. On the yambo web-site there is also a list of all thesis done with the code.

    Non-distributed part

    [edit | edit source]

    Part of the YAMBO code is kept under a private repository. These are the features implemented and not yet distributed:

    • total energy using adiabatic-connection fluctuation-dissipation theorem [20]
    • magnetic field[21]
    • self-consistent GW[22]
    • dynamical Bethe–Salpeter[23]
    • finite-momentum Bethe-Salpeter
    • real-time spectroscopy[24]
    • advanced kernels for time-dependent density functional theory (Nanoquanta kernel[25]).

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Bethe-Salpeter equation: the origins
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]