Install Yambo on Ubuntu/LinuxMint: Difference between revisions

From The Yambo Project
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
Install compilers, python, mkl, and all necessary libraries to compile Yambo:
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'''
  '''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 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/"'''
Line 40: Line 40:
copy code and libraries in Yambo folder:
copy code and libraries in Yambo folder:


  cp -r bin /usr/local/yambo-5.3/  
  cp -r bin /home/username/local/yambo-5.3/  
  cp -r lib/external/*/*/lib/*.* /usr/local/yambo-5.3/lib/  
  cp -r lib/external/*/*/lib/*.* /home/username/local/yambo-5.3/lib/  
  cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo-5.3/lib/  
  cp -r lib/external/*/*/v4/serial/lib/*.* /home/username/local/yambo-5.3/lib/  
  cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.3/include/  
  cp -r lib/external/*/*/include/*.* /home/username/local/yambo-5.3/include/  
  cp -r lib/external/*/*/v4/serial/include/*.* /usr/local/yambo-5.3/include/  
  cp -r lib/external/*/*/v4/serial/include/*.* /home/username/local/yambo-5.3/include/  


you can remove the tar.gz file and the Yambo folder (optional):
you can remove the tar.gz file and the Yambo folder (optional):
Line 53: Line 53:
set the path to the Yambo bin folder, for tcsh/csh:
set the path to the Yambo bin folder, for tcsh/csh:


  setenv PATH=/usr/local/yambo-5.3/bin:$PATH  
  setenv PATH=/home/username/local/yambo-5.3/bin:$PATH  
  setenv LD_LIBRARY_PATH=/usr/local/yambo-5.3/lib:$LD_LIBRARY_PATH
  setenv LD_LIBRARY_PATH=/home/username/local/yambo-5.3/lib:$LD_LIBRARY_PATH


or in bash:
or in bash:

Revision as of 21:43, 13 February 2025

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 /home/username/local/yambo-5.3/ 
cp -r lib/external/*/*/lib/*.* /home/username/local/yambo-5.3/lib/ 
cp -r lib/external/*/*/v4/serial/lib/*.* /home/username/local/yambo-5.3/lib/ 
cp -r lib/external/*/*/include/*.* /home/username/local/yambo-5.3/include/ 
cp -r lib/external/*/*/v4/serial/include/*.* /home/username/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=/home/username/local/yambo-5.3/bin:$PATH 
setenv LD_LIBRARY_PATH=/home/username/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.