# Introduction¶

The Installation Manual describes installation of the ADF program package on the platforms on which it is supported. For optimal performance, some system specific tuning may be needed. Therefore, it is strongly recommended to also read the additional information and known issues .

The ADF package consists of the following main classes of programs:

• Computational engines: ADF, BAND, COSMO-RS, DFTB, and ReaxFF. Each of the engines has its own (text-based) input and output and can be used as a standalone program from scripts and the command line. Within this manual we will use the word ADF for all computational engines.
• Utilities and property programs. These are used primarily for pre- and post-processing data of the computational engines.
• Graphical user interface, which is used to prepare input for computational engines and to visually present their results.

You will always install the complete ADF package at once and your license file will determine which of the functionality may be used.

The whole ADF package is written with the Unix-like environment in mind. Some knowledge of Unix may or may not be required depending on the operating system on which you are going to use ADF. It also depends on whether you are going to use ADF via the GUI only or also from the command line. For example, if you are going to use ADF from within the GUI on Windows or Mac OS X, then you do not need to know anything about Unix. If you are going to use ADF from the command line then you will need to know how to write shell scripts and have some knowledge of the environment variables. If you are the one who is going to install the package on a Unix-like system, such as Linux, then you need to know how to modify shell resource files such as .bashrc.

## Requirements¶

Hardware and software requirements for the ADF package depend on the platform. The list of supported platforms, including information on the operating system, parallel environment (MPI), and compilers used is available in the Download section of our web site.

### Hardware requirements¶

Memory

In a parallel calculation, the total amount of memory used by the job is a sum of that used by each process. Starting from ADF2010, some large chunks of data are placed in the shared memory so the sum rule does not strictly hold. In principle, it is more correct to count memory per process but since ADF is an MPI program it runs most efficiently when the number of processes corresponds to the number of physical processors cores. Therefore, all memory amounts below are per processor core.

The amount of RAM per core needed to run ADF depends greatly on the kind of calculation you perform. For small calculations, 256 MB will be sufficient, but if there is a lot of memory available ADF may run significantly faster. A large amount memory also reduces the load on the disks, which may speed up your calculation depending on the I/O sub-system and the operating system.

The memory requirement increases with the system size. For example, for a molecule containing 100 atoms with a DZ basis set it may be sufficient to have 256 MB but for a molecule with 1000 atoms up to 8 gigabytes may be required. Also, if you are going to perform TDDFT, relativistic spin-orbit or analytical frequency calculations then the amount of memory should be larger. As an indication, an analytical vibrational frequency calculation of a organometallic complex containing 105 atoms with a TZP basis set uses up to 1GB of RAM per process but it can be done with less, even though not as efficiently.

Disk

For installation of the package on Linux/Unix you need from about 3GB (without sources) to 6GB (with sources and compiled objects). The run-time (scratch) disk space requirements greatly depend on what type of calculation you perform. For the ADF program, it may range from a few megabytes for a small molecule up to a hundred gigabytes for a large molecule with a large basis set, the amount scaling quadratically with the system size. BAND calculations typically require a lot more disk space than ADF for a system of a similar size. You may need anywhere from a few to hundreds of gigabytes of free disk space at run time.

Network

First of all, on the most popular systems (Linux, Mac OS and Windows) a network card must be present in the computer as its hardware MAC address is used as the computer’s ID for the licensing.

In order to enable MPI on a standalone Windows computer, one may need to create a dummy network connection by adding a network “card” called Microsoft Loopback Adapter. This interface will be assigned an IP address from a private range.

Multi-host parallel performance.

As far as performance concerned, a switched Gigabit Ethernet network is typically sufficient for good parallel performance on up to four nodes if the nodes do not have too many CPU cores per node. If you are going to use more nodes, or nodes with high core count, you may need faster communication hardware, such as Infiniband, to get good performance. Please note that multi-host execution is not supported on Windows.

Graphics

Starting with ADF2017, the GUI requires OpenGL 3.2 to run. Windows users with older hardware can try the 32bit Windows versions of revision r60098 and up (ADF2017.107+), which contains an OpenGL1 compatible version of the GUI. For Linux users there is an OpenGL1 fallback mode availble, please read more about it in the Remote GUI documentation.

### Software requirements¶

Operating System

The package runs on Windows and on the following Unix variants: Linux (x86-64, PowerPC), Mac OS X.

On the Apple systems the 64-bit ADF version is supported on Mac OS X 10.9 and newer.

On linux the compute engines and python scripting environment require a GLIBC version of 2.4 or higher, the GUI needs GLIBC 2.7 or higher. ADF is compiled on CentOS 6, the code gets tested daily on CentOS 6 and Ubuntu 16.04.

The Windows version of ADF is supported on Windows 7, 8, 8.1 and 10.

Certain version of ADF will require different libraries to be installed on the system depending on the MPI library used.

Graphics

In order to run the the graphical user interface (GUI) the computer needs to have an OpenGL-capable graphics subsystem (hardware, drivers and libraries). Besides that, on Linux the following (or equivalent) packages must be installed:

fontconfig-2.4.1
freetype-2.2.1
libdrm-2.0.2
libICE-1.0.1
libSM-1.0.1
libstdc++-4.1.2
libX11-1.0.3
libXau-1.0.1
libXdmcp-1.0.1
libXext-1.0.1
libXft-2.1.10
libXrender-0.9.1
libXScrnSaver-1.1.0 (Ubuntu users may need to install libXss1)
libXt-1.0.2
libXxf86vm-1.0.1
mesa-libGL-6.5.1
mesa-libGLU-6.5.1


The GUI will not able to start without shared libraries provided by these packages.

NOTE: If you receive an error about libXss (libXss.so.1: cannot open shared object file: No such file or directory), you need to install libXScrnSaver (redhat/centos: yum install libXScrnSaver) or libxss1 (ubuntu/debian: sudo apt install libxss1).

Compiler

If you have a license for the source code, you can compile the source yourself, with or without your own modifications.

The source consists mainly of Fortran95 code, with some small parts written in C. Some of the Fortran2003 features are also used so a compiler supporting it is required. You must use object-compatible Fortran and C compilers to those we are using on the same platform, since some parts of the code are available only as object modules. For all x86 platforms it is currently Intel Fortran 15 or gFortran 4.8 or newer, for PowerPC it is IBM XL Fortran 15.1. It is very unlikely that other compilers, or even a different major version of the same compiler, will work with these object modules. We cannot support compilers different from what we are using ourselves.

To check which compiler to use, check the detailed machine information on the Download section of our web site.