The QUIP
package is a collection of software tools to carry out molecular dynamics simulations. It implements a variety of interatomic potentials and tight binding quantum mechanics, and is also able to call external packages, and serve as plugins to other software such as LAMMPS, CP2K and also the python framework ASE. Various hybrid combinations are also supported in the style of QM/MM, with a particular focus on materials systems such as metals and semiconductors.
For more details, see the online documentation.
Do not compile on login nodes as those nodes are old opteron 4386 machines. The Intel compilers default to -xhost so they will build in a -m=pentium4 code path as the default and only code path if an alternative is not specified e.g. -ax. Please make sure to compile on a dev node. If you compile packages in login node, your account will have the chance to be suspended.
$ module load ufrc
$ srundev --time=01:00:00
$ module load intel/2018.1.163 openmpi/3.0.0
To compile QUIP the minimum requirements are:
1) Clone the QUIP repository from GitHub. The --recursive
option brings in submodules automatically (If you don't do this, then you will need to run git submodule update --init
from the top-level QUIP directory after cloning) :
git clone --recursive https://github.com/libAtoms/QUIP.git
2) Enter in QUIP folder and specify QUIP folder path
export QUIP_ROOT=${PWD}
3) Decide your architecture by looking in the arch/
directory, and define an environmental variable QUIP_ARCH
.Please note: if you are building QUIP to link it to LAMMPS, the serial version of QUIP must be compiled.
export QUIP_ARCH=linux_x86_64_ifort_icc
4) GAP is needed, it can be downloaded from the `Software' section of libatoms.org, after accepting the terms and conditions of the Academic License Agreement. Extract the tarball under the /path/to/QUIP/src/ directory.
5) If you don't use something it is asking for, just leave it blank. NB make sure to answer `y' to `Do you want to compile with GAP prediction support ? [y/n]'. The answers will be stored in Makefile.inc in the build/${QUIP_ARCH} directory, and you can edit them later (e.g. to change optimisation or debug options). Note that the default state is usually with rather heavy debugging on, including bounds checking, which makes the code quite slow. The make command has to be executed from the top-level directory. Making `libquip' ensures all the necessary libraries will be built.
make config
6) Please note, in the questions please add flags -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
in the BLAS and LAPACK options or you can directly change Makefile.inc
and edit the row shown below:
MATH_LINKOPTS= -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
If you want to use GAP package make sure to answer `y`
to `Do you want to compile with GAP prediction support ? [y/n]'
7) Make this package
make libquip
8) Building LAMMPS
Edit Makefile.lammps in the lib/quip folder, if necessary. If you have cloned, configured, and built QUIP inside this folder, QUIP_ROOT and QUIP_ARCH should be autodetected, even without having to set the environment variables. Otherwise export the environment variables as shown above or edit Makefile.lammps LAMMPS ships with a user package containing the interface necessary to use QUIP potentials, but it needs to be added to the compilation first. To do that, enter the LAMMPS source directory and type:
make yes-user-quip
9) Making LAMMPS
make icc_openmpi
Examples:
There are three example sets in examples/USER/quip: