Main menu

HomeNewsPeopleDownloadYambo-pyRun the codeInput fileTutorialsDocumentation
Main Features Lecture Notes FAQ
PublicationsEventsContactsTest-Suite Forum

The Wikipedia Page of Yambo Yambo@Wiki

Fortran cafe The Fortran Cafe'

Bethe-Salpeter wine The Bethe-Salpeter-Equation (BSE) wine

A street entitled to Yambo in Rome
A bar entitled to Yambo in Rome
A bar entitled to Yambo in Rome Yambo road, bar & restaurant


The initialization (setup) runlevel, is called at the start of every yambo run, or with the explicit command yambo -i (recommended). At the first call, yambo will generate some extra database files which will be used by later yambo runs. Only some basic input variables can be adjusted. The basic procedure followed by the code is as follows:

  1. Input file (yambo.in) parsing
  2. Reading of s.db1 database, I/O setup
  3. Setup of real/reciprocal lattices and symmetries
  4. Setup of reciprocal lattice grids and shells (db.gops database)
  5. Calculation of occupations, Fermi level, etc.
  6. Setup of q- and k-point grids (db.kindx database)


During the initialization runlevel, yambo constructs the maps which correspond to the symmetry operations acting on the G space and on the k space.

Reciprocal lattice grids

It may be useful to specify, within yambo.in, a different number of maximum G vectors to be used from that read from the file s.db1. This maximum number of G-vectors is set by the MaxGvecs variable. Typically it is useful to reduce this from the default value for very large systems, where the reordering of all the G vectors can take quite a long time. However, this number will not generally correspond to a closed shell of G vectors (a shell is the set of all G vectors that are connected by symmetry operations of the point group which have the same modulus). Hence during initialization the code will modify the MaxGvecs slightly in order to "close the shell" by setting it to the nearest G space shell. This list of G vectors, shells and symmetry information is then written to the db.gops file.

Q/K-point grids

Generation of the q- and k-point grids are discussed in more detail in doc_kpt. Here we just note that the variable KptsAcc is a real parameter that is used to distinguish between 2 different vectors (i.e., typically k/q-points, during expansion into the full BZ), and depends on the precision of the architecture. Usually it should be left at the default value.