The ADF modelling suite includes several scripting environments, each with a specific scope and purpose.
Most elemental are adfprepare, adfreport, and similar tools meant to be called from a console shell such as bash. Through various command line options these tools allow for the automatized preparation of series of input files.
More advanced scripting environments are based on the Python programming language. As a consistently object oriented language Python can be employed for flexible and rapid scripting solutions for the quantum chemical problem at hand.
To this end, the quantum chemistry programs ADF, BAND, DFTB, and ReaxFF were interfaced to the popular, external Python scripting library Atomic Simulation Environment (ASE). ASE can be used for the automatized manipulation of chemical systems and quantum chemical calculation prescriptions to compute a large variety of different chemical and physical properties.
FlexMD is a python library that is specifically intended for scripting solutions in the field of molecular dynamics simulations. Indeed, FlexMD features implementations of a variety of approaches to multi-scale simulations and especially adaptive QM/MM methods, which are interfaced to the aforementioned ASE library.
The Python Library for Automating Molecular Simulations (PLAMS) represents another flexible and extendable Python interface to several quantum chemical programs. In contrast to the other scripting environments mentioned above, PLAMS focusses on easing the input preparation, job execution, file management, and output processing. It thereby allows one to automatize even very advanced data workflows.
Also the PyADF library pursues the concept of automatizing the workflows required for multiscale simulations. PyADF is currently not part of the ADF modelling suite but can be readily retrieved from an external source.