Lammps est disponible en version 20120615 dans la distribution Wheezy.
Lammps est également disponible dans sa version 20130503 dans la Sid au 22 mai 2013 : un rétroportage simple suffit à sa compilation.
apt-get install -y gfortran g++ libquadmath0 libblas3 liblapack3 libgfortran3 liblapack-dev openmpi-bin libopenmpi-dev
root
Alors, à l'origine, c'était plus simple de récupérer l'archive et de compiler LAMMPS à partir des sources récupérées dans ce bloc… Mais la version du 30 septembre archivée ne COMPILE PAS DU TOUT !
Par la récupération de l'archive directement, plutôt déconseillé :
cd /root wget -m -nd http://lammps.sandia.gov/tars/lammps.tar.gz
cd /opt tar xzf /root/lammps.tar.gz
chown -R root.root $(tar tzf /root/lammps.tar.gz | tail -1 | awk -F'/' '{ print $1 }')
[ -h lammps ] && rm lammps ln -sf $(tar tzf /root/lammps.tar.gz | tail -1 | awk -F'/' '{ print $1 }') lammps
Par la récupération de l'arbre SVN, plutôt conseillé maintenant :
cd /opt svn co svn://svn.icms.temple.edu/lammps-ro/trunk lammps-$(date "+%Y%m%d")
[ -h lammps ] && rm lammps ln -sf lammps-$(date "+%Y%m%d") lammps
La suite, c'est commun :
cd lammps
export LAMMPSROOT=$(pwd)
cd $LAMMPSROOT/src/STUBS make clean make
cd $LAMMPSROOT/lib/meam make -f Makefile.gfortran clean make -f Makefile.gfortran mv Makefile.lammps Makefile.lammps.intel ln -s Makefile.lammps.gfortran Makefile.lammps
cd $LAMMPSROOT/lib/colvars make -f Makefile.g++ clean make -f Makefile.g++
cd $LAMMPSROOT/lib/poems make -f Makefile.g++ clean make -f Makefile.g++
cd $LAMMPSROOT/lib/reax make -f Makefile.gfortran clean make -f Makefile.gfortran mv Makefile.lammps Makefile.lammps.intel ln -s Makefile.lammps.gfortran Makefile.lammps
cd $LAMMPSROOT/lib/awpmd sed -i "s/mpic++/mpic++.openmpi/g" Makefile.openmpi make -f Makefile.openmpi clean make -f Makefile.openmpi
Compiler les éléments indispensables pour exécuter les exemples :
cd $LAMMPSROOT/src # activation de tous les modules make yes-all # suspension d'un module très specifique make no-user-cuda # suspension des modules qui font peter la compilation :-\ make no-voronoi make no-user-reaxc make no-kim make no-user-omp make no-gpu
cd $LAMMPSROOT/lib/atc sed -e 's/\-O\ \-g/\-O\ \-g \-fpermissive/' -i~ Makefile.serial make -f Makefile.serial clean make -f Makefile.serial
cd $LAMMPSROOT/src make yes-asphere make yes-kspace # lancer la compilation make serial
Si la compilation est réussie, un exécutable lmp_cuda
, se trouve à la racine du dossier.
sudo apt-get install -y fftw3 fftw-dev
cd $LAMMPSROOT/lib/atc sed -e 's/\-O\ \-g/\-O\ \-g \-fpermissive/' -i~ Makefile.serial make -f Makefile.serial clean make -f Makefile.serial
cd $LAMMPSROOT/src/MAKE cp Makefile.serial Makefile.cuda_fftw sed -i "s/FFT_INC\ =/FFT_INC\ =\ -DFFT_FFTW3/g" Makefile.fftw sed -i "s/FFT_LIB\ =/FFT_LIB\ =\ -lfftw3/g" Makefile.fftw cd $LAMMPSROOT/src make yes-asphere make yes-kspace
# lancer la compilation make fftw
Si la compilation est réussie, un exécutable lmp_fftw
, se trouve à la racine du dossier.
sudo apt-get install -y libopenmpi-dev openmpi-bin libopenmpi1.3 openmpi-common sudo apt-get install -y libfftw3-3 fftw-dev
# Preparation de la librairie ATC couplée avec MPI cd $LAMMPSROOT/lib/atc cp Makefile.serial Makefile.mpic++ sed -i "s/g++/mpic++.openmpi/g" Makefile.mpic++ sed -i "s/\-fpermissive/-fpermissive\ \-DMPICH_IGNORE_CXX_SEEK/g" Makefile.mpic++ make -f Makefile.mpic++ clean make -f Makefile.mpic++
cd $LAMMPSROOT/src/MAKE sed -i "s/mpic++/mpic++.openmpi/g" Makefile.openmpi sed -i "s/FFT_INC\ =/FFT_INC\ =\ -DFFT_FFTW3/g" Makefile.openmpi sed -i "s/FFT_LIB\ =/FFT_LIB\ =\ -lfftw3/g" Makefile.openmpi cd $LAMMPSROOT/src make yes-asphere make yes-kspace
cd $LAMMPSROOT/src make -j 4 openmpi
Si la compilation est réussie, un exécutable lmp_openmpi
, se trouve à la racine du dossier.
La page Tools4Test et plus précisemment celle liée à Lammps détaille comment installer Lammps dans son environnement personnel (au CBP) et lancer quelques exemples.