FAQ

Below are lists of Frequency Asked Questions about Yambo.

  • General  
  • Installation
  • Usage
  • External codes

GENERAL

  1. What’s with the name?
    Don’t worry about it, it’s just a silly name. It doesn’t stand for anything like Yet Another Many-Body cOde, for instance. Unless you really want it to.
  2. How do I cite Yambo?
    We would appreciate it if you cited Yambo in any publications you make using the code. The primary references for Yambo are the articles:

    1) Many-body perturbation theory calculations using the yambo code
    Davide Sangalli, Andrea Ferretti, Henrique Miranda, Claudio Attaccalite, Ivan Marri, Elena Cannuccia, Pedro Miguel Melo, Margherita Marsili, Fulvio Paleari, Antimo Marrazzo, Gianluca Prandini, Pietro Bonfà, Michael O Atambo,Fabio Affinito, Maurizia Palummo, Alejandro Molina Sanchez, Conor Hogan, Myrta Grüning, Daniele Varsano and Andrea Marini Journal of Physics: Condensed Matter 31 325902 (2019) https://doi.org/10.1088/1361-648X/ab15d0

    2) yambo: An ab initio tool for excited state calculations
    Andrea Marini, Conor Hogan, Myrta Grüning, and Daniele Varsano Computer Physics Communications 180, 1392-1403 (2009)
    https://doi.org/10.1016/j.cpc.2009.02.003

INSTALLATION

  • Can Yambo be used on OS/X?
    Yes, sure

USAGE

  • What is the meaning of each variable in the input file for GW calculations?
    Following the tutorials in the wiki page will provide you with the answers you are looking for. A detailed explanation of each variable can be found at yambo-wiki:Variables. The impatient can also find a short guide in this post of Dr. Attaccalite. The meaning of the variables linked to the implemented theory can be found in the cheatsheet.
  • What is the meaning of each variable in the input file for BSE calculations?
    Following the tutorials in the wiki page will provide you with the answers you are looking for. A detailed explanation of each variable can be found at yambo-wiki:Variables. The impatient can also find a short guide in this post of Dr. Attaccalite. The meaning of the variables linked to the implemented theory can be found in the cheatsheet.
  • Which values of the parameters are suitable for a calculation with Yambo?
    There is no general answer to this question. The parameters will strongly depend on your system and on the degrees of accuracy you want to reach. Our advice is to perform careful convergence tests before trusting your results. Strategies for the convergence tests are explained in the tutorials. Some useful advice can be also found in this post of Dr. Attaccalite.
  • Can I calculate GW correction on an arbitrary point of the Brillouin zone with Yambo?
    Yes, as explained in details in this post by Dr. Attaccalite.
  • Can Yambo deal with self-consistent GW?
    Partially, you can easily apply the so-called eigenvalue only self-consistent GW. In this post of Dr. Attaccalite you can find a short guide on how to do it.
  • Can I use Yambo on top of ground state calculated with hybrid functionals?
    At the moment it is possible to perform GW and BSE calculation on top of B3LYP, PBE0,GAU-PBE and plain Hartree-Fock ground state. In order to have meaningful results, you must treat the divergences of the exchange part in QE and Yambo on the same footing (vcut_spherical or vcut_ws in exxdiv_treatment for QE and CUTGeo=”sphere or ws” respectively in Yambo). Note that for gau-pbe exxdiv_treatment should be set to “none”. Moreover, it is strongly recommended to use the covariant algorithm for the calculations of the dipoles (DipApproach= “covariant”).
  • The convergence of the dielectric function with respect to k-point sampling is very slow.
    In Yambo there is implemented a double-grid technique that speeds up convergence versus k-points with a computational cost comparable to the standard calculations. In order to use it have a look at this post by Dr. Attaccalite.
  • I’m doing calculations on low dimensional systems and I want to avoid replica interactions and speed up convergence with respect to the amount vacuum in the supercell. 
    To speed up the calculations you can use truncated Coulomb potentials (see e.g. Phys. Rev. B 73, 205119 (2006). If you have n orthorhombic cell it is recommended to use a Wigner-Seitz shaped truncated potential (e.g. CUTGeo=”ws z” for a slab lying in the xy direction). Other shapes are available as a sphere for 0D systems, cylinder for 1D and a box-shaped that is valid for any dimensionality. In order to set correctly the parameters of your box, you may have a look to this thread.
  • When calculating absorption spectra using the truncated coulomb cutoff I notice very small number in the macroscopic dielectric function, is that a ptoblem?
    Actually it is not. You can read this thread to understand why it happens.
  • Is it possible to interpolate GW band structures using Wannier-90?
    Yes, you can have a look to example 23 of this tutorial and next to this thread for some relevant information in the ypp settings.

ERRORS DURING EXECUTION

  • My job crashed with a segmentation fault, what could be the reason?
    It is hard to say, as there are many possible reasons. Common reasons are related to the fact your jobs went out-of-memory,  or mathematical libraries were compiled with a different compiler. In the first case, it could be useful to recompile Yambo using the flag –enable-memory-profile in the configure step. This will enable the monitor of the memory used by Yambo in runtime by expecting the log files and gives you an idea of how much memory per core you need to execute your job. In the second case, it could be useful to recompile your code by using the flag –enable-int-linalg . In this way, Yambo is forced to compile and use internal linear algebra libraries.
  • My job crashed with a NETCDF error, what could be the reason?
    Again, such an error can be driven by different reasons, you can have a look to this thread for possible workarounds and to have useful information on the source of the NETCDF error
  • I often experience memory issue in calculating GW corrections
    First, be sure your input is set to calculate only the quasiparticle corrections for the band you are really interested in, usually, you do not need to calculate it for all the bands: this is governed by the %QPkrange variable. Next set properly the parallelization variable as documented here. Parallelizing over bands “b” allows distributing the memory load. Finally, if this does not solve your memory problem you can split the QP corrections in different runs, name the generated databases with different file names or save them in different directories and merge the obtained QP databases at the end using the ypp utility. You can have a look at this post for an how to.

EXTERNAL CODES

  • Can Yambo be interfaced with my favourite DFT code?
    If your favourite DFT code works with a planewave/pseudopotential basis and 3D periodicity, then yes. If you would like to help do this, get in touch.