Advanced 2-day ReaxFF workshop

These materials are based on a two-day hands-on workshop in London In September 2016. Input files, templates and example scripts are available in the whole NSCCS ReaxFF workshop package. Please see also the notes on scripting on Windows and MacOS at the bottom of this page.

Parameterizing your own ReaxFF force field with MCFF

The ReaxFF parameterization tutorial shows how to build a very simple force field for C/H/Br with a (too) simplistic training set. It begins with how to get a good starting guess, in this case finding a C/H/Cl force field with reasonable C-Cl bonding behavior. Then a training set is built from running ADF optmizations and linear transits, using both new and available ADF command line (python) scripting tools (the entire workshop package is available). After running a few MCFF runs to optimize the new force field, reactive MD can be run on radical polymerization. Finally some hints and examples on how to check overfitting are described. This is a very minimalistic starting point; see also the MCFF introduction and overview talk by Adri van Duin for more tips and tricks.

Building a ReaxFF training set from ADF data

Force bias Monte Carlo accelerated dynamics

The fbMC tutorial shows how to build a large graphene supercell and compares how defected graphene heals more quickly with the force bias Monte Carlo acceleration technique than with regular ReaxFF molecular dynamics.


Grand Canonical Monte Carlo

A more advanced, command-line based GCMC tutorial shows how a thermodynamic equilibrium under different pressure and temperature can be established with ReaxFF. The Monte Carlo moves are inserting, deleting and moving oxygen atoms from an O2 reservoir, followed by quick ReaxFF minimization. A python scripts analyzes the Pd/O ratio for a nanoparticle as a function of MC steps, establishing equilibrium within a few thousand moves. No GUI support is available yet, but with some extra effort the structures under different p, T conditions can be visualized in the GUI.

phases of Pd oxide nanoparticle

Notes on (python) scripting

The recommend environment for running these tutorial examples is Linux, but you can also script on MacOS, and -to a lesser extent- on Windows.
On any operating system make sure you set the proper ADF environment variables (source and use ADF’s startpython to avoid conflicts (see also the scripting manual):


With PLAMS you can automate workflows and manage jobs. In the scripting tutorial you’ll learn how you can use it to access properties on the binary files (‘KF files’) through the KFReader functionality.

Scripting on MacOS – running ADF in a terminal

If you want to run on MacOS from the command line, open a terminal, and go to where the ‘adfhome’ directory is inside the package, e.g. /Applications/

Edit so it points ADFHOME to this directory (e.g. ADFHOME=/Applications/ and SCMLICENSE points to your license file (e.g. SCMLICENSE=~/Library/Application\ Support/SCM/license.txt after you got an automatic license, but you can also copy the license file to ADFHOME).

Make sure you source this (e.g. in your .profile), and always use startpython for running python scripts.
Also make sure your run files and shell scripts are executable (chmod u+x).

Scripting on Windows – ADF in command-line mode

If you want to run these tutorials on Windows (as was done during the London workshop), make sure you always run in the command line mode:

  • double click adf_command_line.bat in your ADF installation directory (e.g. C:/ADF2017.106)
  • enter sh to go to a shell

Note that this shell is even more limited than the MacOS terminal.
Again: whenever you run python scripts, use startpython to use the ADF python stack.

Please let us know at if you have any questions or problems about running these tutorials, scripting with ADF, or anything else.