Yambo is an ab-initio code for calculating quasiparticle energies and optical properties of electronic systems within the framework of many-body perturbation theory and time-dependent density functional theory. Quasiparticle energies are calculated within the G W approximation for the self-energy. Optical properties are evaluated either by solving the BetheāSalpeter equation or by using the adiabatic local density approximation. Yambo is a plane-wave code that, although particularly suited for calculations of periodic bulk systems, has been applied to a large variety of physical systems. Yambo relies on efficient numerical techniques devised to treat systems with reduced dimensionality, or with a large number of degrees of freedom. The code has a user-friendly command-line based interface, flexible I/O procedures and is interfaced to several publicly available density functional ground-state codes.

In practice, the yambo project is a mixed Fortarn/C code composed of a core part and many extensions. These extensions are pieces of code embodied in the main yambo trunk, that can be isolated or joint together. The result is one source but many possible executables.

The core of the yambo code plus some basical excited state features are publicly released under the GPL license. With this version of yambo you can calculate:

quasiparticle energies within the GW approximation.

electron loss and optical absorption spectra of solids, and dynamical polarizability of molecules at different level of theory.

Excitons and excitonic properties.

Yambo relies on the Kohn-Sham wavefunctions generated by two Density Functional Theory public codes: Abinit and PWscf . It is a suite of 4 different programs:

- a2y: the interface to abinit
- p2y: the interface to PWscf
- ypp: the postprocessing tool
- yambo: the main program

**NetCDF** (network Common Data Form) is a set of interfaces
for array-oriented data access and a freely-distributed collection of data access libraries for C, Fortran, C++, Java, and other languages.
The netCDF libraries support a machine-independent format for representing scientific data.
Together, the interfaces, libraries, and format support the creation, access, and sharing of scientific data.
NetCDF data is:

- Self-Describing. A netCDF file includes information about the data it contains.
- Portable. A netCDF file can be accessed by computers with different ways of storing integers, characters, and floating-point numbers.
- Scalable. A small subset of a large dataset may be accessed efficiently.
- Appendable. Data may be appended to a properly structured netCDF file without copying the dataset or redefining its structure.
- Sharable. One writer and multiple readers may simultaneously access the same netCDF file.
- Archivable. Access to all earlier forms of netCDF data will be supported by current and future versions of the software.

**HDF5** in YAMBO can be used only as underlying storage layer of NetCDF-4, for more details see The NetCDF-4 Format.

**FFTW** and
Goedecker and
Fourier Transform compliant.
FFTW is a C subroutine library for computing the discrete Fourier
transform (DFT) in one or more dimensions, of arbitrary input size,
and of both real and complex data.
Benchmarks, performed on on a variety of platforms, show that FFTW's performance is typically
superior to that of other publicly available FFT software, and is even competitive with vendor-tuned codes. In
contrast to vendor-tuned codes, however, FFTW's performance is portable: the same program will perform well on most architectures without modification.
Hence the name, *FFTW*, which stands for the somewhat whimsical title of *Fastest Fourier Transform in the West*.

The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers. It is currently written in a Single-Program-Multiple-Data style using explicit message passing for interprocessor communication. It assumes matrices are laid out in a two-dimensional block cyclic decomposition. ScaLAPACK is designed for heterogeneous computing and is portable on any computer that supports MPI or PVM.

Libxc is a library of exchange-correlation functionals for density-functional theory. The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals that can be used by all the ETSF codes and also other codes.

We have deviced *ad-hoc* numerical and theoretical tools that apply to different aspects of the code. These tools
are implemented in the code to give more accurate, reliable and fast results.