Install Yambo on Ubuntu/LinuxMint
Here we can find the instruction to install Yambo 5.3 on a standard machine with a Ubuntu/LinuxMint distribution.
We suppose you have root permission on your machine to install all the required packages.
Run apt-get to update the package list
apt-get -yqq update
Install compilers, python, mkl, and all necessary libraries to compile Yambo:
sudo apt-get install build-essential make gcc g++ gfortran openmpi-bin openmpi-common libopenmpi-dev intel-mkl libxc9 libxc-dev intel-mkl libscalapack-openmpi2.1 libscalapack-openmpi-dev libhdf5-dev libhdf5-openmpi-dev slepc-dev petsc-dev
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/" export MKLROOT="/usr/"
download lastest Yambo release, in this case the 5.3:
wget https://github.com/yambo-code/yambo/archive/5.3.tar.gz -O yambo-5.3.tar.gz
decompress the file
tar zxfv yambo-5.3.tar.gz && cd yambo-5.3
configure Yambo
./configure --enable-open-mp --enable-par-linalg --enable-memory-profile --with-libxc-includedir=/usr/ --with-scalapack-libs="-lmkl_scalapack_lp64" --with-blacs-libs="-lmkl_blacs_openmpi_lp64" --enable-slepc-linalg --with-slepc-libs="-lslepc" --with-slepc-includedir=/usr/include/ --with-petsc-libs="-lpetsc" --with-petsc-includedir=/usr/include/
compile the code (where -j4 means that the code is compiled in parallel on 4 cores):
make -j4 core
The compilation was successful if there are the yambo executables in the bin/
directory.
From now the instructions are optional but suggested! You may need sudo privileges to install Yambo in a system directory, otherwise install it in your home space.
Create a folder to install code and libraries:
mkdir -p /usr/local/yambo-5.3/lib
copy code and libraries in Yambo folder:
cp -r bin /usr/local/yambo-5.3/ cp -r lib/external/*/*/lib/*.* /usr/local/yambo-5.3/lib/ cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo-5.3/lib/ cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.3/include/ cp -r lib/external/*/*/v4/serial/include/*.* /usr/local/yambo-5.3/include/
you can remove the tar.gz file and the Yambo folder (optional):
cp .. rm -rf yambo-5.3 yambo-5.3.tar.gz
set the path to the Yambo bin folder, for tcsh/csh:
setenv PATH=/usr/local/yambo-5.3/bin:$PATH setenv LD_LIBRARY_PATH=/usr/local/yambo-5.3/lib:$LD_LIBRARY_PATH
or in bash:
export PATH=/usr/local/yambo-5.3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/yambo-5.3/lib:$LD_LIBRARY_PATH
you are ready to use Yambo!!!!
Optional for developers
you can copy also the include files:
mkdir -p /usr/local/yambo-5.3/include cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.3/include/ cp -r lib/external/*/*/v4/serial/include/*.* /usr/local/yambo-5.3/include/
and can add to the configure the following lines:
export YAMBO_LIBS=/usr/local/yambo-5.3
and use the following options in the configure:
--with-iotk-path="${YAMBO_LIBS}" --with-libxc-path="${YAMBO_LIBS}" --with-hdf5-path="${YAMBO_LIBS}" --with-netcdf-path="${YAMBO_LIBS}" --with-netcdff-path="${YAMBO_LIBS}" \ --with-petsc-path="${YAMBO_LIBS}" --with-slepc-path="${YAMBO_LIBS}"
so the next time you recompile yambo from scrach it will not recompile the libraries.