MP_tools is a free software package available for public use, redistribution and further modification subject to the terms of the GNU GPL v3 license.

1/ Hardware and software requirements

MP_tools are written in Fortran making extensive use of F95 features (pointers, dynamical array allocation, vector operations). As a result the treated data size only depends on the installed computer memory and on the operation system’s efficiency in managing it.
The code has been tested to work from command-line interface on the Ubuntu (linux) and Mac OS X Darwin (unix) systems. In principle, with adequate compiler and environment settings, the same should be true for Windows systems.

Hardware requirements:

  • a middle-class notebook with an INTEL I5_CORE2 processor (or equivalent) and 8Gb memory is sufficient for static models with < 106 atoms (cf. Examples and projects of analogous size), the time tags in the Examples logfiles correspond to such a configuration

  • internal memory of 16Gb is highly recommended to explore larger static supercells (107 atoms and more) and/or lattice dynamics with modest sequences of 102-103 frames; a workstation with 8-24 cores and 32-128Gb memory will bring comfort and boost overall efficiency to address more ambitious S(Q,ω) projects

Software requirements (all within the reach of standard link and execution pathes):

  • GNU GCC - compiler suite including GFORTRAN

  • FFTW - “Fastest Fourier Transform in the West” libraries

  • OpenMP - code paralellisation libraries

  • FINUFFT - Flatiron Institute non-uniform FFT library

  • PGPLOT - graphics libraries installed in their standard location /usr/local/pgplot; you may wish to implement the patched .PNG driver attached to the present distribution (useful for bitmap output); in recent Ubuntu, Debian (linux) distributions the pgplot5 libraries are already present or can be installed via sudo apt install pgplot5

  • Xquartz (X11 emulation) and Xcode Command Line Tools applications in case of the Mac OS X systems

2/ Download MP_tools

The most practical way to obtain the latest version of MP_tools is to download it from the Github MPtools repository. Alternatively, you may git clone it directly from the command line

git clone https://github.com/jkulda/MPtools

3/ Compile and install MP_tools

To install MP_tools in the unix and linux environments (you may need the sudo privileges):

  • copy the distribution archive into a suitable location (outside the /usr/local tree) and uncompress it
  • set the resulting <whatever_path>/MPtools/code location as your current directory

  • create a /usr/local/mp_tools directory (and get privileges to access it)
  • check that the /usr/local/bin directory exists, otherwise create it and include it into your execution path
  • execute the installation script by source compile_mp_154.txt; feel free to edit the script according to whether you prefer to overwrite the binaries of a possible previous version or not
  • in case of need (segmentation faults) add the -fbounds-check option to the compiler calls to help localise the fault origins; similarly, in case of stable operation feel free to attempt more aggressive code optimisation by replacing the -O option by -O3 and by adding -march=native (or any specific architecture indentifier, cf. the GCC documentation)

For the moment there is no makefile as the MP_tools are a suite of relatively short standalone code segments; in case of modifications they can be recompiled individually copying just a single line from the compiling script to the command line. The executables will be automatically placed into /usr/local/bin, which is normally part of the execution path.

Check the Getting started section on how to start using MP_tools.