Main menu

Get the source Installation Compilation
Yambo-pyRun the codeInput fileTutorialsDocumentationPublicationsEventsContactsTest-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

Installing yambo

Here you will find some general information about how to install yambo and make use of important external libraries. To get yambo working, the following basic steps are necessary:

  1. If you have not already done so, download the yambo source.
  2. Unpack it, e.g.:
    % tar -xvzf yambo-latest.tar.gz
    % cd yambo-X.X.X
  3. Run the configure script
    % ./configure
  4. Compile the code and the interfaces
    % make yambo interfaces
  5. Check it works!
    % ./bin/yambo
     Cannot access CORE database (SAVE/*db1 and/or SAVE/*wf)

and that should do it. The executables are stored in yambo-X.X.X/bin, and can be copied from there or linked to.

If you are lucky, the configure script will successfully find the best compiler options. However, some fine-tuning might be necessary on specific platforms. See

./configure --help
for a large set of options. A list of suggested machine specific options can be found at the Compiling yambo page.

Finally, if you want to slightly modify (or check) the options that will be used by the Makefile generated by the configure script, you can simply edit the yambo-X.X.X/config/setup file (after configuration, of course!)

Linking to external libraries

NetCDF support

One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using

./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY> 

NetCDF as underlying storage layer of HDF5

It is possible to configure NetCDF 4.x.x as underlying storage layer of the HDF5 library. Compile Yambo with NetCDF as described in the previous section and add the flag --enable-netcdf-hdf5. Notice that when NetCDF library is compiled with the HDF5 support it requires additional libraries in the linking process, see here for more details. Yambo automatically detects these libraries but if it doesn't work you can use the flag --with-netcdf-link=... to pass you own libraries list.

FFTW support

The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with

./configure --with-fftw=<FFTW LIB DIRECTORY>
If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with:
./configure --with-fftw=/cineca/prod/lib
Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used.

IOTK support

To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.:

./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0
On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available.

ETSF-IO support

To import output from Abinit, you can compile abinit with the option --with-trio-flavor="none" and then compile the yambo interfaces with no additional options.

However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that:

mkdir compile_tmp
cd compile_tmp
../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/"
  --with-netcdf-libs="-L/usr/lib/ -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lz"
  MPI_RUNNER="mpirun"  CC="mpicc" FC="mpif90" --prefix="$ABINIT_INSTALL_PATH" --exec-prefix="$ABINIT_INSTALL_PATH"
and then compile yambo with the ETSF-IO support
./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib"