1.1 First step: Installation
FHI-aims comes as a gzipped tar archive that can be extracted in any directory of your choice, e.g., by typing
gzip -d fhi-aims.tar.gz tar -xvf fhi-aims.tar
at the command line of any current Unix-like system.
Note: You cannot simply type ’make’. To find out what to do for a successful build, please look at sections 1.3-1.4, which will tell you what to do. There are a few performance related decisions that we cannot make for you on an unknown computer system, and the description below will hopefully help you make those decisions.
Before you ask: FHI-aims is designed to run on any current Unix-based or Unix-like system, such as Linux or Mac OS X. However, we do not support FHI-aims on Windows at this point. It is certainly possible to make it run on a Windows platform using the appropriate tools, but not simply out-of-the-box.
The full package then extracts itself into a directory ./fhi-aims, with the following subdirectories:
-
•
bin/ : Location for any FHI-aims binaries built using the standard Makefile
-
•
doc/ : Contains possible further documentation.
-
•
species_defaults/ : Grids, basis sets and other defaults for chemical elements 1-102. These can be copy-pasted as “species” into the FHI-aims input file control.in. FHI-aims provides three levels of standard species defaults: “light”, “tight”, and “really_tight” (see Sec. 2.2). In addition, some further preconstructed special-purpose species defaults are provided in a “non-standard” subdirectory.
-
•
src/ : This directory, and its subdirectories, contain all of FHI-aims source code files.
-
•
testcases/ : Simple examples to test and illustrate the basic functioning of the code. The input files provided here may also be used as templates for any new electronic structure calculations, rather than assembling them from scratch.
-
•
utilities/ : Some simple scripts to extract basic information from the standard output of FHI-aims: Visualization of geometries using the .xyz format, extracting a series of geometries during relaxation as a movie, or extracting the development of energies and forces during relaxation. There is also some more sophisticated infrastructure here: Script-based ab initio replica exchange molecular dynamics (Luca Ghiringhelli) and a basin-hopping framework to predict the structure of small clusters from scratch (Ralf Gehrke).
-
•
regression_tests/ : This directory contains a set of small standard test cases that can be run automatically using a script, regressiontools.py – when run without any flags, it will provide its own self-documentation. Unfortunately, running this script on a given platform and queueing system is not always trivial. If you can figure this out, we do recommend running and checking the regression tests on any new machine on which FHI-aims was installed. We have encountered rare but non-zero instances of compiler options (outside the control of FHI-aims) that produce correct numbers almost always – except for specific methods where the compiler has a bug. The regression tests will catch such issues before they strike in a production run. They will allow to check the compiled FHI-aims binary a little more extensively, but they are not strictly necessary to run FHI-aims. In particular, please do not view the input files of the regression tests as FHI-aims best practices. Follow the manual, not simply the regression tests. In many cases, they are not. Rather, what is tested may be a corner case that can be handled differently (better) in normal practical scenarios.
-
•
benchmarks/ : This directory contains specific example runs of calculations, including output files and specific timings, illustrating how FHI-aims should perform and scale on a current high-performance computer. They also include some essential practices to get high performance and memory efficiency in FHI-aims for large runs on very large computers. We highly recommend trying to run these benchmarks after successfully building FHI-aims on a parallel machine with sufficiently many CPUs. These benchmarks will give you an indication of whether you are achieving the expected performance of the code. This depends not only on building FHI-aims correctly, but also on the correct setup of the computing environment itself (not trivial). Running actual benchmarks is the best way to find out.
A README file in that directory contains some of the quickstart information given here in condensed format.
1.1.1 Obtaining the mainline (development) version of FHI-aims
In addition to the prepackaged releases, we recommend all users utilize the mainline (development) version of FHI-aims if possible, which can be accessed after registering for the FHI-aims GitLab server (for more details, please refer to Section 1.7). The simplest method to download this version is to clone the GitLab repository via SSH using the command line. Detailed instructions on installing and using Git are available in its online documentation: https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#clone-a-repository.
After setting up Git on your machine, navigate to your desired folder and input the following in your command line:
git clone git@aims-git.rz-berlin.mpg.de:aims/FHIaims.git .
This will download the development version into the folder FHIaims. The structure of the directory is identical to that of the pre-packaged version discussed in the previous section (see Section 1.1).