Choose an architecture file from ARCHITECTURES and compile, e.g.
make ARCH=LINUX_GNU_SEQ
The latest architecture is stored in the file '.LASTARCH' and is used until is
is set to something else. The 'make' process generates a
directory
./build/<arch><hostname></hostname></arch>
in which a custom makefile is constructed for compilation.
targets: |
-------------|---
[iffi] | MD executable
[xpl2lis] | build simulation system from .psf and .pdb files
[lis2xml] | convert ego input (lis) to iffi format
[nma] | support for normal mode analysis
[mgcHessian] | analysis of a Hessian
[samplingspeed] | a tool to measure the sampling in configuration space
all | all of the above executables
clean | clean up
The default target is the MD executable 'iffi'. The executable will be suffixed with a label defined in the ARCH file and with the name of the compile HOST and then be copied to ./bin.
Most probably you will have to adapt the ARCH file to your local needs. Iffi should compile with every C-compiler with full C99 support. We provide ARCH files for the GNU gcc and INTEL icc compilers. Modify the command line options as needed.
In addition, 'iffi' requires the blas/lapack libraries, either from the custom packages of your linux distribution or Intel's MKL or AMD's ACML libraries. Typically, the blas/lapack calls in 'iffi' are not time critical, so the standard libraries will suffice.
The last mandatory library needed is the libxml2 library (libxml2-dev), which is used to handle the input file.
Compiling problems and solutions
problem:
fatal error: schema.h: No such file or directory
solution:
sudo apt-get install g++
problem:
fatal error: bits/predefs.h: No such file or directory
solution:
sudo apt-get install libc6-dev-i386
problem:
fatal error: libxml/parser.h: No such file or directory
solution:
sudo apt-get install libxml2-dev
problem:
/usr/bin/ld: cannot find crt1.o: No such file or directory
solution:
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
The default and always tested parallelism supported by iffi is MPI. Use an MPI implementation such as OpenMPI or MPICH and the corresponding mpicc compiler. We do have additional support for OpenMP parallelism, however, it is currently in an experimental stage and should not be used without crosschecking. Whether OpenMP yields a speedup beyond the MPI parallization is heavily dependent on the actual hardware/software platform and the system under investigation. Normally, OpenMP is not needed.
Iffi supports the PLUMED 2.0 library (PLUMED stands for PluginMetadynamics). To generate a joint executable, provide the root directory of the plumed library and the plumed configuration file in the ARCH file, e.g.
PLUMED_DIR = $(HOME)/lib/plumed-2.0.2
PLUMED_CONF = linux.gcc
You need read/write permissions on the PLUMED_DIR. Currently iffi uses only the serial (non-MPI) version of the plumed library (configure option --enable-mpi=no).
Libraries needed: zlib1g-dev libmatheval1-dev (for MATHEVAL keyword)
A joint IPHIGENIE/CPMD executable for DFT/PMM calculations is obtained by compiling CPMD(http://cpmd.org) as a library and linking it to IPHIGENIE.
In addition to the IPHIGENIE source code, you will need the latest version of CPMD (currently 3.17.1).
make ARCH=CPMD_LINUX_GNU_MPI
Note: the IPHIGENIE makefile detects changes also in the CPMD source, so step 3 is not absolutely necessary. However, especially for the first time, it is useful to compile the CPMD library "by hand", as you can use the "-j N" command then.
For compilation on SuperMUC use the following modules:
module load mpi.intel/5.0 fortran/intel/14.0 ccomp/intel/14.0
Ussage of version 15.0 of the intel compilers is currently not recommended!
./configure.sh YOUR_CONFIGURATION -iphigenie -DEST=$BUILDFOLDER
make ARCH=CPMD4_LINUX_GNU_MPI
Note: the IPHIGENIE makefile detects changes also in the CPMD source, so step 3 is not absolutely necessary. However, especially for the first time, it is useful to compile the CPMD library "by hand", as you can use the "-j N" command then.
Currently, making IPHIGENIE/CPMD4.1 is only possible without the "-j N" option, usage of this option raises errors like "Fatal Error: Can't delete temporary module file 'iffi_types.mod0': No such file or directory".
For compilation on SuperMUC use the following modules:
module load mpi.intel/5.0 fortran/intel/14.0 ccomp/intel/14.0
Usage of version 15.0 of the intel compilers is currently not recommended!
Note 1: It has to be periodically checked, whether the interface compiles
in the current CPMD trunk version.
The last checked commit was 4017 (27 January 2016).
Note 2: The changes in the files cpmd.F90, interpt_utils.mod.F90, and egointer_utils.mod.F90
against the last checked version have to be monitored and changes need to be transferred to iffi_inter.F90
(last was 3897)
Wiki: Getting started
Wiki: Plumed interface
Wiki: iffi
Wiki: iphigenie
Wiki: lis2xml
Wiki: samplingspeed
Wiki: xpl2lis