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_CORE2processor (or equivalent) and 8Gb memory is sufficient for static models with < 106 atoms (cf.Examplesand projects of analogous size), the time tags in theExampleslogfiles 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.PNGdriver attached to the present distribution (useful for bitmap output); in recentUbuntu, Debian(linux) distributions thepgplot5libraries are already present or can be installed viasudo apt install pgplot5 -
Xquartz(X11 emulation) andXcode Command Line Toolsapplications in case of the MacOS Xsystems
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/localtree) and uncompress it -
set the resulting
<whatever_path>/MPtools/codelocation as your current directory - create a
/usr/local/mp_toolsdirectory (and get privileges to access it) - check that the
/usr/local/bindirectory 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-checkoption 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-Ooption by-O3and 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.