Trunk Changelog

New features and major improvements to the last ADF Modeling Suite release, listing last changes first. The revision number corresponds to that of the development snapshots.

ADF development version subreleases

r66822: Fast Inertial Relaxation Engine (FIRE) based optimizer added to AMS

And optimizer based on the FIRE algorithm (see Phys. Rev. Lett. 97, 170201 (2006)) has beed added to AMS. It can be activated by setting 'Task FastInertialRelaxation' in the input. It is best used for optimization of very big systems with computationally cheap engines. Fixed atom and coordinate constraints are supported.

r66090: Band: new output format for atomic charges

The atomic charges that are computed by default by Band are now printed all together in a table. The old output for the Hirshfeld and Voronoi charges can still be printed by including 'Print AtomicChargesDetails' in input.

r66061: Elastic tensor for AMS

The elastic tensor (and related elastic properties) can be computed in AMS via second order numerical differentiation of the energy WRT strain deformations.

r65613: pdb2adf: default changes to NEWQMMM input generation

The default generation of the input for QM/MM calculations with pdb2adf changes from old to NEWQMMM input style. One can get the old style QM/MM input if one specifies the environment variable SCM_PDB2ADF=OLD.

r65411: COSMO-RS: inclusion of the UNIFAC method as an alternative to COSMO-RS

We incorporated UNIFAC (Fredenslund, Aage, Russell L. Jones, and John M. Prausnitz. "Group contribution estimation of activity coefficients in nonideal liquid mixtures." AIChE Journal 21.6 (1975): 1086-1099.) thermodynamic models as an alternative to COSMO-based ones. UNIFAC provides more accuracy in certain domains of the chemical mixture space and is an important add-on to our current thermodynamics modeling suite. One major advantage of UNIFAC is that it requires no ADF calculations to be done in order to provide an estimate of mixture thermodynamics properties.

r65223: COSMO-RS: implementation of a fast sigma-profile estimation scheme

Our COSMO-RS module can now provide estimates for sigma-profiles of chemical structures using only SMILES strings or .xyz files as input. The technique relies to a large degree on Group Contribution (GC) methods and can provide estimates of COSMO-RS sigma profiles in milliseconds. This allows for a drastically expedited search through candidate molecular structures as compared to the full-fledged COSMO-RS strategy, which takes on average a few hours per molecule.

r65197: Reaxff: analysis of surface reactions.

The only input required is a SUPPORT keyword in the geo file (BGF format):

SUPPORT startAtom endAtom

here, startAtom and endAtom are the first and last atom indices of the support (surface+bulk) part of the model system. Multiple SUPPORT keys are allowed in the input file. If this key is present the molfra.out file will contain something like this (taking the Al-water test as an example and treating the Al slab as support):

Iteration    Freq.   Molecular formula                 Molecular mass
       0      120 x  Al                                      26.9820
       0       61 x  H2O                                     18.0150
       0       14 x  H2O(ads)                                18.0150

The "H2O(ads)" must be understood as a water molecule adsorbed on a surface via its oxygen atom.

During dynamics one may also see molecules such as HH(ads)O(ads), where both H and O atoms interact with the support. In other words, the "(ads)" suffix applies to the atom preceeding it and, through this atom, to the whole molecule.

r64730: ADF: Changed syntax of input options 'Occupations' and 'Restart'.

The Occupation Key/Block has been split into an Occupation key, in which one can specify the occupations options, and a IrrepOccupation block, in which one can specify the occupations per irrep

# Example of old input format:
Occupations KeepOrbitals=20
  sigma  1 1 1 4 // 1 0 1 4 
  pi     4       // 4

# Example of new input format:
Occupations KeepOrbitals=20
  sigma  1 1 1 4 // 1 0 1 4 
  pi     4       // 4

The Restart Block has a new key called 'File', where the file name should be specified.

Example of old input:

# Example of old input format:
Restart Bla.t21
# Example of new input format:
  File Bla.t21

r64281: Reaxff: extended CVHD to enable definition of a bond-breaking CV from different bond types.

The updated CVHD doc entry follows.

In this version only the bond-breaking CV is implemented as described in Kristof M. Bal and Erik C. Neyts, "Merging Metadynamics into Hyperdynamics: Accelerated Molecular Simulations Reaching Time Scales from Microseconds to Seconds", J. Chem. Theory Comput. 2015, 11, 4545-4554. For CVHD a file in the current directory is required and sufficient. The format of this file is as follows:

 # Comments may be present, starting with a hash sign.
 # CVHD bias potential parameters
 startIter   freqIter    waitIter   gaussHeight    gaussHalfWidth  [wellTemperedT]
 # Bond collective variable components (one per line, up to 10)
 type   AtomName1   AtomName2   rmin  rmax  BOcutoff  pExponent
 [type   AtomName1   AtomName2   rmin  rmax  BOcutoff]

The bias potential parameters are: startIter - the first iteration at which the bias potential is deposited, freqIter - bias potential deposition rate in steps, waitIter - number of steps to wait before removing the bias after CV becomes equal to 1, gaussHeight - height of a single gaussian deposited at a time in kcal/mol, gaussHalfWidth - gaussian delta of the deposited bias, wellTemperedT - the bias temperature as defined in [PhysRevLett 100, 020603 (2008)] (optional, the full bias is applied if wellTemperedT is absent).

The bond-breaking CV parameters: type = bond, AtomName1 and AtomName2 - atom names specified in the second atom name entry (the one after the coordinates) in the BGF-type geo file, which may be different from the element name specified before the coordinates; rmin and rmax - rmin and rmax from Eq 5 in the paper above, BOcutoff - bond order cutoff, bonds with BO below this value are not considered even of the bond distance is within the (rmin,rmax) interval; pExponent - corresponds to p in Eq 3 in the paper. The same pExponent value is used for all bond types but the rmin, rmax, and BOcutoff may, and should, be different.

Note that the choice of the BOcutoff and waitIter values is very important. If BOcutoff and/or waitIter is too large then the bond-breaking event may occur too fast to be noticed by the CVHD driver and the bias will not be removed in time. This will very likely lead to other events of the same kind happening very fast after the first one. Thus it is important to keep an eye on the fort.84 file to make sure that the CV count is reset to 0 when an event of interest happens.

An example file that one could use to reproduce the NVT pyrolysis modelling results from [DOI: 10.1039/c6sc00498a] is given below:

# CVHD bias potential parameters
# startIter   freqIter    waitIter   gaussHeight    gaussHalfWidth      damping
    10000       2000       10000        0.250           0.025
# Bond-breaking collective variable
# type  AtomName1   AtomName2     rmin  rmax   BOcutoff  pExponent
   bond     C           H         1.05   1.65    0.5         6
   bond     C           C         1.55   2.2     0.5

r64054: Input parsing: units in text input file.

It is now possible to specify units in the input file. This is only possible for keywords for which the '_unit' meta-data is defined.

r64041: Band: Implemented energy ranges when saving the Band Structure to file.

Only the bands that fall into the energy range [e_fermi - EnergyBelowFermi, e_fermi + EnergyAboveFermi] will be saved to the band results file. This makes the KF files of large systems much smaller.

r63960: Reaxff: another change in e-Reaxff input handling.

With this change it is no longer necessary to specify any charges in the geo file for e-Reaxff calculation. If there are no MOLCHARGE keys present in the geo file then reaxff will scan the file for pseudo-atoms and move them to the end of the atom list. (Note: the movement is done by swapping so to avoid surprises one should put all pseudo-atoms at the end of the geo file.) After that, charges will be added appropriately. Let's suppose, for example, that atoms in the geo file are specified in the following order: El, Lv, 5 times C, 5 times H, N, O (thus 12 normal and 2 pseudo-atoms). After reordering, the atoms will be in the following order: O, N, 5 times C, 5 times H, Lv, El (thus, the first atom El will be swapped with the last O and the 2nd Lv will be swapped with the 2nd to last N). The molecular charges will then be added as if the following was specified in the geo file:

MOLCHARGE 13 13 1.0
MOLCHARGE 14 14 -1.0

The value of the system charge (from syscha in the control file) is used for the XXX above. Note that if there is at least one MOLCHARGE entry present in the geo file then the whole thing is skipped and no reordering will be done and no extra molecular charges will be added.

r63948: Reaxff: Implemented CVHD: collective variable-driven hyperdynamics.

In this version only the bond-breaking CV is implemented as described in Kristof M. Bal and Erik C. Neyts, "Merging Metadynamics into Hyperdynamics: Accelerated Molecular Simulations Reaching Time Scales from Microseconds to Seconds", J. Chem. Theory Comput. 2015, 11, 4545-4554. For CVHD a file in the current directory is required and sufficient. The format of this file is as follows:

 # Comments may be present, starting with a hash sign.
 # CVHD bias potential parameters
 startIter   freqIter    waitIter   gaussHeight    gaussHalfWidth
 # Bond collective variable
 type   AtomName1   AtomName2   rmin  rmax  BOcutoff  pExponent

The bias potential parameters are: startIter - the first iteration at which the bias potential is deposited, freqIter - bias potential deposition rate in steps, waitIter - number of steps to wait before removing the bias after CV becomes equal to 1, gaussHeight - height of a single gaussian deposited at a time in kcal/mol, gaussHalfWidth - gaussian delta of the deposited bias.

The bond-breaking CV parameters: type = bond, AtomName1 and AtomName2 - atom names specified in the second atom name entry (the one after the coordinates) in the BGF-type geo file, which may be different from the element name specified before the coordinates; rmin and rmax - rmin and rmax from Eq 5 in the paper above, BOcutoff - bond order cutoff, bonds with BO below this value are not considered even of the bond distance is within the (rmin,rmax) interval; pExponent - corresponds to p in Eq 3 in the paper.

Note that the choice of the BOcutoff and waitIter values is very important. If BOcutoff and/or waitIter is too large then the bond-breaking event may occur too fast to be noticed by the CVHD driver and the bias will not be removed in time. This will very likely lead to other events of the same kind happening very fast after the first one. Thus it is important to keep an eye on the fort.84 file to make sure that the CV count is reset to 0 when an event of interest happens.

r63684: Reaxff: changed e-Reaxff input handling for charges of pseudo-atoms.

During e-Reaxff calculation the pseudo-atoms, for example, corresponding to the explicit electrons, are supposed to carry a constant charge. Originally, such a pseudo-atoms was supposed to be listed in a MOLCHARGE key in the geo file. Since e-Reaxff requires exactly one MOLCHARGE key per pseudo-atom this can become cumbersome. With this change, the El, Lv, Eh, and Ho pseudo-atoms must not be included in any MOLCHARGE range and they will each be assigned a separate "molecule". Please note that at least one MOLCHARGE entry is still necessary to set the total charge for the rest of the system.

r63459: AMS development branch into the trunk (Band, DFTB and UFF).

BAND, DFTB and UFF are now libraries, that are only accessible through the new AMS binary. The old exectuables for these programs do not exist anymore. The input of said programs have changed as well.

62839: Reaxff: The per-atom stress tensor has been implemented.

The per-atom stress tensor is calculated according to [Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009)] when the lstres control parameter is set to a non-zero value. The calculated stress tensor is stored in the rxkf file in the "History%Atomic stress xxxx" variable, where xxxx corresponds to a step number, in units of MPa or MPa˙A3, depending on the lstres value. When lstres=1 the stress times volume value per atom Sαβ is calculated as a sum of the per-atom virial and the kinetic energy term: Sαβ=mvαvβ + Fαrβ. When lstres=2, the result is equal to Sαβ/V, where V is atomic volume calculated using the Voronoi partitioning scheme. The temporal average atomic stress values are stored in "History%Average atomic stress xxxx". The tensors are saved as follows: six components (xx, yy, zz, yx, zx, zy) for the 1st atom followed those for the 2nd one, and so on.

62096: Reaxff: Add an option to dump bond orders for Chemtrayzer as text.

This option was added to help users who need to generate a lot of frames for further analysis using Chemtrayzer. Currently the information needed by Chemtrayzer is only available in the rxkf file. Writing to this file can become slow when the number of frames grows into tens of thousands, which will eventually slow down the whole simulation and potentially take up a lot of disk space. If one is interested only in the Chemtrayzer analysis then the new option may prove useful.

In order to log the bond orders info to a separate text file the lmpsbo control parameter needs to be set to the desired writing frequency. For example, if lmpsbo=10 then the bond orders will be dumped every 10 steps. The default file name is "tatb" but it can be changed using the SCM_LINK_tatb environment variable. The tatb file has the same format as the output of the "fix reax/bonds" LAMMPS command.

61620: Reaxff: The MCFFOptimizer can now use a params file in the format specified in the original reaxff manual.

A single params file replaces the ffield_bool, ffield_min and ffield_max files used by the FFOptimizer framework. Besides, if the mcrxdd control parameter is set to 0, the MCFFOptimizer will use the step size specified in the params file instead of computing from the ffield_min, ffield_max and mcrxdd values. The format of the params file is as follows:

 # Optional comment line
 ! Another comment
  i  j  k  delta  min  max   ! i: section number (1 to 7), j: block index in the section (item index for i=1), k: item index in the block (ignored for i=1)
                             ! delta, min, max: step scale, minimum and maximum values, respectively

The sections are: 1 - general parameters, 2 - atomic parameters, 3 - bonds, 4 - off-diagonals, 5 - valence angles, 6 - torsion angles, 7 - hydrogen bonds.

61469: New constraint types in ADF

It is now possible to set a sum or a difference of two interatomic distance as a constraint.

    SumDist i j k l X

The SumDist constraint will make sure that when the optimization is finished the sum R(i,j)+R(k,l) to be equal to X. If X is omitted it will be taken from the input geometry.

    DifDist i j k l X

The DifDist constraint will make sure that when the optimization is finished the sum R(k,l)-R(i,j) to be equal to X. If X is omitted it will be taken from the input geometry.

Please note that when using the new constrait types it is strongly recommended to set the Constraints option in the Geometry block to PartialConverge because enforcing these constraits on every step will likely break the optimization.

The new constraints can also be used in linear transit just like any other non-block constraint. To do this just use "start=X end=Y" instead of the single X value.

60980: DIM/QM damped first and second hyperpolarizabilities

The Polarizability Interaction Model (PIM) can be used to calculate damped first hyperpolarizabilities β and damped second hyperpolarizabilities γ. Different types of β-tensors can be calculated, such as STATIC, OPTICALR, EOPE, and SHG. This allows for simulation of surface-enhanced hyper-Raman scattering (SEHRS). All the (sub)keywords for regular damped β, such as BETA and QUADRATIC, can also be used. Also different types of γ-tensors can be calculated, such as STATIC, EFIOR, OKE, IDRI, EFISHG, THG and TPA. This allows for simulation of plasmon-enhanced two-photon absorption (PETPA). Except CUBIC, all the other (sub)keywords for regular damped γ can also be used.

Z. Hu, D.V. Chulhai, and L. Jensen, Simulating Surface-Enhanced Hyper-Raman Scattering Using Atomistic Electrodynamics-Quantum Mechanical Models, J. Chem. Theory. Comput. 12, 5968 (2016).

60493: NBO6 update

Updated the NBO6 in the ADF distribution to the March 2017 version, see also "The 14-Mar-2017 distribution includes a number of other features of interest to general NBO users: The default NAO search algorithm has been modified to better preserve core-valence separation in rare cases where numerical near-degeneracies can lead to unphysical core-valence mixing. The numerical effects are generally negligible except where they become necessary. The "OLDNAO" keyword restores the legacy NAO algorithm for comparison purposes."

This new NAO method may change the NBO analysis of some properties (EFG, NMR) quite substantially, especially individual contributions.

60492: Reaxff: changes to the random number generator

The reaxff random number generator now uses the random_number Fortran intrisic subroutine by default. This should generate different random initial velocities in two otherwise identical calculations. Bedore this change, the pseudo-random number generator was always using the same seed, which always resulted in identical initial random velocities in such a case. The old behavior can be reproduced by setting the norand control file parameter to 1.

59721: Reaxff: significant changes to the energy minimization

The energy minimization (EM) functionality has been changed significantly, especially in the part related to the unic cell optimization. The EM procedure is now controlled by the following options in the 'control' file:


imetho=0: Normal MD (default).

imetho=1: Conjugate gradient (imaxmo=0) or L-BFGS (imaxmo=1, default) minimization.

imetho=2: MD minimization (unchanged from the original reax, not supported by SCM).

imetho=3: Vibrational normal mode analysis.

imetho=4: Quasi-Newton minimization.

optcel (only relevant for imetho=1 or imetho=4)

optcel=0: do not optimize the unit cell (default);

optcel=1: optimize a, b, and/or c vector lengths together with the atomic positions;

optcel=2: optimize all six unit cell parameters together with the atomic positions;

optcel=8: optimize a, b, and/or c vector lengths without changing fractional atomic coordinates;

optcel=9: optimize all six unit cell parameters without changing fractional atomic coordinates.


ifreq=1: compute vibrational frequencies after energy minimization. The same effect can be achieved by adding a FREQUENCY line to the bgf input geometry file.

icelo2 (only relevant for optcel=1 or optcel=8)

icelo2=0: optimize a, b, and c vector lengths (default);

icelo2=1: optimize only the a vector length;

icelo2=2: optimize only the b vector length;

icelo2=3: optimize only the c vector length;

icelo2=4: optimize a and b;

icelo2=5: optimize a and c;

icelo2=6: optimize b and c.

Note: the icelop control flag has become obsolete.

59682: BugFix: molecular dynamics for ADF,Band and DFTB via ASE was broken. Fixed

59629: Reaxff: new temperature profile feature at run time

The temperature profile along the simulation box axes will be calculated when ianaly=2 is set in the control file. In the tprofile.out file found in the results directory, the average temperatures for are listed in the following format:

Cell coord   N(sample)    T(ave)      N(sample)    T(ave)      N(sample)    T(ave)
    0.0050     22809      326.57722     14475      237.18337     24784      260.64395

Here, "Cell coord" is the coordinate of the middle point of the corresponding "bin", N(sample) is the number of samples used in the averaging (which is done over time and atoms in the slice), and T(ave) is the average temperature in the slice over the interval. The averaging interval and the number of "bins" are determined by the iout1 and tprofp control parameters, respectively. It should be noted that the binning is done in the fractional coordinates, which means that, for example, the plane separating two bins along the c crystal axis is always parallel to the (001) plane and may thus not be normal to the c axis itself.

59612: ADF Geometry optimization for FDE fragments

It is now possible to perform a geometry optimization for FDE-frozen fragments (there are several limitation to this functionality, e.g. it can only be use ICW using the old optimizer branch and Cartesian coordinates)

r59296: ADF excitation energies: charge-transfer descriptors and SFO analysis

Implemented is the calculation of a charge-transfer diagnostic overlap quantity LAMBDA, see Peach, Tozer, et al. (DOI: 10.1063/1.2831900), and a hole-electron distance R_EH, see Guido, Adamo, et al. (DOI: 10.1021/ct400337e).

Implemented is the calculation of a charge transfer descriptor CT, hole-electron distance R_EH, and some other descriptors, see Plasser, Lischka, et al. (DOIs: 10.1021/ct300307c, 10.1063/1.4885819, 10.1063/1.4885820, 10.1039/C5CP07077E). Required is a fragment calculation. The charge transfer descriptor CT_AT uses an atomic distance criterion.



If DESCRIPTORS is included calculate the charge transfer descriptors. Rab is the atomic distance criterion used for the calculation of CT_AT. Default value for Rab is 2 Angstrom.

Implemented is an SFO analysis of the excitation. This includes an analysis of the transition dipole moment.



If SFOANALYSIS is included a the SFO analysis of the excitation will be calculated. NMAXPRINTED is the maximum number of printed contributions. Default value for NMAXPRINTED is 40.

The SFO - SFO dipole matrix elements can be printed in the output with


r59267: Reaxff: Add an option to GCMC to mark a different radius of the forbidden zone around dummy atoms

The min and max values of the allowed distances to dummy atoms are specified using a rminxx and rmaxxx keyword, respectively. By default rmaxxx is set to a large value and rminxx is set to the same value as rminpl.

r59260: Reaxff: Implement an elastic wall restraint

The wall is specified in the geo file as:

EWALL RESTRAINT AxisIndex Coord HalfWidth Height

The wall is implemented as a sinusoidal function between Coord-HalfWidth and Coord+HalfWidth with a maximum at Coord. The Height value is given in kcal/mole. At this moment, the elastic wall restraint can only be used with an orthorombic unit cell. Example:

EWALL RESTRAINT  3  7.0  1.0  100.0

In this example the wall crosses the Z axis at z=7 Angstrom, it is 2.0 Angstom thick and 100 kcal/mole high.

Note: it is recommended to set the icentr option in the control file to 0 to avoid inconsistencies between the initial atomic coordinates and the wall position.

r58814: ADF: New RI-HartreeFock scheme is now default

The new implementation of the resolution-of-the-identity for the calculation of the Hartree-Fock exchange is now the default.

r57759: fix2017 branch created from trunk

r57617: BAND: Bugfix in OldResponse (calcultion hang before first frequency cycle)

r56924: Reaxff: add an option to initialize velocities with a Maxwell-Boltzmann distribution

With the parameter ivels=2 in the control file, the random initial velocities will have a Maxwell-Boltzmann distribution. The total system temperature will still be scaled to match the preset value exactly. It should be noted that by default (ivels=0) the X, Y, and Z components of the initial velocity vector have an uniform distribution and the temperature of each atom is scaled to Tset separately.

r56846: Reaxff: extended the molecule gun feature

The following keywords may be specified in the addmol.bgf file:

#Existing keywords
FREQADD    N         Add new molecule every N-th step but not before the iteration specified in FIRSTADD
FIRSTADD   N         Add the first molecule at iteration N
VELADD   1|2|3       Velocity of the added molecule: 1 - random, 2 - specified in the addmol.vel file
STARTX     X         The initial X coordinate of the added molecule, random if not specified
STARTY     Y         The initial Y coordinate of the added molecule, random if not specified
STARTZ     Z         The initial Z coordinate of the added molecule, random if not specified
ADDIST     R         minimum distance from the molecule to other atoms for successful addition
NATTEMPT   N         the program will try to add a molecule N times until the ADDIST criterion is met
TADDMOL    Ta        for VELADD=1|3: temperature for the velocity of the molecule as a whole 
#New keywords
ROTATE     1         The molecule is rotated randomly before being added
SIGMAX     SX        sigma parameter for the Gauss distribution of the initial X coordinate around STARTX
SIGMAY     SY        sigma parameter for the Gauss distribution of the initial Y coordinate around STARTY
SIGMAZ     SZ        sigma parameter for the Gauss distribution of the initial Z coordinate around STARTZ
VELXYZ  Vx Vy Vz     for VELADD=3: the direction vector for the initial velocity of the added molecule
SIGMAT     Ts        for VELADD=1|3: standard deviation for TADDMOL
TDISPER    Td        for VELADD=3: each atom's velocity is modified with V{x,y,z}=sqrt(RT/m)*random_normal(0,1)

Changes with respect to the original reac program are summarized below.

It is now possible to add some randomness both to the pre-set position and to the velocity: the SIGMA{X,Y,Z} keywords specify a standard deviation value for the Gauss distribution around the START{X,Y,Z} values, respectively.
If "ROTATE 1" is specified, the molecule will be rotated randomly around its geometric center before being added to the system.

A new VELADD=3 option has been added. With this option, it is possible to specify the velocity vector's direction via VELXYZ. This vector is normalized so the exact magnitude of its components does not matter. The magnitude of the velocity along this vector is determined by the TADDMOL and SIGMAT parameters as sqrt(3nRT/M), where T=TADDMOL + SIGMAT*random_normal(0,1), n - number of atoms in the molecule, R - gas constant, M - molecular mass. Additionally, the velocity of each atom may be modified with a random component based on the temperature specified by the TDISPER keyword. On average, the total temperature of the added molecules should be close to TADDMOL+TDISPER.

Another noteworthy change is that the molecules will never be added before the step specified by the FIRSTADD keyword. Thus, a molecule will always be added at the FIRSTADD step and then at every iteration divisable by FREQADD. Thus, if, for example, FIRSTADD=1999 and FREQADD=1000 then the first molecule will be added at the iterations 1999, the second at the iteration 2000 and then every 1000-th iteration after that.

r55593: Reaxff: the MCFFOptimizer can calculate derivative of the error function w.r.t. parameters

By setting the mcmini value in the control file to -1 one can request the MCFFOptimizer to estimate partial derivatives of the error function w.r.t. the parameter values by finite differences. Note that the finite difference interval used is equal to (max-min)/mcrxdd, where max and min are maximum and minimum values for a parameter from the ffield_max and ffield_min files, respectively.

Besides, it's now possible to run large MCFFOpt simulations with a dedicated dispatcher process, which can speed up the parameter search significantly. To use a dedicated dispatcher set mcdedi=1 in the control file.

r55403: Reaxff: the pressure is now always calculated regardless of the input options

The cost of calculating the pressure has been reduced to a few percent of the total time so it can now be afforded without too much extra cost.

r55342: Change in defaults for Band: Band structure and DOS no longer computed by default

Now to compute the band structure and the density of states one has to explicitly switch them on in the input file.

r55328: ADF: implemented an alternative method based on the current density for the calculation of magnetic properties

It is now possible to calculate several magnetic properties via TDCDFT, among which magnetizabilities, rotational g-tensors, NMR shielding constants, specific rotations and circular dichroism. This alternative method is based on the diamagnetic-current sum rule, which consists of rewriting the diamagnetic current in terms of the response functions. This is the magnetic analogue of the conductivity sum rule, which is invalid when an external magnetic field is applied.

Details on the method can be found in these references:

In order to obtain these properties, the following subkeys can be used:

    DAMPING Damping

Depending on which property is calculated, the program chooses a reference point for the external vector potential (see references). For the magnetizability, the center of electronic charges is chosen, while for the rotational g-tensor, the center of nuclear charges is picked up. This choice has no influence in the static case, and has no influence neither for the specific rotations nor for the circular dichroism. It actually only affects the dynamical magnetizabilities (the rotational g-tensor being always computed at zero frequency). Below is a brief description of each subkey and how to use them.


The (static or dynamical) magnetizability tensor.


The rotational g-tensor, calculated directly from the magnetizability.


The NMR shielding tensor. Care should be taken when using this keyword, though, as it was observed that the results failed to match experimental and other theoretical studies when using standard basis sets except for the lightest elements. Only when using very large basis sets should the results be trusted.


Calculates both the specific rotation and the circular dichroism. This keyword should be used in combination with DAMPING if one wants to simulate CD spectra. The output spectrum will exhibit relatively sharp peaks. Linear-interpolating the results with a third-tier program is then necessary. This is done on purpose, so that the final spectrum could be broadened easily (only the absolute amplitudes of the peaks will be affected by this broadening).


Adds a (fixed) damping factor to the response function. This allows one to avoid divergences that may arise from the response function when close to resonance, hence helping the self-consistent cycle converge. The value for Damping should be given in eV. A value of 0.1 eV seems to be reasonable

r55230: Reaxff: implemented the Nose-Hoover chains thermostat

The implementation is following the paper by G J Martyna, M E Tuckerman, D J Tobias, M L Klein, Mol. Phys. 87 (1996) 1117. The method parameters are used as follows: N_c=5, N_ys=5, Nchains=10.

r55091: Bugfix ADFinput: run script for MN15 and MN15-L fixed

Note that the functionals MN15 and MN15-L, which use LibXC, are not available on winfdows.

r54898: Bugfix ADF: libxc and xcfun for unrestricted spin-orbit coupling

In the case of spin-orbit coupling there are two ways to do spin-polarized calculations, either using the collinear approximation or the noncollinear approximation. Both methods would give incorrect results in case LibXC or XCFun functionals were used. That has been fixed.

r54730: ZORA-4 density at nucleus

In case of ZORA the electron density at the nuclei is calculated with the ZORA-4 method, which includes a small component density. Previously it was using the ZORA density, which does not include a small componnet density. This density at a nuclueus can be used for the interpretation of isomer shifts in Mössbauer spectroscopy. If you also want to calculate the ZORA density at the nuclei, include the keywords:


The same keywords can be use to to calculate the EFG with the ZORA density instead of the ZORA-4 density. If one includes spin-orbit coupling the EFG in the ZORA-4 approximation is now also calculated in case symmetry is used in the calculation.

r54630: ZORA MAPA instead of ZORA SAPA

Instead of SAPA (the Sum of neutral Atomical potential Approximation) MAPA is used by default for ZORA. The MAPA (the Minumium of neutral Atomical potential Approximation) at a point is the minimum of the neutral Atomical potentials at that point. Advantage of MAPA over SAPA is that the gauge dependence of ZORA is reduced. The ZORA gauge dependency is small for almost all properties, except for the electron density very close to a heavy nucleus. The electron density very close to a heavy nucleus can be used for the interpretation of isomer shifts in Mössbauer spectroscopy.

SAPA can still be used with
Relativistic Scalar ZORA SAPA
Relativistic SpinOrbitZORA SAPA

r53919: SCM_OPENGL1_FALLBACK environment variable added

LINUX ONLY: added new environment variable: SCM_OPENGL1_FALLBACK. Setting it to something non-empty (export SCM_OPENGL1_FALLBACK=1) will cause vtk programs to start with the VTK7-OpenGL1 binary. This should only be used for machines with crappy hardware+drivers OR remote machines where there is no virtualGL available.

r53878: GUI rendering speedup

An updated rendering backend is used to draw the molecules to your screen. This has lead to a speedup of over 1000x over the old version. Visualizing a milion atoms should no longer be a problem.

It requires your device to support OpenGL 3.2 or higher. Otherwise a fallback mode is used, which does not have the speed improvements. Running the GUI remotely, by X forwarding over SSH, is also not supported. Our wiki has more information on running remote.

r53687: Many improvements for Reaxff

The e-reaxff method has been implementated based on the original paper and on the code from the group of Adri van Duin.

In order to reduce the number of iterations in the iterative EEM solver the charges are now extrapolated by default. To disable set chaext to 0 in the control file.

The memory bottleneck for NPT simulations has been removed. Memory requirements for such simulations are now similar to other types.

Other optimizations that can lead to significantly faster simulations in some situations (e.g. a crystal or a polymer with many dihedral angles)

r53252: Bugfix BAND: The relative lengths of (user-defined) paths in the Brillouin zone for band structures were incorrect

r52935: BAND: Adjusted automatic K-space integration for phonons in case of supercells

Before this commit (in case of "automatic k-space grid") BAND would calculate the k-space grid using the primitive lattice vectors instead of the the supercell lattice vectors. Now it computes k-space grid using the supercell lattice vectors. This speeds up phonons calculations for large supercells significantly.

r52910: Isotopic shift for phonons and frequencies in BAND and DFTB

Introduced in DFTB and BAND two new input keys for user-defined atomic masses. In BAND (AtomProps key) the user-defined masses are be used in the calculation of frequencies and phonons. In DFTB (AtomMasses key) the user-defined masses are used in the calculation of frequencies, phonons and MD.

r52195: Unload python environment when starting the shipped python

To avoid collisions with other python installations on the system, we now unload PYTHONPATH and PYTHONHOME from the environment when launching the shipped python. This can be disabled in $ADFBIN/startpython, and should be done if the user wishes to use his personal python libraries from within the shipped python stack.

r51892: modify the default environment used when double clicking the MacOSX ADF-GUI application, $HOME/.scmenv file introduced

When starting the ADF GUI application on MACOSX the environment defined in your shell startup files is ignored. Instead a file $HOME/.scmenv is sourced if present in which you can define environment variables if you wish (bash shell syntax).

The default environemnt set-up by the ADF-GUI application is to use the adf bundled inside the application.

Variables that are define in the $HOME/.scmenv file will not be overwritten.

r51759: Double sided numerical differentiation for Phonons

Using double-sided sided numerical differentiation improves the precision of phonon calculations, and in many cases this solves the negative frequencies issue.

r51637: ADF excitation energies RS functional LibXC: RS ALDA + HF kernel

For the LibXC range separated (RS) functionals, like CAM-B3LYP, the kernel is approximated. The approximation has been improved to include RS ALDA + RS exact exchange. (It was 100% ALDA + RS exact exchange). Note that this is still not the full kernel.

r49758: DORI support and change to SEDD in DENSF

Added DORI as a synonym for SEDD and changed the definition of SEDD according to P de Silva, J Korchowiec, TA Wesolowski, J. Chem. Phys 140 (16), 164301. sedd(new)=ln(1+ksi) instead of sedd(old)=ln(ksi)

r49608: fixed a typo in the ReaxFF NaH forcefield file

The NaH forcefield contained a bug in the angle definitions. The Na-H-Na angle had the wrong atom numbers, causing them to overwrite the H-Na-Na angle. The correction is based on the text of the corresponding article.

r48931: Spin-orbit coupled excitation transition density in combination with ZlmFit

r48734: Revert the change in r39555 regarding dihedral angle and conjugation terms

The formula introduced in r39555 is still available and it can be used if one sets the tors13 parameter in the control file to a non-zero value. It should noted that this formula results in a smoother PES at the cost of some energy differences with the original code.

r48076: IntelMPI uses smpd instead of the newer hydra

IntelMPI 5.0 makes mpiexec.hydra.exe the default way of launching MPI jobs, which also adds the possibility to run with -bootstrap fork, removing the need for a daemon. However, the mpiexec.hydra.exe causes pmi_proxy.exe process to pop up in a commandline window. To prevent the popup we switched back to the old mpiexec.smpd.exe launcher.

r48013: Updated IntelMPI to 5.1 for 64bit Windows

This made it possible to change the mpiexec command on 64bit Windows to use -bootstrap fork, causing it no longer need the IntelMPI daemon.

r47988: ADF COSMO: outlying charge correction

The outlying charge correction is done during the SCF. It was a post-SCF correction on the COSMO charges.

r47402: FCF: Support for DFTB result files

The Franck-Condon-Factor program FCF can now read vibrational frequencies and normal modes from DFTB's *.rkf result files. Together with the new TD-DFTB gradients this allows the calculation of vibrationally resolved UV/Vis spectra based on (TD-)DFTB.

r47402: DFTB: Excited state gradients from TD-DFTB

DFTB now has analytical gradients for the TD-DFTB excitation energies, which allows the optimization of excited state geometries and the calculation of vibrational frequencies in excited states.

The calculation of the TD-DFTB gradients is controlled by the following keywords:

         {multiplicity singlet|triplet}
         {excitation n}
         {eigenfollow true|false}

If the gradients are calculated, they will automatically be used for geometry optimizations or vibrational frequency calculations, if the corresponding runtype is selected.

multiplicity singlet|triplet

excitation n

Determine which excited state to calculate the gradients for, e.g. multiplicity singlet and excitation 1 to calculate the gradient for the S1 state. Gradients can only be calculated for an excited states that has been calculated in the TDDFTB block, so make sure to also set the right multiplicity there and that enough excitations are calculated. The default is to calculate the gradients for the S1 state.

eigenfollow true|false

If this is set to true, DFTB uses the transition density in atomic orbital basis to follow the initially selected excited state during a geometry optimization. This is useful if excited state potential energy surfaces cross each other and you want to follow the surface you started on. Eigenvector following is disabled by default.

r47402: DFTB: Manual setting of initial charges for SCC-DFTB

DFTB now supports setting the initial Mulliken charges manually from the input file.

         (one number per line & atom)
         (same order as in the atoms block)

r47255: ADFview: FOD, fractional orbital density

Following the analysis method by Grimme and Hansen (doi: 10.1002/anie.201501887) a fractional occupation number weighted electron density (FOD) can be plotted with ADFview. The scalar field is obtained by finite-temperature DFT calculations with pre-defined electronic temperature Tel, typically Tel=5000 K, and for hybrids Tel=20000*(amount of HF exchange)+5000, see (doi: 10.1002/anie.201501887).

"$ADFBIN/adf" << eor

The NFOD (integrated FOD) is written in the output of ADF. The FOD can be visualized with ADFview. The contour surface value n ADFview should be set to 0.005 (e bohr-3).

r47214: ADFinput new feature: Volume and Electric Field Regimes in ReaxFF

VRegimes and ERegimes can now be set from within the GUI. See also p.88-90 in the ReaxFF training course.

r46683: adf2damqt: DAMQT interface

Interface (adf2damqt) to the 3rd party DAMQT 2.0 package, which can analyze the electron density in molecules, and related quantities. DAMQT includes the method of deformed atoms in molecules (DAM). The DAMQT 2.0 package is described in R. López, J.F. Rico, G. Ramírez, I. Ema, D. Zorrilla, Computer Physics Communications 192, 289 (2015).

In the ADF calculation TAPE15 and TAPE21 need to be saved. The executable adf2damqt can be run with up to three optional arguments. If no argument is supplied, "ADF" is chosen as default root name (fname) for files generated by the interface, and files containing electron density matrix (fname.den) and molecular orbitals (fname.SLorba and, eventually, fname.SLorbb) will be created in a format suitable to be read by DAMQT.

"$ADFBIN/adf" << eor
"$ADFBIN/adf2damqt" {fname {SPIN} {NOORBITALS}}


If a specific name is desired for the files (fname), it must be supplied as first optional argument, provided that the name does not coincide with any of the two additional options SPIN and NOORBITALS.


SPIN: for storing spin density matrix in fname.den file (instead of total electron density, which is the default).


NOORBITALS: to prevent generation of files with molecular orbitals (by default orbitals are generated).

SPIN and NOORBITALS are case insensitive and can be given in any order (but always after optional fname when required).

r46645: fixed ZLMFIT icw SCRF and VSCRF

r46606: AIM Bader analysis: atomic properties

The printed atomic dipole moments and atomic quadrupole moment in case of AIM (Bader) analysis are now calculated wrt the atomic position (instead of the origin). The total molecular dipole moment and total molecular quadrupole moment are printed as well.

r46599: Simplified interface for isotopic shift calculations in ADF

It is now possible to calculate an IR isotopic shift without modifying the atom type. The alternative mass is specified using the IsotopicShift keyword as follows:

IsotopicShift n1=m1 n2=m2 ...
Here, n1, n2, etc. are sequential numbers of atoms in the input geometry and m1, m2, etc. are their alternative masses. All frequencies and intensities are calculated as usual with the original atomic masses taken from the corresponding fragment files and the isotopic shifts are calculated and printed afterwards. The Hessian is not broken down into irreducible representations and the rigid motions are not projected out prior to the normal mode analysis. Normal modes (eigenvectors) corresponding to the original and the shifted frequencies are matched against each other based on their overlap, which allows to calculate an isotopic shift for each frequency. This analysis may, however, fail for highly symmetric molecules with degenerate modes.

This feature currently works in conjunction with analytical frequencies only.

r46213: ADF: the new ScalableSCF procedure is now used by default.

The main reason for the new SCF implementation is that the old one was not written with large parallel calculations in mind. As the result it used too much memory, network bandwidth and disk space for such jobs. The new implementation is supposed to be faster, use less memory and write less stuff to disk.

Add an OLDSCF key to the SCF input block to use the old one.

r46106: DENSF: unit of data in GRID INLINE block is no longer fixed to bohr. Unit set in UNITS block is now complied. Requires update of DENSF documentation

r46089: version number updated to 2014.07

r45745: Bugfix in TD-DFTB

There was a bug in the TD-DFTB implementation that lead to incorrectly calculated excitations for molecules with more than 64 atoms. The problem has been fixed in r45745.

r....: environent variables for debugging

Probably needs some cleanup, but for documentation purposes they are listed here:

  • SCM_DEBUG_TCL: set to yes to get trace of all calls, many more options ...
  • SCM_DEBUG_SSH: yes - show master connection, all - show all ssh related calls
  • SCM_LOG: write Util/Log calls to file as specified in value of env var
  • SCM_LOG_SCMJOBD: write log info for scmjobd processes to specified file
  • SCM_LOG_AUTOLICENSE: write log info for autolicense.tcl to specified file

r45558: New keyword in TD-DFTB

There is a new, optional keyword in the DavidsonConfig block used to configure the iterative eigensolver used in TD-DFTB calculations.

    {safetymargin n}

safetymargin n

The number of eigenvectors the Davidson method will calculate in addition to the ones requested by the user. With the Davidson eigensolver it is generally a good idea to calculate a few more eigenvectors than requested with the lowest keyword, as depending on the initial guess for the eigenvectors it can happen that the found ones are not exactly the lowest ones. This problem is especially prominent if one wants to calculate only a small number of excitations for a symmetric molecule, where the initial guesses for the eigenvectors might have the wrong symmetry. The default is to calculate 4 more eigenvectors than requested. Note that the additionally calculated excitations will neither be written to the result file nor be visible in the output.

r45517: ADF: M05, M05-2X

It is possible to use the metahybrids M05 and M05-2X functionals.

 MetaHybrid M05

r45496: ADF: singlet-triplet kernel TDDFT range-separated functionals

For XC functionals that use xcfun in addition to singlet-singlet excitations now singlet-triplet excitations and spin-orbit coupled excitations can be calculated. Note that the range-separated functionals use xcfun. Also the Full kernel can be used in these cases. However, the full kernel is not implemented for meta-GGA and meta-hybrid functionals, and the full kernel can not be used for excited state geometry optimizations.

r45412: Fragment runs via adfprep added

Define fragments via the template file, or via repeated -region options, or by repeated -m options (each molecule will get its own region). To generate a fragment calculation, add -fragments prefix. Jobs or run scripts for the fragments will also be created and saved on disk, with a name like prefix.region.job etc. The final run will be on output.

When running the final job, the fragment runs will automatically be executed if needed.

You can also include the -onejob flag which puts all jobs (fragment jobs and final job) on output.

For simple demos, see examples/gui/fragments and examples/gui/ltfragments.

r45283: Added the SCM_USE_LOCAL_IMPI environment variable, allowing the use of a local IntelMPI runtime installation

r45044: CRSprep: generate COSMO-RS jobs

The module crsprep is intended to facilitate scripting: it makes it easier to construct proper jobs, from within a script. This module can be used, for example, to run the same type of COSMO-RS job on various compounds, or to change input settings. This module can also be used to put pure compound data on an ADF COSMO result file.

In $ADFHOME/examples/crs one can find examples that follow the COSMO-RS GUI tutorials, $ADFHOME/examples/crs/Tutorial1/ uses adfprep to construct an ADF COSMO results file. Tutorial2/, Tutorial3/, Tutorial4/, Tutorial5/ show different examples that use crsprep for COSMO-RS calculations.

% crsprep -h
CRSprepare (crsprep) saves pure compound data on an ADF COSMO result file
or generates a job script for COSMO-RS calculations,
with user specified changes to input options / method / system.
Required is at least 1 compound and -savecompound or -t template

   crsprep -savecompound -s compound.coskf
          [-nring nring] [-pvap pvap] [-tvap tvap] [-antoine "A B C"]
          [-meltingpoint meltingpoint] [-hfusion hfusion] [-cpfusion cpfusion]
          [-flashpoint flashpoint] [-density density] [-scalearea scalearea]
   crsprep -t template
          [-s compound.(coskf|compoundlist)] [-c compound.(coskf|compoundlist)]
          [-nring nring] [-pvap pvap] [-tvap tvap] [-antoine "A B C"]
          [-meltingpoint meltingpoint] [-hfusion hfusion] [-cpfusion cpfusion]
          [-flashpoint flashpoint] [-density density] [-scalearea scalearea]
          [-frac1 frac1] [-frac2 frac2]
          [-densitysolvent densitysolvent] [-solphase solphase]
          [-volumequotient volumequotient] [-preset preset]
          [-method method] [-temperature temperature] [-pressure pressure]
          [-iso iso] [-n n] [-inputpurevap inputpurevap] [-inputpuredensity inputpuredensity]
          [-sigmax sigmax] [-massfraction] [-file filename] [-j jobname]

    use to save pure compound data on an existing ADF COSMO result file

-t template
    use for COSMO-RS property calculation
    template should be one of:

    at least 1 compound is required
    the order of the compounds is: first all compound defined with -s, then those with -c
-s file: the special compound(s) to be used, should be a .coskf file, or a .compoundlist file
    the -s key has to be repeated for each file
-c file: additional compound(s) to be used, should be a .coskf file, or a .compoundlist file
    the -c key has to be repeated for each file

-nring: number of ring atoms 
-pvap: pure compound vapor pressure (bar) at tvap
-tvap: at this temperature (Kelvin) pure compound has pressure pvap
-antoine: Antoine coefficients A, B, and C
-meltingpoint: melting point (Kelvin)
-hfusion: enthalpy of fusion (kcal/mol)
-cpfusion: heat capacity of fusion (kcal/(mol K))
-flashpoint: flash point (Kelvin)
-density: liquid density (kg/L)
-scalearea: COSMO surface area scale factor
    these keys can be repeated for each compound,
    first appearance of the key will be for compound 1, second for compound 2, etc.
    note the order of the compounds

-frac1: define solvent
-frac2: define solvent 2 (LogP, composition line)
    the -frac1 and -frac2 key have to be repeated for
    each compound that should have a non-default value
    first appearance of the key will be for compound 1, second for compound 2, etc.
    note the order of the compounds
-densitysolvent: density solvent (kg/L)
-solphase: pure compound phase solute in solubility calculation
-volumequotient: molar volume phase 1/molar volume phase 2 (LogP)
-preset: LogP preset 0, 2, 3, 4, 5
     0: user defined; 2: Octanol/Water; 3: Benzene/Water; 4: Ether/Water; 5: Hexane/Water

-method: COSMO-RS, COSMOSAC2013 
-temperature: temperature (Kelvin)
    the -temperature key can be used twice to give a range
-pressure: pressure (bar)
    the -pressure key can be used twice to give a range
-iso: isotherm, isobar, flashpoint
-n: number of steps
-inputpurevap: if 1 use input pure compound pvap and tvap or Antoine equation
-inputpuredensity: if 1 use input pure compound liquid density
-sigmax: maximum value sigma (sigma profile, sigma potential)
-massfraction: use mass fractions

-file: content of the file will be added at the end of the input for the CSOMO-RS calculation
    the -file key has to be repeated for each file

-j: produce a fully runable job (as the .job files from ADFjobs), using the specified jobname.
    The job script produces files like jobname.out, jobname.crskf etc. Several job scripts can simply
    be concatenated, the results will be stored in different files using the jobname parameter
    the default is a simple run script

crsprep -s benzene.coskf -nring 6 -savecompound
crsprep -t VAPORPRESSURE -temperature 273.15 -temperature 373.15 -s methanol.coskf

r45012: ADFreport: extra support for COSMO-RS result files

ADFreport has been extended to get easier results from COSMO-RS result files (.crskf files). It was already possible to report any proper KF variable from the .crskf file. Now a few predefined keys are added. See the $ADFHOME/examples/crs directory for use of adfreport in COSMO-RS calculations. Depending on the kind of calculation one use:

Command line option      Property

PROPERTY                 General:Property

METHOD                   Property:Method
NITEMS                   Property:Number of Items
FRAC1                    Property:Solvent: molar fraction
FRAC2                    Property:Solvent 2: molar fraction
SOLVENT-FRACTION         Property:Solvent: solvent fraction
TEMPERATURE              Property:Temperature (in Kelvin)
PRESSURE                 Property:Pressure (in bar)
GIBBS-ENERGY-MIXING      Property:Gibbs free energy of Mixing (in kcal/mol)
GIBBS-ENERGY-SOLVATION   Property:Gibbs free energy of Solvation (in kcal/mol)
GIBBS-ENERGY-SOLUTE      Property:Gibbs free energy solute (in kcal/mol)
EXCESS-G                 Property:Excess Gibbs free energy (in kcal/mol)
EXCESS-H                 Property:Excess Enthalpy (in kcal/mol)
ENTHALPY-VAPORIZATION    Property:Enthalpy of vaporization (in kcal/mol)
LOGP                     Property:LogP
MOLAR-FRACTION           Property:Molar Fraction
ACTIVITY-COEFFICIENT     Property:Activity Coefficient
VAPOR-PRESSURE           Property:Vapor Pressure (in bar)
SOLUBILITY-X             Property:Solubility: molar fraction
SOLUBILITY-M             Property:Solubility: moles per liter (in mol/(L solution))
SOLUBILITY-G             Property:Solubility: gram per liter (in g/(L solution))
SOLUBILITY-MASS-FRACTION Property:Solubility: mass fraction
HENRY                    Property:Henry Constant (in mol/(L atm))
HENRY-NODIM              Property:Henry Constant dimensionless
MISCIBILITY-GAP          Property:Miscibility gap
MISCIBILITY-GAP-T        Property:Miscibility gap temperature (in Kelvin)
MISCIBILITY-GAP-P        Property:Miscibility gap pressure (in bar)
MISCIBILITY-GAP-X        Property:Miscibility gap molar fraction x1 x1'
MISCIBILITY-GAP-A        Property:Miscibility gap activities a1 a2
TIE-LINES-X              Property:Tie Lines molar fraction x1 x2 x3 x1' x2' x3'
TIE-LINES-A              Property:Tile lines activities a1 a2 a3
CHEMICAL-POTENTIAL       Property:Chemical Potential
CHEMICAL-POTENTIAL-PURE  Property:Chemical Potential Pure Compounds Liquid
CHEMICAL-POTENTIAL-GAS   Property:Chemical Potential Pure Compounds Gas
SIGMA                    Property:Sigma
SIGMA-PROFILE            Property:Sigma Profile
SIGMA-PROFILE-HB         Property:Sigma Profile Hydrogen Bonding part
SIGMA-PROFILE-TOTAL      Property:Total Sigma Profile
SIGMA-PROFILE-HB-TOTAL   Property:Total Sigma Profile Hydrogen Bonding part
SIGMA-POTENTIAL          Property:Sigma Potential
SIGMA-POTENTIAL-TOTAL    Property:Total Sigma Potential

NCOMP                    Compounds:Number of Compounds
COMPOUNDS-FILENAME       Compounds:Filename
COMPOUNDS-NAME           Compounds:Name (from filename)
COMPOUNDS-MOLAR-MASS     Compounds:Molar Mass

r44020: ADFinput new feature: adjust atom coordinates when changing the lattice (effectively use natural coordinates)

r43948: 3ob-2-1 parameter set added to DFTB

DFTB now contains the 3ob-2-1 parameter set, which allows DFTB3 calculations for organic compounds containing sulfur and phosphorus.

r43924: Improved support for dispersion corrections in DFTB

We have improved support for dispersion corrections in DFTB: All dispersion corrections now support both molecular and periodic systems and the ULG dispersion correction developed by Kim et al. has been added. Note that Grimme's D3 with zero damping is no longer supported, as it was not fully parametrized for DFTB, and that the default parameters for the D3-BJ dispersion correction have been updated, which will produce slightly different results. See below for an updated documentation of DFTB's dispersion keyword.


This key allows to specify options for the London dispersion correction. If it does not exist, no dispersion correction will be included.

method UFF|ULG|D2|D3-BJ

This subkey is used to specify a dispersion model. Please refer to the literature for details on the different methods:

  • UFF: L. Zhechkov et al., J. Chem. Theory Comput., 2005, 1 (5), pp 841-847
  • ULG: H. Kim et al., J. Phys. Chem. Lett., 2012, 3 (3), pp 360-363
  • D2: S. Grimme, J. Comput. Chem., 2006, 27: 1787-1799
  • D3-BJ: S. Grimme et al., J. Comput. Chem., 2011, 32: 1456-1465

If no method specified in the Dispersion block, a default dispersion correction defined in the metainfo.yaml file (depends on "ResourcesDir", see metainfo.yaml) will be used. Note that not all dispersion models are supported by all parameter sets. A list of supported models can be found in the parameter's metainfo.yaml file.

d3parameters s6=S6Param s8=S8Param a1=A1Param a2=A2Param

User-customized D3-BJ parameters can be specified with this subkey. Otherwise, the default parameters defined in metainfo.yaml are used. Note that all four parameters have to be specified if the d3parameters keyword is used.

r43864: COSMO-SAC 2013-ADF pure compound properties

r43854: adfprep now can change geometry details (distance, angle, dihedral)

See adfprep -h for details (the -dist, -angle and -dihed flags).

r42614: Excited state calculations in DFTB

DFTB now allows excited state calculations for molecular systems using single orbital transitions as well as time-dependent DFTB as published by Niehaus et al. in Phys. Rev. B 63, 085108 (2001).

DFTB excited state calculations are controlled by the following keywords:

         {maxnum n}
            {dEMin r}
            {dEMax r}
            {OSMin r}
         {printlowest n}
         {calc [ singlet triplet ]}
         {lowest n}
         {upto r}
         {diagonalization exact|davidson|auto}
            {ATCharges onthefly|precalc}
            {preconditioner exactdiag|approxdiag}
            {tolerance r}
            {maxBlockSize n}
            {minRestartSize n}
            {maxBasisSize n}
         {print [ eigenvectors evcontribs omegamatrix omegadiagonal ]}


The simplest approximation to the true excitations are the single orbital transitions (sometimes called Kohn-Sham transitions), that is transitions where a single electron is excited from an occupied Kohn-Sham orbital into a virtual orbital. The calculation of these transitions is configured in the SingleOrbTrans section. Note that the SingleOrbTrans section is optional even though the single orbital transitions are also needed for TDDFTB calculations. If the section is not present all single orbital transitions will still be calculated and used in a subsequent TDDFTB calculation, but no output will be produced.

maxnum n

The maximum number of calculated single orbital transitions. If the total number of single orbital transitions (that is the number of occupied orbitals times the number of virtual orbitals) is larger than this, the high energy end of the spectrum will be truncated. Accepts a single integer. The default is infinity, so that all possible transitions will be considered.


The Filter section allows to remove single orbital transitions based on certain criteria. Note that the filter is applied after the single orbital transition spectrum has been truncated via the maxnum keyword. The final number of single orbital transitions can therefore be less than maxnum if a filter is applied. All filters are disabled by default.

dEMin r

Removes single orbital transitions with an orbital energy difference smaller than dEMin. Accepts the minimum energy difference in Hartree as a single number.

dEMax r

Removes single orbital transitions with an orbital energy difference larger than dEMax. Accepts the maximum energy difference in Hartree as a single number.

OSMin r

Removes single orbital transitions with an oscillator strength smaller than OSMin.

printlowest n

The number of single orbital transitions that are printed to the screen and written to disk. Accepts a single integer. If the TDDFTB section does not exist, the default is to print the 10 lowest single orbital transitions. If it does exist it is assumed that the single orbital transitions are only used as an input for TDDFTB and nothing will be printed unless printlowest is specified explicitly.


Calculations with time-dependent DFTB can be configured in the TDDFTB section and should in general give better results than the raw single orbital transitions. TDDFTB calculates the excitations in the basis of the single orbital transitions, whose calculation is configured in the SingleOrbTrans section. Using truncation or a filter in SingleOrbTrans can therefore be used to reduce the size of the basis for TDDFTB. One possible application of this is to accelerate the calculation of electronic absorption spectra by removing single orbital transitions with small oscillator strengths from the basis. Note that the entire TDDFTB section is optional. If no TDDFTB section is found, the behavior depends on the existence of the SingleOrbTrans section: If no SingleOrbTrans section is found (the Excitations section is completely empty then) a TDDFTB calculation with default parameters will be performed. If only the SingleOrbTrans section is present no TDDFTB calculation will be done.

calc [ singlet triplet ]

Specifies the multiplicity of the excitations to be calculated. Accepts the keys singlet and/or triplet separated by a space. The default is to calculate both singlet-singlet and singlet-triplet excitations.

lowest n

Specifies the number of excitations that are calculated. Accepts a single integer. The default is to calculate the 10 lowest excitations. Note that in case of the exact diagonalization all excitations are calculated, but only the lowest ones are printed to screen and written to the output file.

upto r

Attempts to calculate all excitations up to a given energy by calculating a number of excitations equal to the number of single orbital transitions in this window. This is only approximately correct, so one should always add some safety margin. Accepts a single real number which is the maximum excitation energy in Hartree. Note that if both lowest and upto are specified, DFTB will always use whatever results in the smaller number of calculated excitations.

diagonalization exact|davidson|auto

Specifies the method used to solve the TDDFTB eigenvalue equation. The most straightforward procedure is a direct diagonalization of the matrix from which the excitation energies and oscillator strengths are obtained. Since the matrix grows quickly with system size (number of used single orbital transitions squared), this option is possible only for small molecules. The alternative is the iterative Davidson method, which finds a few of the lowest excitations within an error tolerance without ever storing the full matrix. The default is to make this decision automatically based on the system size and the requested number of excitations.


The DavidsonConfig section contains a number of keywords that can be used to override various internals of the Davidson eigensolver. The default values should generally be fine.

ATCharges onthefly|precalc

Controls whether the atomic transition charges are precalculated in advance or reevaluated during the iterations of the Davidson solver. Precalculating the charges will improve the performance, but requires additional storage. The default is to precalculate the atomic transition charges, but the precalculation can be disabled if not not enough memory is available.

preconditioner approxdiag|exactdiag

Sets the elements of the diagonal matrix used as a preconditioner for the trial vectors. Using the exact diagonal of the Omega matrix is generally not recommended as it is slightly slower and does not speed up convergence. The default is to use the single orbital transition energies as an approximation to the diagonal of Omega.

tolerance r

Convergence criterion for the norm of the residual. Accepts a single real number. The default is 1e-5.

maxBlockSize n

Maximum number of trial vector multiplications done at once. Both too small and too large values might result in suboptimal performance. Accepts a single integer. The default is to use the number of requested excitations, but no more than 64.

minRestartSize n

Minimum number of retained Ritz vectors upon basis collapse. Accepts a single integer. The default is to retain 4 times maxBlockSize.

maxBasisSize n

Maximum number of basis vectors before the basis is collapsed. Larger values will decrease the number of required matrix-vector multiplications but require more memory and make the orthonormalization more costly. Accepts a single integer. The default is to use 10 times maxBlockSize.

print [ eigenvectors evcontribs omegamatrix omegadiagonal ]

Specifies whether to print the full eigenvectors, the contributions of the single orbital transitions to the excitations, the entire Omega matrix and/or its diagonal elements. The default is to print nothing. Note that the full Omega matrix cannot be printed when using Davidson diagonalization. Note also that for Davidson diagonalization the printed diagonal is the one used as the preconditioner, which is only the true diagonal of Omega if the exact preconditioner was selected in DavidsonConfig.

r41120: GUI on Linux: removed GLIBC 2.7 dependency

RedHat and CentOS 5 users may have noticed that the recent development snapshots had a GLIBC 2.7 dependency in the GUI applications, making them un-executable on their systems with GLIBC 2.5. We have now solved this issue, and will check upcoming release versions to also not have this problem. However, we cannot prevent these issues from re-appearing again in development snapshots. This only applies to the GUI part of the ADF package, the executables that perform the calculations should run on any Linux machine with GLIBC 2.3 or newer.

r40944: ADF: ZLMFIT default instead of SFTO fit

In the molecular ADF program the default method for electron density fitting has been changed from the STO fitting to the ZLMFIT method. This ZLMFIT method can be important to improve the precision of the results. However, changing defaults for such an important part of the adf calculation may cause problems. To use STO fitting method, which was previously the default, use the key STOFIT in the input of adf (also include it in the create mode of an atom, if that is explicitly used).


r40910: cry reading by adfprep

To get a list of compounds in a cry file:

    cifreader file.cry -list

To read a specific compound as molecule in adfprep (assuming you made the BAND_SP.adf template):

    adfprep -t BAND_SP.adf -m file.cry:compound

For example, perform some BAND_SP.adf template on all compounds in a cry file, and save results with the compounds name:

for compound in `$ADFBIN/cifreader $CRYFILE -list`
    adfprep -t BAND_SP.adf -m $CRYFILE:$compound -j $compound >> runscript
chmod +x runscript

r40908: Charge mixing control in DFTB

DFTB now gives the user more control of the SCC cycle through a new keyword that controls the charge mixing between subsequent iterations.

       mixing 0.2
The keyword takes the Broyden mixing parameter as a single number between 0 and 1. The default value of 0.2 should in general be fine, but decreasing/increasing the mixing can sometimes help with SCC convergence problems.

r40839: NMR fixes: SO gauge correction term, unscaled ZORA default

There is gauge dependence if the scaled ZORA method is used in the calculation of NMR chemical shieldings. Therefore the default method for NMR chemical shielding calculations is changed to use the unscaled ZORA method. The scaled ZORA method, which will give (slightly) gauge dependence results, can still be used with

"$ADFBIN/nmr" << eor

In the ADF2008.01 a bug was introduced in the spin-orbit part of the calculated chemical shielding, which caused the calculated chemical shielding to be gauge dependent. This has been solved by including a spin-orbit gauge dependence term. One can still get the (slightly) incorrect results by using the keyword WRONGSOGAUGE.

Before ADF2008.01 in the the spin-orbit term a 1-center approximation was used, which does not suffer from gauge dependence. This 1-center approximation can be used with

"$ADFBIN/nmr" << eor

In case of hybrids one should use all electron basis sets if one wants to calculate NMR chemical shieldings. The use of frozen cores and hybrids gives gauge dependent results for the NMR chemical shieldings, therefore the NMR program will stop in this case.

r40603: NBO6 bug fix update

Include the latest changes and some bug fixes in NBO6.

r40416: adfreport and adfprepare now handle geometries from LT or IRC steps

So now after an LT or IRC calculation it is very easy to run a single point calculation for every converged geometry in the path. For example to generate orbital pictures. The Prepare tool in ADFjobs also supports this (just select the result t21 with LT points as source for geometries).

r39871: Automatic license update and installation activated

When starting a GUI module or any software via the start script, a tcl - tcl/tk script will verify that a license is available. If not, a dialogue is present where the user can request a license. The script contacts the SCM license server, possibly getting a license file. If a license file is returned, it is installed automatically.

The input options in the dialog:

  • toggle (specific program | all software): get a license only for part of the software. For example, to install the GUI on one machine and the compute engines on another machine. Currently not supported by the back-end.
  • User ID / password: the account info customers get (same as needed to download the ADF binaries)
  • Remember: the account info will be stored in $HOME/.scm_gui/scmcreds
  • Get license without user confirmation: will automatically try to update the license using previously stored account info, so you can just run on a cluster and if a license is not available for a node it will update automatically. Right now the license update will only work for the node were ADF (or BAND etc) is started (via the start script).
    This option may also be convenient to set up an image for bigger groups like workshops, an educational environment or cloud computing (note the $HOME/.scm_gui/scmcreds file needs to be included in the image).
  • Cancel: exit without doing anything
  • OK: send the info (including machine info etc) and try to install a license

When the installation of a valid license fails (either it is not yet given or declined, or you clicked Cancel) a new dialog will pop-up showing details. That info should be mailed to get a license in the traditional way. The Copy Info button in that dialog will make it easy for the user to copy/paste the info into an email.

The GUIPrefs application (Preferences via the SCM menu) has two new commands:

  • Update License: try to get a new license file via the autolicense mechanism
  • No Automatic License Update: turn of the license update without user interaction option

r39555: ReaxFF: Changes in the dihedral angle and conjugation terms

To solve a discontinuity problem at small bond orders for torsion angle and conjugation contributions the formula for f(BO). These terms correspond to expressions for f_10 (eq. 10b) and f_12 (eq. 11b) in the "ReaxFF: A Reactive Force Field for Hydrocarbons", J. Phys. Chem. A 2001, 105, 9396-9409 paper. The new expression for each term in f_10 is now [1 - exp(-2 * lambda_23 * BO**2)] and in f_12 it is now sin(BO*pi/3)**4. The new expressions ensure correct asymptotic behavior for the dE/dBO for BO→0

r39350: 64-bit Linux: Platform-MPI version upgraded to 9.1

r38939: Distance difference restraints in ADF optimizations

It is now possible to restrain a difference between two distances:
r = (r1 - r2) - (r3 - r4)
where r1..r4 are positions of four atoms and r is the final restrained property.
The syntax is

 DD at1 at2 at3 at4 r0 [alpha [bfac]]

The functional form and meaning of alpha and bfac is the same as with plain distance restraints.
Atoms at1..at4 need not be all different.

r38733: Constrained geometry optimizations with DFTB

It is now possible to define distance, angle and dihedral constrains in a separate DFTB input block called Constraints. The syntax is exactly the same as in the ADF program.

r37543: ADFview viewing orbitals shortcut

You can use the arrow-up/down keys to switch between the orbitals displayed, in sort order.

r37447: ssh multiplexing in GUI when using OpenSSH

The use of ssh multiplexing (connection sharing) has been implemented in the GUI. This will be used when dealing with remote machines.

Activate this new feature by setting SCM_SSH_MULTIPLEXING=yes in your environment.

When the multiplexing is active, you will see a file in the $HOME/.scm_gui directory with a name starting with scmmux. If this file is present, a corresponding ssh connection should be running. If no ssh connections are running, but this entry is present, problems will occur.

You can control it, and generate debugging info (on stderr) via the following environment variables:

# avoid use of the new multiplexing feature

# show all ssh calls issued by the GUI
export SCM_DEBUG_SSH=all

# show only the ssh calls that actually create new connections
export SCM_DEBUG_SSH=yes

r37120: Vector visualization in ADFview added

Currently only the Dipole vector is available for ADF or MOPAC calculations.

r37050: Fix orientation of molecule and calculated field in cube files calculated by densf

Before this fix the X and Z axes had their places switched. Now the orientation should be the same as displayed by ADFview.

r36995: ADF 2013.01a released

r36891: ADF 2013.01 released

r36439: Bug fix ReaxFF: sometimes in non-reactive reaxff calculations molecules would break down when passing though unit cell border

r36206: Bug fix ADF: zero-field splitting calculation with key ZFS could produce wrong results

r35839: densf: a possibility to calculate NCI (non-covalent interactions) quantities has been added

The areas of non-covalent interactions can be recognized by the a low value of the electron density coupled with a low value of RDG (reduced density gradient s = 1/2 (3π2)-1/3 |∇ρ| ρ-4/3) and a negative (or a small positive) value of the second eigenvalue of the Hessian of the electron density (λ2). The regions of significant hydrogen bonding are recognized by strictly negative λ2) while in the regions of VdW interactions it may be slightly positive. The relevant DENSF input keyword is:


All arguments are optional

By default, the exact density is used to calculate the NCI properties. If FIT is specified then the fitted density is used to calculate the fields and their names are prepended with "Fit". If BOTH is specified then the NCI properties are calculated using both exact and the fitted density. Again names of the fields calculated from the fitted density start with "Fit"

The remaining arguments set relevant thresholds (all in atomic units):
RhoVdW: density threshold for detection of weak interaction regions (default 0.02);
Rdg: threshold on the reduced density gradient value s (default 0.5). A point is considered for NCI only if s value is smaller than Rdg.

DENSF creates three variables per density type (exact or fitted) when NCI is present in the input:
SCF%RDG (or SCF%FitRDG): the reduced density gradient value s;
SCF%DenSigned (or SCF%FitDenSigned): the sign(λ2) ρ value for regions where s < Rdg;
SCF%NCI (or SCF%FitNCI): the NCI flag value, see below;

If the point is considered for NCI (that is if s < Rdg), the sign(λ2)ρ value (or ρ) is tested against RhoVdW. If ρ < RhoVdW then the NCI value is set to 1 to flag a VdW interaction region. If sign(λ2)ρ < -RhoVdW then the NCI value is set to -1 to flag a hydrogen bonding region. In all other cases the NCI value is zero.

r35722: Bug fix ADF: Range-separated functionals and distance effects

r35456: Range-separated functionals and a significant update to XCFUN. Also, non-ALDA kernels for GGAs in TDDFT (AGGA)

Range-separated functionals make use of a modified form of the Coulomb operator that is split into pieces for exact exchange and DFT. Global hybrids can be thought of as a special case of a range-separated functional where the split is independent of the interelectronic distance and is a simple X% exact and 1-X% DFT in all space.

In a general RS-functional the split depends on the interelectronic distance. How the split is achieved depends on the functional in question but it is achieved using functions that smoothly go from 1 to 0. In ADF an exponential function is used (the error function is common in Gaussian based codes). In a range-separated function the potential goes from a Coulomb interaction to a sum of Coulomb functions attenuated by an exponential function.

In practical terms, this means that a range-separated functional looks very much like a hybrid (or meta-hybrid) functional but with additional integrals over the attenuated interaction with fit functions on the exact exchange side and a modified functional on the DFT side.

DFT part of RS-functionals

Using Hirao's approach for creating RS-functionals, the RS form of a given exchange functional is created by multiplying the standard energy density by a factor that depends on the energy density. The factor is the same for all functionals and the only difference is introduced by the individual energy densities.

The RS DFT functionals are evaluated by the XCFUN code. If the energy density of a functional is calculated by XCFUN as E then the RS for is E*yuk(rho,E). The yuk function is defined in the yukawa.h file in the src/functionals directory. Most exchange functionals in this directory have RS forms so a number of examples exist.

Exact exchange part of RS-functionals

The range-separation comes in at the level of the integrals over the operator with fit functions. The integrals are performed by the routines in the CoulRangeSeparatedModule.dmod3 module in libtc/ets. They are very similar to the standard Coulomb integrals. The integrals are combined with the standard integrals in the appropriate way in fitfitint, exch1can, CalcFitCoefOneNuc and calcexchange. The details of the equations can be found in a separate document.


An RS-functional is described by a series of regions describing each of the pieces of the Coulomb operator. The total function is built up by looping over the regions and adding up all the pieces. The code is written so that up to 10 regions can be defined. This number can be increased in the XCRangeSeparatedCalcDescriptor module. More than 10 shouldn't be needed. Currently, simple LC functionals can be defined where the exact exchange goes from 0 to 1 as the interelectronic distance increases and the DFT part does the reverse. In addition CAM-B3LYP type functionals can be defined. More general functionals are not possible yet but this is just a matter of adding the input routines. All of the other machinery is in place.


RS functionals require XCFUN and are limited to the XCFUN functionals that have been implemented.

The XCFUN implementation is put into the xcener, xcpot, xc, xchybrid, GetMetaGGADerivatives, CalcFxcGxc (fxc only) and CalcXCBlock (M_xc.dmod7) routines. Any routines that make use of these routines should be able to use RS-functionals. The following functionality has been tested: XC potential, energy, ground state geometry, TDDFT. Excited geometry optimizations are not possible at this time but all that must be added is the evaluation of the third derivative of the XC energy density to XCFUN and it should work fine.

The flag determining whether to use XCFUN or not is in the gModel structure. Also in gModel the xcDescriptor structure contains all of the information needed for XCFUN (and range-separated) runs.

Full Kernel

With XCFUN the full (non-ALDA) kernel can be evaluated and this has been implemented into the TDDFT code. This is achieved in the SymMatOc routine with an alternative calculation of the ResponseOp. This also requires some extra initialization and cleanup that is performed by calls in the Excitation routine. The Full kernel can not be used in combination with symmetry or excited state geometry optimizations.

Numerical Comparisons/Stability

In calculations of XC energies/potentials/kernels often contributions are neglected when the density is "small". The definition of what is small is probably different in XCFUN than in the old routines which may lead to numerical differences.

The range-separated implementation requires that the range-separation parameter is not too close to the exponent of a fit function. In practice this means that values of the separation parameter between 1.0 and 50 can cause numerical problems. Typical useful values are in the range 0.2 to 0.9 so this should not be too serious a limitation.

Input description

The XFCUN evaluation is activated by adding

XCFUN in the XC block.

The following functionals can be evaluated with XCFUN at the present time:

  • GGA exchange: Becke88, PBEX, OPTX, PW91X, mPW, revPBEX
  • GGA correlation: LYP, Perdew86, PBEC
  • MetaGGA: TPSS, M06L, PW6B95, B95, PWB6K
  • MetaHybrids: M06, M05, M062X, M06HF


Range separation is activated by putting RANGESEP in the XC block. By default an LC functional is created with range separation parameter of 0.75. The parameter can be changed by modifying X in GAMMA=X in theRANGESEP card Range separation typically will be used in combination with a GGA or METAGGA functional.

One special RS functional exists: CAMB3LYP. This is entered as HYBRID CAMB3LYP and must be used in combination with XCFUN and RANGESEP. The CAMB3LYP functional is defined by three parameters, alpha, beta and the attenuation parameter gamma. The gamma parameter can be modified as for the LC functionals. For CAMB3LYP it defaults to 0.34. The alpha and beta parameters can be modified through ALPHA=a and BETA=b in the RANGESEP card. They default to 0.19 and 0.46 respectively.

To use the non-ALDA kernel the keyword FULLKERNEL should be put in the EXCITATIONS block. FULLKERNEL can be used with GGAs (including hybrids and RS functionals) but not meta-GGAs or meta-hybrids. FULLKERNEL can not be used in combination with symmetry, excited state geometry optimizations or other response properties.

Adding functionals to XCFUN

To add a new functional to use with XCFUN and ADF, the functional must be added on the XCFUN and ADF sides.

XCFUN side:
  1. The function definition goes into a file in the xcfun/src/functionals directory. A number of examples can be found there.

    These files consist of two sections. In the first, C++ code defines the energy functional. In the second section comments and three parameters are defined and (optionally) some benchmark data.

    The three parameters are the X in


    and the Y in


    and the XC_DENSITY (and maybe XC_GRADIENT and XC_KINETIC) before the ENERGY_FUNCTION. The latter parameters are strightforward in that they describe which variables are used by the functional in question.

    The Y in the ENERGY_FUNCTION is also straightforward as it refers to the function defined earlier in the file that is used for the energy calculation.

    The X in FUNCTIONAL(X) refers to a label for the functional that is used in a number of places.

  2. In order to use the functional this X label must be added to the xc_functional_id enum in the include/xcfun.h file.
  3. Some functionals have parameters that need to be passed to and/or from the calling program. These also have labels that are kept in the xc_parameter enum in the include/xcfun.h file and should also be placed in /src/functionals/common_parameters.cpp along with a description and a default value.

The new code can be compiled with "make -f Makefile.gcc" but in order for all files to be set up correctly it seems that the old compilation needs to be removed with "make clean -f Makefile.gcc" and the remade with "make -f Makefile.gcc". The parameter file needs to be put into the correct place in the adf code tree with the script also and the xcfun library copied to the main OFILES directory from the xcfun/lib directory.

ADF Side:

Once the functional has been added to the xcfun source and the XCFUN library recompiled, the following steps need to be followed to add the functional.

An entry for the functional must be added to the XCComponents.dmod1 file (InitXCComponents routine) and also to the build_from_x_string (exchange functional) or build_from_c_string (correlation functional) or build_from_x_string_Yukawa (range-separated exchange functional) in the XCDescriptorUtilModule module. The name analyzed in the XCDescriptorUtilModule routines comes from the appropriate routine in the libtc/xc/ModelDataParse.dmod1 file that includes routines that read the XC input block. The other parameter is the one defined in XCFUN and stored in xcfun_autogen.dmod1.

Note that at this time XCFun does not evaluate some (meta)GGA hybrid functionals (e.g B3LYP). These can be evaluated provided all of the pieces are available from XCFUN (Slater exchange, Becke 88 exchange, VWN5 correlation and LYP correlation in the case of B3LYP) and put together at the ADF level in the xchybrid routine. So, when calculating a new hybrid functional using XCFUN, some further modifications need to be added to the XCFUN part of the xchybrid routine.

r35389: ReaxFF improvements and bug fixes:

Eliminate global limit on the number of atoms. The limit of 100000 atoms per processor is still in place.
Add an option to scale the system up by creating a supercell via control file reptx, repty, and reptz parameters.
Fix some bugs for unit cell sizes less than 10 angstrom.

r34956: Database in ADFinput has been extended with zeolites and crystals

r34898: COSMO-RS support in ADFinput has been removed

r34769: ADF: TDDFT unrestricted calculations with spin-orbit coupling included

Excitation energies can be obtained for open-shell systems in a spin-unrestricted TDDFT calculation including spin-orbit coupling. This approximate method uses a single determinant for the open shell ground state. The Tamm-Dancoff approximation (TDA) is needed and symmetry NOSYM should be used. Best is to use the noncollinear approximation. For analysis it is advised to calculate the molecule also with the scalar relativistic spin-restricted method and use it as fragment in the spin-orbit coupled calculation. This will make it easier to identify the excitations.

Relativistic spinorbit ZORA
Symmetry Nosym

Note that this approximate method for open shell molecules is not able to show the subtle effects of spin-orbit coupling. Some of the reasons are the approximate nature of the XC functionals for open shell molecules, the single determinant that is used for the open shell ground state, and that only single excitations are included in the excitation. If one does not include spin-orbit coupling the spin-unrestricted TDDFT approach introduces spin-contamination such that the result does not represent transitions between pure spin states. Inclusion of spin-orbit coupling will not simplify this. However, if spin-orbit coupling is large, then this method may help to identify excitations.

Note that the approximations made in this approximate method are much worse than for spin-orbit coupled TDDFT for closed shell systems. In that case one can get a reasonable description of the subtle effects of spin-orbit coupling, for example, for the zero-field splitting of a triplet excited state.

r34696: Contributions from low (less than 20 1/cm) frequencies to entropy, heat capacity and internal energy

These contributions have always been excluded from the total values for thermodynamical quantities listed above. Now they are also listed separately so the used can add them if they wish.

r34672: Add an option to store individual hydrogen bond parameters to the kf file

To use the feature, set dumphb to 1 in the control file. To get a list of hydrogen bonds at iteration 100 after a calculation, use the following commands:
adfreport reaxout.kf "History%strong Hbond atoms XHO 100#6d##3"
adfreport reaxout.kf "History%strong Hbond energy 100#12.5f##1"
The first command will get you atom triples for each hydrogen bond and the 2nd command will get you the corresponding energies, in kcal/mol. In each atom triple, the 1st atoms is the acceptor, 2nd - the H and the 3rd atom is the atom bonded to H.

r34666: ADFspectra now shows normal modes in own window

In addition to the commands and shortcuts mentioned in the view menu, you can increase or decrease the amplitude of the normal mode with arrow up or down. Arrow left and right go to the previous or next mode.

r34494: Default integration option in ADF changed to Becke

The default integration option in the molecular ADF program is changed to the fuzzy cells quadrature scheme, also known as the Becke grid. The default quality of the Becke grid is normal. It can be changed with the block key BECKEGRID:

 Quality {weak|normal|good|very good|excellent}

The cellular Voronoi quadrature scheme, implemented by te Velde and Baerends, was the default in the ADF2012 version and before, and is still the default in BAND. A Becke grid of normal quality is roughly equivalent to INTEGRATION 4, and a Becke grid of good quality is roughly equivalent to INTEGRATION 6, with roughly the same number of points.

The use of the Becke grid improves geometry optimizations, compared to the use of the Voronoi scheme. The reason is that the Becke grid is smoother than the Voronoi grid, when one compares the grid of two different, but close, geometries. This means that the error in the gradient varies less randomly in case of the Becke grid.

If the NOBECKEGRID key or INTEGRATION (block) key is used, the Voronoi grid is used.


r34024: add some trajectory formats to adfreport for rxkf files

Now you can generate a PDB, xmol or gro trajectory file out of the .rxkf result file using adfreport.

Run adfreport -h on the command line for detailed instructions

r33926: ADF: finite nuclear magnetic dipole

In case one uses a finite nuclear model for the charge distribution, now ADF also uses a finite distribution of the nuclear magnetic dipole moment for the calculation of the A-tensor (nuclear magnetic dipole hyperfine interaction).


r33805: ADF: ScalableSCF module added

The new (still experimental) ScalableSCF module has been added to ADF. This is an almost complete rewrite of the SCF procedure using distributed matrices. It is supposed to scale much better in parallel than the original SCF and it also writes less data to disk during SCF. Currently it is not yet compatible with spin-orbit calculations and may have issues with some exotic features.

The ScalableSCF can be turned on by setting the SCM_USE_ScalableSCF environment variable to "yes".

r33761: ADF: electron transfer integrals with FDE

This implementation makes it possible to calculate electron transfer site energies and couplings of FDE-derived charge-localized states, and calculate the charge-transfer excitation energy from a two-state model that includes the two charge-localized states involved in the calculation. Hybrids are not supported. Example $ADFHOME/examples/adf/ET_H20_holetransfer

r33710: Add XYZ output to ADFmovie

r33622: For Mac OS X new ADF-GUI application

Double click the app to start the ADF-GUI, double click on files to open them in the GUI, drop files on the app to open them in the GUI, and install license file by dropping it on the ADF-GUI application.

For the packaged version (distributed via the disk image) ADFHOME is included inside the, so the installation is simply to drag the ADF-GUI app to /Applicatons. For the developers version ADF-GUI is in ADFHOME, with a link to that adfhome.

Starting ignored ADFHOME, ADFBIN and ADFRESOURCES, and sets it to its own location. Other environment variables defined in your login shell will be used.

r33569: transport properties: green: wide-band-limit

Implementation of the wide-band limit (WBL) in the green program which can be used to calculate the density of states (DOS) and transmission of molecules connected to semi-infinite contacts. In the wide-band limit (WBL) the coupling to the leads is assumed to be independent of energy. Therefore one does not need to calculate any self-energies. This also means that the eigenspace of the Green's function is independent of energy. It can therefore be diagonalized in advance, greatly speeding up the calculation of the DOS and the transmission.

In the example $ADFHOME/examples/adf/green_Al/ of green, the transmission of benzenedithiol junction in the wide-band limit (WBL) is calculated. In order to model the molecule-metal interface, we do need to include a few gold layers in the calculation. However, unlike before, only a single atomic layer as the principal layer is used. Because a single atomic layer is an unnatural configuration for gold, a minor amount of smearing is necessary to make the calculation converge. The molecule is sandwiched in between the electrodes just like before (see Fig. 2 in the example for benzenedithiol). However, this time each atomic layer of gold gets its own fragment. The reason for this configuration is that if the WBL is used on the entire gold contact the result is an an unphysical coupling to the leads; even the gold atoms contacting the molecule would have a direct coupling to the environment. A much better result can be obtained by only using the WBL on the back-most atomic layer and letting the electrons propagate naturally through the rest of the contact. Because the WBL is computationally so inexpensive, we can easily calculate the DOS and transmission for 10,000 points instead of 1000.

A comparison of the resulting transmission with the calculation with self-energies is shown in the following figure:

green wide-band limit

The WBL shows good agreement with the non-WBL transmission around the Fermi energy (-0.195 Hartree or -5.306 eV). Note that the quality of the WBL depends on the choice of the coupling (ETA). For this particular contact geometry we obtain good agreement for ETA = 0.02 Hartree, but a better value may be found for other electrodes. Finally, the WBL can be incrementally improved by adding more gold layers to the extended molecule. For many layers it converges to the calculation with full self-energies.

r33358: Element 114 is named Flerovium and Element 116 is named Livermorium

Element 114 is now referenced in ADF as Flerovium (Fl), and Element 116 is now referenced in ADF as Livermorium (Lv), following IUPAC. ADF used to reference element 114 as Ununquadium (Uuq), and reference element 116 as Ununhexium (Uuh).

r33262: Default integration option in ADFinput changed to Becke

r33226: Export and import of jobs added in ADFjobs

To make it easier to distribute jobs, you can select one ore more jobs and/or directories in ADFjobs. Next, use the Jobs → Export... command. The selected jobs and directories will be packaged in a compressed tar archive, which is saved with a name specified by the user.

To import jobs, use the Jobs → Import..." command. Select the job archive (with .tgz extension). Next select where to save the imported jobs. A directory with that name will be made and the jobs will be put in it.

r33206: ADF: Excitations as orbital energy differences

Added keyword KSSPECTRUM, which in combination with the block key EXCITATIONS, will calculate excitation energies as Kohn-Sham orbital energy differences. For a given excitation from an occupied orbital to a virtual orbital the oscillator strength is calculated from the the dipole transition moment between this occupied orbital and this virtual orbital. Especially useful for core excitation energy calculations. If KSSPECTRUM is used, it is possible to use fractional occupation numbers in the SCF, like is used in the DFT transition state (DFT-TS) scheme, see, for example, the SCM news item about NEXAFS spectra calculated with DFT-TS. Note: for fractional occupation numbers, typically an orbital is treated in the excitation calculation as if it is fully occupied if the occupation number is 1.5 or more, and it is treated as if it is fully unoccupied if the occupation number is 0.5 or less.

 Lowest 20


keyword to use only orbital energy differences

KFWRITE kfwrite

Subkeyword in EXCITATIONS block key. If kfwrite is 0 then do not write contributions, transition densities, and restart vectors to TAPE21, since this can lead to a huge TAPE21, especially if many excitations are calculated. Default value kfwrite is 3, which means that contributions, transition densities, and restart vectors are written to TAPE21.

r33104: ADFinput: Set Center Of Mass option added

r33101: ADFjobs: Synchronize jobs between machines

If you are working on more then one machine, ADFjobs can now synchronize the jobs between the machines. The hosts to synchronize between need to be defined as a queue.

Synchronization takes place using the Sync with Remote command in the Jobs menu of ADFjobs, or automatically on startup or refresh (see the Preferences for ADFjobs).

r33049: Make ADFinput work with very small screens

If the default ADFinput window does not fit, it will be cut into two windows. Not really easy to use, but at least you can use ADFinput on small screens.

r32885: ADF: linear scaling in calculating HF exchange

Use of distance cut-offs for the calculation of the HF exchange integrals, needed in case of (meta-)hybrids. Can reduce computation time, especially for large molecules.

r32733: GUI: molecule style interface changed

Use the View → Molecule command to change the visualization style (Balls And Sticks, Wireframe, etc) for the selection. If nothing is selected it will change the style for the whole molecule.

All choices from this menu override the visualization style as set per region. To get back to the visualization style per region, select the 'Via Regions' option.

r32721: GUI: change middle and right mouse buttons for translating and zooming

Now the right mouse button can be used to translate, the middle mouse button to zoom. Zooming is also possible with the scroll wheel, or with alt-left.

In the Preferences you can switch the mouse bindings back to the old behavior (right button zoom, middle button translate).

r32657: Calculate fields in ADFview via ADFjobs (in selected queue)

To use this feature, proceed as normal. In the progress dialog you will find controls to redirect the job to some queue via ADFjobs.

You may quit ADFview while the calculation is in progress, the fields will be picked up automatically when you start ADFview again

r32471: Command/Control-F shortcut in ADFjobs to start searching in job list

r32464: Some extra molecules included

Buckyball, Boronbuckyball, a small piece of some nanotube, C24 and C180 fullerences, and Ferrocene, all optimized with ADF (TZP, BP, integration 6)

r32436: ADFjobs now has an archive option

Archiving roughly halves the required disk space for your jobs. When you use a job it will automatically be unarchived.

To archive, use the Jobs → Archive menu command.

If you wish you can unarchive jobs manually via the UnArchive menu command.

r32411: Cleanup command in ADFjobs

The cleanup command deletes files typically not used. You will get a dialog that will give you the option to select what files to delete.

r32362: ADFview now has an option to save calculated fields

When quitting, and files are present that took some time to calculate, ADFview will ask if the fields should be saved. If so, they will be saved in the .results directory for the job.

To clean up the saved files (they can be rather large), use the Cleanup command in ADFjobs (implemented in r32411).

r32272: In ADFview the progress dialog for calculating fields now can show the densf/band log

Press the triangle in front of the progress bar to show the log

r32270: Rename ADFinput, BANDinput etc in SCM menu to New Input

r32240: Close added (cmd-W), Quit to SCM menu (cmd-Q) in GUI

Now cmd-W will close the current window. cmd-Q will quit all GUI windows for the current job.

r31852: JobsOnly view in ADFjobs added

Use the Jobs Only command in the File menu of ADFjobs to get a view of jobs only, not using the directory structure. For this to work, a list of jobs is built. This list is updated when a job is listed in ADFjobs, either when instructed by ADFinput or when the user views a directory in the traditional viewing mode.

Everything seems to be working, though the list of jobs probably should be limited in size in the future.

r31833: ADFjobs now shows logfile for running job in its own window

Please uncheck the show logfile when job start running option in the Preferences. As ADFjobs shows the logfile lines it is not really needed any more.

ADFjobs also shows the warnings and errors in its own window instead of using a balloon. You can turn of the display of the logfile lines, warnings or errors in the Filter menu.

r31833: GUI periodic internals reworked, add bonds between cells

The main rewrite makes display of periodic images much faster.

The GuessBonds routine now also generates bonds between atoms in adjoining cells.

r31513: Important bugfix in shared arrays

ADF may hang due to a deadlock in situations when running in parallel on multiple nodes. The deadlock occurs when some nodes have only one process of a job running while other nodes have more than one process from the same job. The case when all nodes have either multiple processes or a single process from the same job running is not affected by the bug.

r31333: BANDinput: properties at nuclei added

r31240: ADF2012.01 released

r30944: Bug fix ADF ZORA small frozen core U.4f basis set file

r30757: Eigenvector Following in Excited State Geometry Optimizations

In the initial implementation the target state of an excited state geometry optimization was indicated by a number and a symmetry, e.g. A2g 3 or the 3rd state of A2g symmetry. This approach becomes problematic when states cross and the state you are interested in become the 4th A2g state for example. An eigenvector-following option has been added that attempts to alleviate this problem. This option is off by default and is activated by the keyword EIGENFOLLOW in the EXCITEDGO block. When turned on, the state of interest in the first iteration is the same as before. In the second and subsequent iterations the state for which gradients are determined is decided on the basis of the overlap between the transition density of the transition from the previous iteration and the transition densities available in the current iteration. The same symmetry is maintained. Note that this method is not full proof. It assumes that the transition density changes only because of the contributions from the various occupied-virtual orbital pairs change but that the orbitals remain unchanged. This is not necessarily the case. Secondly, the sign of the transition density components is not taken into account.

r30756: Improved Analysis with Hybrids

Improvements to both the ETS and NOCV analysis with hybrids. ETS: Now the exact exchange contribution to the Pauli term is isolated and the contributions to the orbital term are divided amongst orbital symmetries. NOCV: The exact exchange contribution to the Fock operator is included when calculating energy contributions. These changes to not apply do meta-hybrids.

r29830: Bugfix of bug fix r29808 ADF: STCONTRIB in case of hybrids

A previous bug fix in r29808 produced bugs for multidimensional irreps. This is fixed.

r29826: Change default XC in ADFinput back to LDA

r29818: Change default XC in ADFinput to OPBE

r29808: Bugfix ADF: STCONTRIB in case of hybrids

The singlet and triplet contributions for spin-orbit coupled excitations in case of hybrids often failed, due to a bug in the used transformation matrix. Fixed both for the normal excitations (RPA) and TDA.

r29715: Tensor visualization in ADFview added

Via the Properties menu in ADFview, you can now visualize tensor result if they are available

r29663: Bugfix ADF: use of shared memory failed in hybrid excitation energy calculation

Use of shared memory sometimes failed. Solved an error like: Newly added vectors can not be orthogonalized in Davidson algorithm.

r29533: GUI background color: user configurable gradient added

r29485: The Mac 64 bits version (macintel64) has been changed to work with 10.6 and 10.7

The OpenMPI libraries have been updated to make running in parallel possible on Lion.

The 32 bit Mac version has not been updated and will thus NOT run in parallel on Lion.

r29433: Geometry adjustment in GUI modified

By default, changing the distance, angle or dihedral of the selected atoms will result in movement of the smallest group. When you press the control key while using the slider, the order in which the atoms were selected determines which atoms to move.

r29412: Reorganized and fixed QMMM / Quild in ADFinput

Now QMMM is available in the list of program, it no longer is within the ADF section.

Many bugs have been fixed, regrettably it was not possible to keep everything compatible with old inputs. If you open an old QMMM/Quild .adf file, the qmmm, quild and descriptions per region will be removed. All other options (especially your molecule and regions) will be retained.

r29343: Quild geometry convergence units in ADFinput fixed

Quild expects some criteria (step size, convergence) using Bohr, not Angstrom as ADFinput showed.

r29329: Expert option to change the behavior of geometry slider in ADFinput

Normally, when you change a distance, angle or dihedral, the smallest group will move.

If the environment variable SCM_GEOMODSBYORDER has been set, the group to move is determined by the order in which the atoms are selected. The last atoms selected will be part of the moving group.

r29284: Default value CSMRSP changed for TDDFT COSMO calculations

The default value for CSMRSP has been changed, such that TDDFT calculations in combination with COSMO (key SOLVATION) now include effects of the induced electronic charges on the COSMO surface charges. If one includes the subkey NOCRSMRSP n the key SOLVATION these effects are ignored.

r29242: Add Atom Details panel for ADFview

The Atoms Details panel in ADFview (from the View menu) can be used to inspect or change atom properties. These changed properties will NOT be saved!

Except for inspecting the properties, it can be used to set a different color or radius per atom.

r29239: Pre-optimizer in ADFinput - select method with right-click on cod-wheel

r29227: Geometry adjustment in GUI modified

When changing a distance, angle or dihedral with the slider or with the entry box, the smallest group will move, unless both parts consist of many atoms (>100).

r29222: Geometry adjustment in GUI modified

When changing a distance, angle or dihedral with the slider or with the entry box, the last selected atoms determine the group to be moved. This is exactly the opposite as before.

r29206: SCM menu behavior slightly changed

With the SCM menu you can start other GUI modules. Now when you use one of the input builder commands in ADFjobs (thus ADFinput, BANDinput and so on), it will always start a new empty one (no matter if a job is selected or not). For all other modules it will open the selected job. To open the selected job in the input builder, just click the icon in front of the job.

r29192: ZFS added

The ZFS keyword allows the calculation of zero-field splitting. Only the spin-orbit contribution to ZFS is evaluated. Can be used in combination with LDA and GGAs. RELATIVISTIC SCALAR is also required. If the ZFS keyword is present with the SOMCD and MCD keywords then the influence of ZFS is included in the calculation of temperature-dependent MCD.

r29154: Pre-optimizer in ADF-GUI changed

By default, UFF is used. Using the Preferences you can also select SimpleMM, UFF, Mopac or DFTB.

r29113: Calculate nucleus independent NMR shifts with ADF-GUI

Add dummy atoms to your molecule to define the positions, and add these dummies to the list of atoms for which to calculate the NMR shift.

r29104: Read protein structure info from mol2 files, and Properly generate Amber atom types

r29079: Improve terminal determination code in protein part of the ADF-GUI

r28950: Visualization of AIM critical points and bond paths in ADFview

The option is in the Add menu in ADFview.

r28729: State selective optimization excitation energies

The state selective method (key SELECTEXCITATION) can be used to reduce the computational costs of, for example, core excitation energies. In this scheme a guess vector for the orbital transition has to be provided. It should be used in combination with the Davidson method to calculate excitation energies. An overlap criterion is used to follow the wanted eigenvector. This key can also be used in case of spin-orbit coupling. The use of the key SELECTEXCITATION is similar as the use of the key MODIFYEXCITATION. However, the key SELECTEXCITATION can not be used in combination with the key MODIFYEXCITATION. In the state selective method (key SELECTEXCITATION) the one-electron excited state configuration space remains complete, whereas it is reduced in case the scheme with the MODIFYEXCITATION key.

The starting guess vector(s) for the excitation energies can be selected, for example by selecting 1 occupied orbital and 1 virtual orbital.

   UseOccVirtRange elowoccvirt ehighoccvirt
   UseOccRange elowocc ehighocc
   UseVirtRange elowvirt ehighvirt
      irrep orbitalnumbers
      irrep orbitalnumbers
      irrep orbitalnumbers
      irrep orbitalnumbers

UseOccVirtRange elowoccvirt ehighoccvirt

Use only pairs of an occupied and virtual orbital as guess vectors, for which the orbital energy difference is between elowoccvirt and ehighoccvirt.

UseOccRange elowocc ehighocc

Use only occupied orbitals in the guess vectors which have orbital energies between elowocc and ehighocc.

UseVirtRange elowvirt ehighvirt

Use only virtual orbitals in the guess vectors which have orbital energies between elowvirt and ehighvirt.


Use only the occupied orbitals in the guess vectors which are specified.


Use only the virtual orbitals in the guess vectors which are specified.


The name of one of the irreducible representations (not a subspecies) of the point group of the system. See the Appendix for the irrep names as they are used in ADF.


A series of one or more numbers: include all numbers of the orbitals in the guess vectors that are to be used. In an unrestricted calculation the same numbers are used for the spin-α orbitals and the spin-β orbitals.

r28630: ADF: New SCF convergence method LISTi and improvements in the KeepOrbitals feature

r28616: Threshold for counting hydrogen bonds in ReaxFF

Introduce an energy threshold for hydrogen bonds counted in hbond in ReaxFF. The default abs value is 0.1 kcal/mol and can be changed via hbthr control parameter. The computed number of bonds is saved to reaxout.kf in "History%num strong Hbonds ###" where ### is a step number.

r28562: PartialZORA functionality in ADF and NMR

New ADF keyword PartialZora. The argument list is a list of integers specifying fragment numbers in internal ADF ordering. In the construction of the ZORA kinetic energy operator in the default SAPA approximation, the Dirac%TotPot potentials of these fragments are not included in V in the function K=2c**2/(2c**2 - V). In scalar ZORA calculations, this effectively results in this fragment being treated nonrelativistically. For spin-orbit ZORA, the functionality is set up such that fragments in the PartialZora list are treated scalar relativistically. If the option 'nrelso' is given, the fragment potentials are excluded both from the scalar and the spin-orbit ZORA operators. The settings translate into the NMR program for calculations of chemical shifts and g-tensors with a subset of nonrelativistic fragments.

There are a number of restrictions for the PartialZora functionality: 1. 'disabled' atoms must be given per fragment type, not as an atom number. 2. internal ADF ordering of fragments is implied (same as input ordering if atoms are grouped by atom type in the coordinate input section). 3. must use atomic fragments (default with Basis keyword). 4. must use unscaled ZORA in NMR ('calc noscl' in NMR input). 5. ADF prints wrong (scaled ZORA) orbital energies. 6. binding energies printed by ADF are incorrect. For calculated properties this does not matter. 7. NMR must use TAPE10 from ADF ('save TAPE10'). 8. default SAPA ZORA only, not full potential ZORA. 9. not very well tested ... (as always with new code).

r28472: Save and manage structures commands added

In all structure menus (via the benzene like menu button, or the add structure commands in the menus) there are now two extra commands:

  • Save As Structure...: save current molecule as a structure. It will be saved in the user defined SCM_STRUCTURES directory, or in $HOME/.scm_gui/Structures if SCM_STRUCTURES is not defined. The saved file is a minmimal .adf file containing only the geometry.
    If one atom has been selected, the molecule will be translated such that the selected atom will be the origin of the structure. That is special as the atom at the origin of a structure will be uses as anchor point (the point to which a bond will be made).
  • Manage Structures...: open the Structures directory in use in ADFjobs, so users can easily change the name of the .adf files, or add some structure by making directories.

r28371: Save camera position in GUI modules (via View Camera menu)

r28279: Search in ADFinput now finds Molecules

The included molecules is the set of molecules also used for COSMO-RS.

r28198: VectorFields added in ADFview, calculated fields now can calculate the gradient of any scalar field

For example, you can make a calculated field to calculate Electric field (the gradient of the Potential). Next add a Vector Field to visualize the Electric field.

r27850: UFF now also in Quild, also via GUI

r27634: ReaxffInput merged with ADFinput

To use ReaxFF, start ADFinput and switch to the ReaxFF main panel.

r27615: COSMO-RS additions


Menu's in the COSMO-RS GUI have been moved around, with the intention to make it easier to use, and to support the new features. Buttons to run and kill a property calculation have been added.

Ternary mixture (LLE/VLE)

The COSMO-RS module has been extended to automatically calculate properties of a ternary mixture, by calculating these properties for a number of different compositions. In case of a miscibility gap liquid-liquid equilibrium (LLE) data such as tie lines and an approximate phase diagram, are calculated, Activity coefficients, (partial) vapor pressures, and excess energies can be viewed as a colormap in a 2-dimensional plot with 2 of the liquid compositions on the axes. Best used with the COSMO-RS GUI.

Exactly three compounds should be given in the input file.

{Nfrac nfrac}
{isotherm | isobar | flashpoint}


Number of different mixtures for which the ternary mixture is calculated will be (nfrac+1)*(nfrac+2)/2. default value for nfrac is 10, which means 55 different mixtures.

isotherm | isobar | flashpoint

If the subkey isotherm is included (default) a fixed temperature will be used. If the subkey isobar is included a fixed vapor pressure will be used. If the subkey flashpoint is included the flashpoint will be calculated.

Binary mixture miscibility gap (LLE) and azeotropes

In case of the binary mixture property calculation, more information about a possible miscibility gap and possible azeotropes is given.

Composition line

The COSMO-RS module has been extended to linear interpolate between the compositions of solvent 1 and solvent 2, which both could be mixtures, and calculate properties, like activity coefficients, and excess energies. This property calculation does not calculate a possible miscibility gap.

The mole fraction of each compound of the solvent 1 and solvent 2 should be given with the subkey FRAC1 and subkey FRAC2 of the key COMPOUND for each compound, respectively.

PROPERTY CompositionLine
{Nfrac nfrac}
{isotherm | isobar | flashpoint}


Number of different mixtures of the 2 solvents is calculated will be (nfrac+1). default value for nfrac is 10, which means 11 different mixtures.

isotherm | isobar | flashpoint

If the subkey isotherm is included (default) a fixed temperature will be used. If the subkey isobar is included a fixed vapor pressure will be used. If the subkey flashpoint is included the flashpoint will be calculated.

Flash point

The COSMO-RS module has been extended to calculate the flash point (lower flammable limit) of a mixture. The COSMO-RS module, however, does not calculate or predict the flash point of pure compounds. The COSMO-RS method is used to calculate the partial vapor pressures of each compound in the mixture, and it uses Le Chatelier's mixing rule to calculate the flash point of this mixture in the gas phase. Input pure compound flash points should be provided by the user, with the subkey FLASHPOINT flashpoint of the key COMPOUND


Mass fractions

Besides molar fractions, now also mass fractions can be used as input for COSMO-RS.


Enthalpy of vaporization

The enthalpy of vaporization is calculated using the Claussius-Clapeyron equation. It is calculated for a number of properties.

Excess enthalpy

The Gibbs-Helmholtz equation is used to calculate the excess enthalpy of a mixture. Previously it was estimated using the misfit and hydrogen bonding energy of the mixture and its pure compounds. It is calculated for a number of properties.

r27489: BANDinput merged with ADFinput

All functionality of BANDinput is now merged with ADFinput. To get it, select the BAND panel on the right.

r26589: GUI modules notebook reorganized

The left menu now selects the type of job to be generated. Settings made in other main types will be ignored in your job.

To get back to the main options for the method selected, hit ESC or double click the menu.

r26589: Stereo options in GUI improved

The stereo options (in the View menu) now include Red Cyan and Green Magenta. Also the color intensity for these types have been reduced to improve the stereo effect.

r26367: KF Browser added

An experimental GUI module has been added to browse through the raw data on KF files (like the .t21 result files). Start it from the SCM menu, or via the command line (kfbrowser), or by control-clicking on a file name in ADFjobs. It is not certain yet if the kf browser will be make it into the released version of ADF.

r26183: COSMO-SAC implementation

The ADF COSMO-RS program can calculate activity coefficients using the COSMO-SAC model, based on [1] and [2]. Like in the COSMO-RS method, pure compound vapor pressures can be given as input, for example, if experimental values are available. Note that if these values are not specified then the pure compound vapor pressure will be approximated using the COSMO-RS method, and not using the COSMO-SAC method. Thus only the activity coefficients are calculated according to the COSMO-SAC method. The COSMO-SAC parameters were not reoptimized for use with ADF COSMO result files.

ADFcrs: Select CRS → COSMO-SAC to select COSMO-SAC instead of COSMO-RS. CRS command line program: to use COSMO-SAC include the key COSMOSAC in the input for CRS, and set the COSMO-SAC parameters with the block key SACPARAMETERS:

  aeff 7.25
  fdecay 3.57
  sigma0 0.007
  rn 66.69
  qn 79.53
  aes 6525.69
  bes 1.4859e8
  cohoh 4013.78
  cotot 932.31
  cohot 3016.43
  omega -0.212
  eta -9.00

See Ref. [1] for the meaning of the COSMO-SAC parameters. The last 3 parameters are COSMO-RS parameters, that can be set with the block key SACPARAMETERS. Other general COSMO-RS parameters are not used in ADF's COSMO-SAC implementation. Omega and eta are used for the calculation of pure compound vapor pressures. HB_NOTEMP is included, since in the COSMO-SAC method [1] and [2] the hydrogen bonding term is not temperature dependent. In addition the element specific COSMO-RS dispersion constants that are used to calculate pure compound vapor pressures can be set with the block key DISPERSION. Only the value of the COSMO-RS parameter eta was reoptimized for ADF COSMO-SAC calculations.

[1] C.M. Hsieh, S.I. Sandler, S.T. Lin, Improvements of COSMO-SAC for vapor-liquid and liquid-liquid equilibrium predictions Fluid Phase Equilib. 297 (2010) 90-97 doi:10.1016/j.fluid.2010.06.011

[2] S. Wang, S.I. Sandler, C.C. Chen, Refinement of COSMO-SAC and the Applications Ind. Eng. Chem. Res., 2007, 46 (22), pp 7275-7288 doi:10.1021/ie070465z


Some COSMO-RS parameters were reoptimized for MOPAC PM6 COSMO result files. Compared to the default COSMO-RS values a few COSMO-RS parameters were reoptimized to improve the calculation of a number of partition coefficients, when compared to experimental values.

ADFcrs: Select CRS → COSMO-RS, and select 'COSMO-RS 98 MOPAC PM6' parameters. CRS command line program: include the key CRSPARAMETERS:

  rav 0.400
  aprime 1550.0
  fcorr 0.0
  chb 8400.0
  sigmahbond 0.00978
  aeff 5.96
  lambda 0.135
  omega -0.212
  eta -9.65
  chortf 0.816

r26116: NMR scaled ZORA factor changed slightly

The inclusion of the scaled ZORA method in the calculation of NMR chemical shifts has been changed slightly, to be consistent with a different way of including the scaled ZORA energies. This has a (small) effect on the calculated absolute chemical shieldings, mainly on heavy elements.

r26027: New functionality for EPR parameters (CPL, NMR); Vignale-Kohn functional in AOResponse; Misc

ZORA functionality has been added to the NMR and CPL programs to calculate g-tensors (with NMR) and hyperfine tensors (A-tensors, with CPL) as second derivatives starting from a scalar ZORA spin-unrestricted reference. Functionality was originally developed in personal branch adftrunk191210. This functionality has not yet been tested extensively. Use of the ESR/EPR functionality that is documented in the ADF User's guide is recommended. Example job in examples/Test/HgF_zora_epr2der

Linear response computations with the Vignale-Kohn functional are now possible with AOResponse. Current-density is generated on the fly but otherwise the computation is based on the time dependent density response. Example job in examples/Test/C2H4_VK_Aoresp_static

Misc. additions to ADF: Enabled restarts from TAPE21 incl. COSMO potential. Added functionality to OCCUPATIONS keyword to deal better with specifying large numbers of fractional occupations. Example job for occupations in examples/Test/Ce_fracoccup

r25985: Mac distribution fixed

ADFLaunch was not working properly, and MKL libraries were not included.

r25883: MOPAC COSMO result files

With ADFinput it is possible to create MOPAC COSMO result files. ADFinput: Draw the molecule, and save the .adf file. Select Right Panel → Method → MOPAC → Solvation method → COSMO-CRS. Press Run to run the MOPAC calculation. A .mopac.coskf file will be saved that can be used as input in COSMO-RS calculations.

r25784: ADF COSMO result files

If ADFinput is used to create ADF COSMO result files, in addition to the .t21 file a .coskf file is created. The .coskf file is much smaller than the .t21 file, but contains all necessary information such that it can be used as input for a COSMO-RS calculation. The saving of a .coskf file can be changed in ADFinput: Select Right Panel → Details → Files (Restart).

r25664: All GUI modules: user interface redesign for selecting panels, and search option for panels

r25367: ReaxFFinput now needs new license

r25238: NBO analysis unrestricted

NBO analysis can partly be performed for open shell molecules.


EXACTDENSITY now implies NEWEXACTDENSITY. Before this change, specifying NEWEXACTDENSITY in the input file would invoke a faster linear-scaling AO-based (as opposed to MO-based) algorithm for calculating the exact density during SCF. Now this algorithm is used automatically when EXACTDENSITY is specified. To use the MO-based algorithm, specify MOEXACTDENSITY in addition to EXACTDENSITY.

r24271: clean up tmp dirs and job dirs after kill or crash via ADFjobs

In most simple cases, no more scratch directories will be left after killing things. However, if you run on a cluster using several nodes the cleanup will not be done on all nodes.

The TAPE13 from the job directory will be saved.

This is an extra clean up: when ADF finishes normally it already cleans up after itself.

r24254: auto-refresh open GUI windows when reactivating and underlying job has changed

For example you have ADFlevels, ADFspectra or some other GUI module open displaying results of your job. Now you change your job, and run it again, WITHOUT closing the GUI modules showing the results. After the job finishes, when you activate any of those open modules still displaying old results they will automatically reload and show the latest results.

This behavior is for all GUI modules, except ADFinput and BANDinput.

r24195: The default value for a non-electrostatic term in case of COSMO changed to zero

The default was that a non-electrostatic term was included in COSMO calculations. This term can lead to inconsistent results if one looks at a reaction profile, for example. Therefore the default value for this non-electrostatic term in COSMO calculations is changed to zero.

r24147: Transition State Reaction Coordinate (TSRC) input changes

The TSRC input has been changed. With this change the order of atoms in specifying TSRC components is no longer important. An extra parameter has been added to specify the factor (and thus also the sign) of a particular internal coordinate in the TSRC. For example:

  DIST 1 2  1.0
  DIST 3 2 -1.0

The above means that the TSRC consists of two distances: R(1-2) and R(2-3). The positive direction of the TSRC is defined as increase of the distance R(1-2) and decrease of the distance R(2-3), which, in turn, means that this TSRC corresponds to atom 2 is moving along the R(1-3) axis.

r23953: Improved optimization in delocalized coordinates

Until now, ADF optimizer used QUILD routines for generating internal coordinates written by Marcel Swart but did not employ their full potential. This led to suboptimal optimization results. Now, generation of internal coordinates has been implemented directly in the optimizer, which results in better stability and performance.

r23871: bug fix for bug introduced in r23525 for spin-orbit coupled parallel hybrid functional excitation energies

r23786: Franck-Condon spectrum added to ADF-GUI

Calculation of the Franck-Condon factors and corresponding spectrum (via the FCF program) have been added to ADFinput and ADFspectra.

r23735: bugfix for importing some CIF files

Some cif files have slightly asymmetric atom positions. Now they are symmetrized.

r23728: calculation of spectrum for Franck-Condon program

Optional input option to the module fcf to print the spectrum.

SPECTRUM freqmin freqmax nfreq

SPECTRUM freqmin freqmax nfreq

If SPECTRUM is included the vibrational spectrum is calculated. A histogram of the spectrum is calculated for the frequency range that is provided on input. The three parameters that define the frequency range are:


minimum frequency for which the spectrum is calculated.


maximum frequency for which the spectrum is calculated.


number of frequencies for which the spectrum is calculated.

r23590: Extra possibility to restrict space for excitations

The key MODIFYEXCITATION could already be used to restrict the space of excitation energies, by allowing only selected occupied orbitals and or selected virtual orbitals in the TDDFT calculations. This key MODIFYEXCITATION with the new subkey UseOccVirtRange can now also be used to restrict the space of excitation energies, by allowing only pairs of occupied and virtual orbitals, for which the difference in orbital energy is between elowoccvirt and ehighoccvirt:

   UseOccVirtRange elowoccvirt ehighoccvirt

r23565: Info menus moved from popup menus to View menu to make them more visible

r23562: ADFinput and BANDinput: Confusing panel-switching menus are gone

To switch panels, use the pull-down menu on top of the panels

r23536: Excited states geometry optimization added to ADF-GUI

In ADFinput, select Geometry Optimization. Next go to the Excitations panel, and select for which excitation to optimize the geometry.

r23525: Numerical issue solved parallel calculation hybrid functionals excitation energies

In parallel calculations, small differences on different nodes could result in non-convergence, or incorrect results. These differences could occur in the construction of the basis vectors in the Davidson algorithm for the TDDFT calculation of excitation energies. So far only seen in case of hybrid functionals. This has been solved.

r23509: Excited state geometry optimizations

The possibility to do excited state geometry optimizations is implemented in ADF. Note that not all aspects of such calculations have been tested thoroughly.

With the keyword EXCITEDGO the gradients of the TDDFT excitation energy can be calculated. Naturally, the EXCITATIONS block must also be included in the input. The excitation energy gradients will only be calculated if the ground state gradients are calculated. Thus, the GEOMETRY keyword is also required.

The gradients of the excitation energy are combined with the ground state gradients to give the gradients of the excited state. These gradients can be used in much the same way as ground state gradients are used. The type of calculation is chosen in the same way as for a ground state calculation. Possible run types are:

  • Geometry optimization
  • Frequency analysis with numerical second derivatives: (analytical second derivatives (ANALYTICALFREQ) are not possible).
  • Linear transit
  • Transition state search
  • IRC calculations may be possible but this possibility has not been tested yet.

In general, an option that applies to a ground state geometry optimization will also apply to an excited state geometry optimization. For example, convergence criteria can be set and constraints can be used. These options are set through the GEOMETRY block as usual. A TDDFT geometry optimization will proceed in very much the same way as a ground state geometry optimization. The major difference will be that a TDDFT calculation will take place after the SCF and before the ground state gradients are evaluated. TDDFT gradients are calculated after the ground state gradients.

Gradients for closed-shell singlet-singlet, closed shell singlet-triplet, conventional open shell and spin-flip open-shell TDDFT calculations can be evaluated. The FORCEALDA option and TDA options should be used with spin-flip calculations.

Not all functionals can be used in combination with TDDFT gradients. The following should work:
GGA: Any allowed combination of the Perdew86, LYP and PBEc correlation functionals and the
Becke88, revPBEx, RPBEx, PBEx and OPTx exchange functionals.

QM/MM TDDFT gradients can be calculated.

Scalar relativistic effects can be included with the ZORA or mass-velocity-Darwin Hamiltonians.

At this time, gradients involving frozen cores, spin-orbit TDDFT and solvation can not be calculated.

TDDFT gradients can take advantage of symmetry but if the point group of interest includes degenerate irreducible representations then all grid points are needed in integration (equivalent to the ALLPOINTS keyword). This situation is detected automatically. This use of the full grid may make it more efficient to use a point group with only one-dimensional irreducible representations where only the symmetry-unique slice is utilized.

Degenerate excitations can be optimized. However, since in reality such degeneracies will be split by a Jahn-Teller distortion it is recommended that the symmetry of the chosen point group be lowered so that the transition of interest is no longer labeled by a degenerate representation. A Jahn-Teller distortion will not occur when the degeneracy cannot be broken by nuclear motion, e.g. for a diatomic molecule.

The EXCITEDGO block key has the following form:

 STATE Irreplab nstate

STATE Irreplab nstate

Choose the excitation for which the gradient is to be evaluated.


Irreplab is the label from the TDDFT calculation.


This value indicates that the nstate-th transition of symmetry Irreplab is to be evaluated. Default is the first fully symmetric transition.

Note that in a numerical FREQUENCIES calculation symmetry is turned off except to reduce the number of points calculated so irrespective of the specified point group Irreplab is A in this case. Care should be taken to ensure that nstate is correct in a frequencies calculation as this number can change when the point group is changed.


SINGLET: A singlet-singlet excitation is considered. The default.
TRIPLET: A singlet-triplet excitation is considered.


The amount of output printed. A higher value requests more detailed outout. Default: Output=0


Some control parameters for the CPKS(Z-vector) part of the TDDFT gradients calculation.


err is a real number that gives the convergence requirement of the CPKS. Default is 0.0001


precon is the maximum number of iterations allowed for the preconditioned solver. Default = 30.


noprecon is the maximum number of iterations allowed for the unpreconditioned solver. Default=200.


Details of the CPKS calculation are printed every iter iterations. Default is 5.

At each iteration of a TDDFT-gradients calculation the excited state electric dipole moment is also calculated. If the Output parameter is 1 or greater then the excited state dipole moment will be printed out.

r23456: COSMO result files for COSMO-RS

The recommended settings to produce ADF COSMO result files, that are going to be used in COSMO-RS calculation, have been slightly changed for reasons of accuracy. New settings are: small core basis sets, integration accuracy 6, scalar relativistic ZORA. These settings will be set if one uses ADFinput to produce the ADF COSMO result file: ADFinput: Main Options → Preset: → Solvent CRS. For atoms heavier than Kr (e.g. Iodine) choose a TZ2P basis set, up to Kr use a TZP basis set.

r23449: COSMO-RS GUI improvements

The COSMO-RS GUI has been improved for easier usage with many compounds. To add more than one compound, use: ADFcrs: Select File → Add Compound(s), which will allow to select a list of compounds or more than 1 ADF COSMO result file at a time, or add a list of compounds if the filenames are listed in a .compoundlist file.
After many compounds are added, a select button can be used in the COSMO-RS GUI which opens a window in which one can easily search a compound, for example, for its chemical formula.

To visualize the COSMO charge density: ADFcrs: Select View → Compounds, select the compound in the left window, and select View → Show Selected Compound, which will popup a ADFview window in which one can select Add → COSMO Surface Charge Density → on COSMO surface points. In this case the compound file must be a .t21 or .coskf file.

r23448: Fast approximation for COSMO-RS calculations

In the 1998 COSMO-RS model each segment of the molecular surface has a charge density of σv, but also a second charge density σv, which is a descriptor for the correlation between the charge density on the segment with its surrounding. In the original ADF COSMO-RS implementation this was treated as a 2-dimensional problem, in the fast approximation this is effectively reduced to 1-dimension. This fast approximation is now the default. This approximation reduces the computation time, especially in cases of more than 1 compound.

r23229: Two changes to MCD routines

The first change is a bug fix. The keyword "EXACTOMEGA" clashed with "EXACT" in the excitations block and caused some unexpected results. "EXACTOMEGA" has been changed to "FULLOMEGA"

The program can now calculate the temperature-dependent MCD due to the breaking of degeneracies of excited states by spin-orbit coupling. Although all temperature-dependent MCD is typically called "C terms", the parameters associated with the MCD are labeled "CE" to distinguish them from the MCD due to mixing between states caused by spin-orbit coupling that is labeled "C". The CE terms have a derivative shape like A terms. They have the same temperature-dependence as normal C terms. If they are present, CE terms are calculated automatically along with C terms if the keyword SOMCD is included in the input.

r23276: SMILES as input for the GUI

If you have a SMILES representation of your molecule, copy it and paste it in the drawing area of ADFinput, BANDinput or REAXFFinput.

The corresponding molecule should appear. It often works, not always...

The conversion from SMILES to 3D structure with hydrogens is performed by OpenBabel.

r23269: with ADFinput, align your molecule with the X,Y,Z or XYZ axes

r23260: improved Bases Set selection and feedback in ADFinput

If you go to the Basis panel in ADFinput (for example by clicking on the right-arrow next to the Basis set menu), you can specify per atom type what basis set to use. This is not new ...

New: when you move your mouse over any of the atom types the help balloon will tell you what basis set will be used with the current input options.

New: for each atom type, there is now a basis set selection menu. Click on the arrow, and a menu will show all available basis sets. They will be grouped by core type. All basis sets in atomicdata for your atom type will be available.

r23242: improved Guess Bonds in GUI

The Guess Bonds routine determines bonds and bond orders for your system. It used to do this via OpenBabel, which in practice was inaccurate and for big systems extremely slow.

Now our own algorithm is used again, with some new code that also determines the bond order.

r23195: Copy / Paste works between GUI modules also for molecule structures

You can now copy and paste your molecule (or part of it) between ADFinput, BANDinput and REAXFFinput. In that case all info will be copied, including bond details and lattice vectors (if any).

You can also copy some xyz coordinates (for example from and ADF output or logfile), and paste it in ADFinput, BANDinput or REAXFFinput.

r23171: gradients and frequencies ZORA improved

Improvement in the calculation of gradients. There is and was a slight mismatch between the energy expression and the potential in the ZORA approach, which has the effect that the geometry where the gradients are zero does not exactly coincide with the point of lowest energy. The differences are very small, but not completely negligible. For bonds involving heavy elements this could be in the order of 0.001 Angstrom, the introduced improvement reduces this to order 0.0001 Angstrom.

Improvement in the calculation of analytical frequencies. The accuracy of the calculation of analytical frequencies using the large QZ4P basis sets for heavy elements, like uranium, has been improved a lot.

r23091: DFT-D3 functional in ADF and Band

Grimme's latest (and final) empirical dispersion correction, known as DFT-D3, is available for ADF and Band. It is invoked with the XC block, for example

  Dispersion Grimme3

r23063: Improve and extend A-DIIS

The A-DIIS scheme has been extended to support relativistic Spin-Orbit SCF. Besides, it is now possible to set two threshold values for A-DIIS, see below.


Here, a1 and a2 (a1 > a2) correspond to values of the maximum element of the [F,P] commutator matrix, ErrMax. If ErrMax ≥ a1, only A-DIIS coefficients are used to determine the next Fock matrix. If ErrMax < a2 then only SDIIS coefficients are used. For ErrMax between a2 and a1 the total DIIS coefficients are calculated from SDIIS and A-DIIS values weighted proportionally according to the ErrMax value. Thus, the weight of A-DIIS coefficients decreases with the ErrMax value.

The default values for THRESH1 and THRESH2 are 0.01 and 0.0001, respectively.

r23000: Improve numerical stability (meta-)hybrids and Hartree-Fock

Numerical problems have been found with the present implementation of Hartree-Fock or (meta-)hybrids during the SCF, especially if the molecule has symmetry NOSYM and a basis set TZP or larger is used. These numerical problems have been reduced.

r22836: Element 112 is named Copernicium

Element 112 is now referenced in ADF as Copernicium (Cn), following IUPAC. ADF used to reference this element 112 as Ununbium (Uub).

r22590: The A-DIIS scheme has been implemented implemented

The A-DIIS scheme by X. Hu and W. Yang, J. Chem Phys 132, 054109 (2010) has been implemented. According to preliminary test, produces performs similar to the Energy-DIIS scheme but it does not require calculation of the total energy. Therefore it is much faster than E-DIIS. To use the method just specify ADIIS in the SCF input block.

r22578: Transition State Reaction Coordinate (TSRC) implemented

It is now possible to specify a reaction coordinate for transition state search via a TSRC input block, similar to QUILD. This feature is especially useful when an accurate Hessian is not available. In such a case ADF uses an approximate Hessian that can be poor when weak interactions and/or transition metals are involved. What then happens is that the mode with the lowest Hessian eigenvalue does not correspond to the reaction coordinate along which transition state is sought for, thus leading optimization in the wrong direction.

This problem can now be solved by specifying a reaction coordinate along which the transition state is sought for. Such a reaction coordinate can consist of one or more distance, valence or dihedral angle, or just a combination of vectors on certain atoms.

  ATOM i x y z
  DIST i j
  ANGLE i j k
  DIHED i j k l

Here, i, j, k, and l are atom indices, x, y, and z are corresponding components of a TSRC vector for atom i.

Restrictions and notes:

The TSRC feature does not work in combination with the old optimization branch. In general, the old branch is no longer developed so all new features related to geometry optimization work with the new branch only.

The DIST, ANGLE and DIHED specifications should be used in combination with optimization in delocalized coordinates only (i.e. not with Cartesian).

Only one type of the keyword is allowed in a TSRC block. That is, the keys must be either all ATOM or all DIST, etc. Thus, mixing of different keywords is not allowed.

One should be careful when specifying more than one bond or angle as a TSRC. For example, suppose atom 2 is located between atoms 1 and 3. Then the following TSRC block:

  DIST 1 2
  DIST 3 2

means that atom 2 is hopping between atoms 1 and 3, while the following input:

  DIST 1 2
  DIST 2 3

means that atom 2 stays more or less put and the reaction coordinate is determined by the distance between atoms 1 and 3.

r22435: NMR spectra added to ADFspectra

First primitive implementation: only shieldings are shown in the spectra.

r22425: ADF COSMO surface numerically more stable

The surface construction for all types of COSMO surfaces has been made numerically more stable, by merging close lying COSMO surface points. The calculation of the Fock matrix elements has also been made more stable in case of coincidental close lying integration points with COSMO surface points.

r22357: ADFview now displays a progress indicator when calculating a field

r21996: ADF: Added NUM and DISRAD parameters to RAMANRANGE and SCANFREQ keywords

It is now possible to set the numerical differentiation parameters in the arguments for the RAMANRANGE and SCANFREQ keywords. The parameters that can be changed are NUM and DISRAD. They have the same meaning as the corresponding arguments of the FREQUENCIES keyword in the GEOMETRY input block. The complete RAMANRANGE or SCANFREQ keyword can now be specified as follows:

RAMANRANGE LowFreq HighFreq NUM=num DISRAD=disrad

You can write SCANFREQ instead of RAMANRANGE. Num is an integer number specifying how many points are to be used for numerical differentiation: 2, 4, or 6. The default value is 2. Disrad specifies the step size (in Angstrom) to be made in each direction for 2-point differentiation. For the 4-point differentiation the maximum deviation from the equilibrium geometry will be twice as large as for the 2-point one and so on. The default value for disrad is the same as used for numerical frequencies.

It should be noted that the 4-point differentiation is twice as expensive and the 6-point is three times as expensive as the 2-point one.

r21502: ADF COSMO Delley surface numerically more stable

r21209: SSB-D gga and metagga added to ADFinput

r21094: Fix2009 created

r20722: Bug fix ADFjobs: list of local and remote files was sometimes messed up

The problem only showed when the job name contained characters like + or . (dot).

r20639: Bug fix ADFinput: pre-optimizer did not run any more

r20560: Bug fix ADFjobs: handle fragment jobs properly with the sequential queue

r20275: Visualization of MCD spectra added to ADFspectra

After performing an MCD calculation, you can visualize the results using ADFspectra. The A Terms are not included (but visible in the balloons)

r20208: Bugfix: ADFinput could no longer open a .adf file

The bug was introduced in r20183.

r20183: Raman option with AORESPONSE added to ADFinput

This Raman option is compatible with the lifetime option.

r20161: Bugfix ADFinput: allow saving of input scripts with explicit pre-existing fragment files

r20156: NBO uses FULLFOCK, and remove fock NBO option

r20117: ADFjobs key shortcuts added

  • ESC: clears the selection (easy to start new ADFinput)
  • F5: refresh

Menu commands for the same functions have also been added, mainly as a visual reminder of the shortcuts

r20102: SCRF (MEAD) added to ADFinput

r20093: MCD added to ADFinput

r20050: Bug fix Ghost atoms with frozen core basis set

r20020: Bug fix spin-orbit coupled excitation energies hybrids

r19753: Added MetaHybrids and MetaGGAs to ADFinput

r19682: Added ARHOPTIONS keyword to the SCF block

It is now possible to specify ARH options without turning on the method itself unconditionally. The ARHOPTIONS keyword has the same arguments as the ARH key (see below). With this modification it is now particularly useful in combination with an ALLOW ARH keyword.

r19648: In the ADF-GUI hybrids can now be used with LT, IRC, TS and frequencies

r19638: NOCV densities and sum densities added to ADFview

r19627: Time-dependent Hartree-Fock for excitation energies

Excitation energies can now be calculated using time dependent Hartree-Fock (TDHF, also called RPA). All electron basis sets should be used. For hybrids the Hartree-Fock percentage times the Hartree-Fock kernel plus one minus the Hartree-Fock percentage times the ALDA kernel is used. It is possible to use the Tamm-Dancoff approximation (TDA). Spin-orbit coupling can also be included. Note that these calculation can be very time-consuming. Example input:


Because of the way ADF is fitting the Hartree-Fock exchange part, the AddDiffuseFit keyword should be included for extra accuracy.

r19623: NOCV support added to DENSF

It is now possible to use DENSF to calculate ε*φ2 values of Natural Orbitals for Chemical Valence (NOCVs). Additional information on NOCVs is available in this paper.

The relevant part of the DENSF input is as follows:

For spin-unrestricted:


For spin-restricted:


N1, N2, etc. specify sequential numbers of the orbitals for which ε*φ2 is to be calculated.

Alpha and Beta specify that the numbers that follow refer to spin α and β, respectively. Both Alpha and Beta are optional, Alpha being assumed if omitted. The NOCV input block must be closed with "END".

Alternatively, one can specify to calculate all (alpha- or beta-) NOCV's:

For spin-unrestricted:


For both spin-restricted and spin-unrestricted:


The last and probably the most convenient form of the NOCV input blocks lets one to specify an NOCV eigenvalue threshold as a criterion for selecting orbitals:

For spin-unrestricted:

   THRESH threshold
   THRESH threshold

For both spin-restricted and spin-unrestricted:

   THRESH threshold

When this form of the input is used, only those NOCVs will be included whose absolute eigenvalue is equal to or larger than the given threshold.

r19590: Geometry optimization with Hybrids or Hartree-Fock added to ADFinput

r19586: ARH and EDIIS added to ADFinput

r19581: Fully relativistic NMR calculations including hybrids now also possible with ADFinput

r19575: GRADIENT keyword for forces on atoms

A separate keyword has been added to calculate forces on atoms without performing geometry optimization. The keyword is GRADIENT and it is a simple keyword that can be used in a single-point calculation. The calculated forces are printed in the output file both in the standard and in the input orientation, if the latter is different from the standard one. The forces are also stored in the TAPE21 file, variable GeoOpt%Gradients_CART, but then in the standard orientation and with the internal (as opposed to input) order of atoms.

With this change, forces are now also calculated during a single-point analytical frequency calculation.

r19542: Global Font Size setting added to GuiPrefs

Use the Prefs command from the SCM menu to set the font size to be used by the GUI. As with all GuiPrefs, you can see the result by pressing Apply, and make them permanent by pressing Save.

A known bug is that ADFjobs may hang when switching font sizes several times while it is running. To fix the problem, just quit and restart ADFjobs.

r19496: New SCF methods: Augmented Roothaan-Hall and Energy-DIIS

ARH Introduction

The Augmented Roothaan-Hall method has been developed by T. Helgaker and coworkers and is extensively discussed in [J Chem Phys 129, 124106 (2008)]. The basic idea of the method is that the density matrix is optimized directly to minimize total energy. At each step, the new density matrix is parametrized in terms of matrix exponent:

Pnew = exp(-X) Pold exp(X),

here, X is an anti-symmetric step matrix subject to the following conditions:

X = argmin{E(P(X))} - X minimizes the energy
|X| < h - length of X is smaller than or equal to some trust radius

The optimal X is found using a Conjugate Gradient method, possibly with pre-conditioning. The trust radius is updated based on how well the energy change is predicted.

ARH Input

The ARH procedure is invoked using an ARH keyword in the SCF input block

ARH {CONV=conv} {ITER=iter} {NSAVED=nsaved} {START=start} {FINAL} ...

All parameters in the ARH keyword are optional. The following arguments determine the main parameters of the ARH procedure.


ARH convergence criterion. When the RMS gradient and its maximum components are both lower than the criterion, the ARH procedure will be considered converged. The default value is 10-4.


Maximum number of ARH iteration to perform. Please note that in difficult cases a huge number of iterations may be required for complete SCF convergence. The default value is 500.


Determines whether SCF is continued after ARH has completed. If this option is set, one Fock matrix diagonalization will be performed to get orbitals and the SCF procedure will be halted. By default this option is OFF.


Sets the SCF cycle number on which the ARH method is invoked. The default value is 2. Using a larger value may provide a better starting guess for the ARH minimization.


Sets the number of saved density and Fock matrices used for augmentation of the electronic Hessian. The default value is 8. A larger nsaved value should be used in difficult cases when the number of orbitals very close to the Fermi level is large.

The default minimization method is Untransformed Pre-conditioned Conjugate Gradient. The following two parameters may be used to change this.


Disables pre-conditioning during the CG minimization. This option should not be used if atoms heavier than the second-row elements are present.


Specifying this option will enable the use of the Transformed Pre-conditioned CG method, which may result in better SCF convergence in some cases.

At each SCF step, the procedures begins by performing usual CG minimization keeping track of the total step length. If at some micro-iteration the step length exceeds the trust radius, the procedure switches to trust-radius optimization in the reduced space, which, in turn, is halted as soon as the level-shift parameter mu has converged. The final step is then calculated as a Newton step in the reduced space of all the trial vectors generated during CG minimization. The following options may be used to modify this behavior.


Setting this option turns OFF the switching from the normal CG to a trust-radius minimization in reduced space. Using this option helps to reduce the total number of SCF cycles is some cases.


Setting this option will turn ON the trust-radius optimization from the first micro- iteration.


Sets the maximum number of micro-iterations.

The next two options determine the trust radius.


Initial value for the trust radius. Default: 0.5


The maximum trust radius value. This is set to 0.5 by default and should never be changed.

ARH Notes and Recommendations

Restriction: The method currently works for spin-restricted NOSYM calculations only. The NOSYM requirement comes from the fact that during direct optimization of the density matrix it may have a symmetry lower than that of the molecule.

The ARH procedure may be invoked automatically if SCF has trouble converging. To enable this the ALLOW ARH keyword must be specified in the input.

The method requires total energy to be calculated at each step, which makes it much more expensive compared to the standard SCF procedure that does not need or use energy. Therefore, the method should only be used when the standard SCF procedure fails. Another complication caused by the use of the total energy is that somewhat higher integration accuracy may be required to get stable SCF convergence. Please refer to the TotalEnergy keyword for more information.


Energy-DIIS is implemented following publications by Kudin, Scuseria, and Cances. The method is invoked by specifying an EDIIS keyword in the SCF block. Please note that similar to ARH and unlike the standard SCF procedure in ADF this method requires energy evaluation at each SCF cycle, which makes it significantly slower compared to energy-free SCF.


Two calculations have been added to the SCF_Ti2O4 example in the adf directory, one for each of the two new methods.

r19421: New Sequential queue in ADFjobs, is default

The sequential queue is identical to the interactive queue, but only one job will be running at one time. This works only for the local host. If no default queue has been selected by the user, the Sequential queue will be the default queue.

The local batch will now be off if not specified, no matter what queue name.

r19412: Add local batch option in ADFjobs

Now in the queue configuration there is a new field Use Local Batch. If it is 1, or starts with y or Y, the local batch facility via scmd will be used. If it is 0, or starts with a n or N, it will not be used. If it is empty the local batch will be used if the name of the queue is Interactive.

r19409: Local jobs will now only run one at a time

Start as many as you like at the same time, but only one will be executed at the same time. The actual queue is handled by scmd. When you quit all GUI modules scmd will quit, and the queue info is lost.

This feature will currently be used if the name of the queue is Interactive (the default queue name).

r19375: New Symmetrize command in ADFinput (using Symmol)

In the symmetry menu (the asterisk) in ADFinput a new command to symmetrize has been added. It will call Symmol to find the symmetry and enforce it exactly.

Symmol has been developed by Tullio Pilati and Alessandra Forni: T. Pilati, A. Forni, J. Appl. Cryst. 31, 503-504, 1998.

r19356: Alternative Elements option in ADFinput

Using the Atom Inspector, specify a nuclear charge. The corresponding atom will be converted into an alternative element (j-type, see the ADF User's Guide)."

The new element will use the basis for the original element, unless you specify a different basis file explicitly using the Basis panel.

r19352: Ghost atoms no longer need special basis file

When you use ghost atoms within your ADF calculation, ADF will read the basis file that you provide as usual. However, the core section will be skipped automatically. That is, even if the basis file specifies a frozen core ADF will treat it as if no frozen core is present. Thus, one no longer needs to edit the basis files, or to switch to all-electron basis files to use ghost atoms.

The BASIS key used to switch to all-electron basis files for ghost atoms. This has been changed, now it uses the same basis file as would have been used for the non-ghost atom.

r19343: bug fix hybrid optimizations

Bug fix hybrid optimizations for large molecules or large basis sets.

r19341: Modify Start Potential in ADFinput

You can find it on the Spin and Occupations panel.

r19288: Atom pop-up menu allows easy generation of Ghost atoms

Atoms can be converted into ghost atoms, or the other way around, using the pop-up menu that appears with a right click on an atom. The ghost atoms will be added to a new region called Ghosts.

r19278: Option to change atom type in ADFinput

Using the Atom Inspector, you can now change the atom type (for example, change C into C.dzp).

One application is to specify a different basis for atoms of the same element. Another application is to change an atom into a Ghost atom (make the name start with Gh.)

r19270: Regions panel has Split By Molecule

After defining a region, click on the arrow to the right of the region. A pull-down menu will appear with a Split By Molecule command.

If you use it, the corresponding region will be split into many regions by molecule: one molecule per region. Currently it is assumed that all of these molecules are identical! Thus, their names indicate that they are all replicated versions. This is actually used if you perform a Fragment analysis, or with a FDE calculation.

For example, if you add a solvent with explicit molecules you will get one region with all solvent molecules. Next, use the Split By Molecules command and you will get many regions, one for each solvent molecule, and all these regions are replicas of one solvent molecule. If you use this with a FDE calculation.

This feature was available in the GUI for some time, but was not added to the Change Log.

r19257: Total Energy in ADF-GUI, and panel pulldown reworked (was too long)

r19237: Bug-fix ADF: Currentresponse for multidimensional irreps gave stopit

r19229: Local Axes and Force Field stuff added to Atom Inspector in ADFinput

r19199: ADF-GUI Bader properties were visualized on wrong atoms

In some cases (if the internal order of atoms in ADF differs from the input order) the Bader atomic properties were displayed for wrong atoms (the atom reordering was neglected).

r19154: COSMO-RS bug fix boiling point and isobar calculations

Clearly wrong negative temperatures (in Kelvin) could appear in the iterative scheme, typically can happen if the boiling point is low.

r19144: Add Atom Inspector

An Atom Inspector panel has been added to ADFinput.

When you open it you can set details for the individual atoms in your molecule. If no atom is selected, all atoms will be listed. Otherwise just the selected atoms will be visible.

Currently things to set include the radius of the atom (for visualization purposes only), the atomic mass, the number of connectors, the number of lone pairs and the atom color. More atom properties will follow soon.

Some properties could be set via pop-up menus. That functionality has been removed.

r19131: Add menu command in ADFjobs to generate the job script for selected jobs

The job script for the selected jobs will be generated, but will NOT be executed. The jobs script (.job) is identical to what will be generated by the Run command.

Note that the Run command will always generate a new job script, thus if you make any change to the job script the change will be lost. If you wish to make changes, you should try to implement your change in the .run file. That will not be overwritten by ADFjobs (but will be overwritten by ADFinput if you save your set up again).

r19127: Bug-fix ADFinput: spinflip key was not working

r19077: Bug-fix ADFmovie: final bond energy with movies from logfiles could be wrong

When showing results from a logfile, the final bond energy shown in ADFmovie (in graphs and in the main window) was the final LDA bond energy. The correct bond energies (including GGA) were missing.

r19010: Bugfix ADFinput

r19004 introduced a major bug for any non-FDE calculation. By mistake the FDE input key was present in all jobs generated by ADFinput. This has been fixed.

r19004: FDE (Frozen Density Embedding) has been added to ADFinput

To use: set up a regular fragment calculation using the Regions and Fragments panel. Next, use the FDE panel to select which fragments to freeze.

In the fragments panel you can select an existing .t21 file instead of creating the fragment from scratch.

Currently FDE calculations are only possible with single point calculations, TDDFT, NMR via the NMR program, and only properties depending on the density. See the ADF User's Guide for details.

r18967: Setup of fragments in ADFinput has been changed

Now any region that you define will be used as fragment, except for the first region.

r18950: Balloon help can be turned on or off in ADFinput and BANDinput

You can do this using the Balloon Help menu command in the Help menu.

You can also set the default value (used when ADFinput or BANDinput starts up) using the Prefs command from the SCM menu (thus using the GUIprefs module).

r18915: SpinFlip restart option added to ADFinput

You can find it in the Spin and Occupation panel.

r18890: bugfix ADFinput: adfinput refused to read .adf files

A feature introduced at r18679 did break opening .adf files in adfinput. This has been fixed.

r18874: Metahybrid optimizations in ADF

Possibility to use metahybrids during geometry optimizations in ADF. All electron basis sets should be used.


For TPSS and TPSSH moderate integration accuracy for reasonable gradients is sufficient. The M06 functionals need high integration accuracy for reasonable gradients. For heavier elements and if one uses one of the M06 functionals it is also necessary to include the following keyword


Using this key FRAGMETAGGATOTEN the difference in the metahybrid or metagga exchange-correlation energies between the molecule and its fragments will be calculated using the molecular integration grid, which is more accurate than the default, but is more time consuming. Default is to calculate the metahybrid or metagga exchange-correlation energies for the fragments in the numerical integration grid of the fragments.

r18873: M06 bug fix ADF and BAND

Serious bug solved in case one of the M06 functionals is used during the SCF. This bug gave wrong results in ADF and BAND. This bug was introduced in revision number 18016.

r18837: New SpinFlip restart feature for broken symmetry calculations

It is now possible to exchange alpha and beta electrons for selected atoms when performing a restart from a previous spin-unrestricted calculation.

In many cases, one wishes to perform a calculation of a low-spin complex where spin-density is positive on some atoms and negative on the others. It is usually very difficult to achieve SCF convergence if one starts from scratch. Sometimes, the ModifyStartPotential feature helps with this problem but sometimes it does not. A more robust way is to first perform a high-spin calculation and then modify the resulting t21 file by "flipping" the spin on some atoms. This file then can be used to restart a subsequent low-spin calculation.

Such a "flipping" can now be performed during restart by specifying a SPINFLIP keyword in the RESTART input block as shown below:

RESTART high-spin.t21 &
! SpinFlip keyword is followed by atom numbers for which the flipping will be performed

An example demonstrating the feature may be found in the examples/adf/Fe4S4_BrokenSymm folder.

r18824: Optimizations with hybrids

Optimizations are possible for the hybrids. All electron basis sets should be used. It should allow geometry optimization, TS, IRC, LT, numerical frequencies for hybrids. The CPU time of a hybrid geometry optimization is in the order of 40 times a GGA calculation.

r18744: COSMO-RS bug fix binary mixture isobar calculation

r18743: ADFview bug fix LDA ELF SCF

r18718: ADFInput frequency dependent polarizabilities bug fixed

The request frequencies were not written to the input file.

r18688: Open Babel added to ADF-GUI

In ADFinput you can select the Open Babel panel, and start an optimization for your current molecule using obminimize (one of the Open Babel command line tools). You can select which force field to use, for example UFF.

Using the Preferences from the SCM menu, you can also select the obminimize (with UFF) Open Babel tool to be used as pre-optimizer in ADFinput.

Open Babel is (or will be) included in the ADF distribution for many platforms.

r18670: Input amount of Hartree-Fock exchange

For hybrids it is now possible to change the amount of Hartree-Fock exchange in the input. For many hybrid functionals the sum of the amount of Hartree-Fock exchange and the amount of LDA exchange (or GGA exchange) is one. If that is the case, then if one changes the amount of Hartree-Fock exchange in the input the amount of LDA exchange (or GGA exchange) will also be changed, such that the sum remains one. Example:

  Hybrid B3LYP HF=0.25

In this case the amount of Hartree-Fock for the B3LYP functional will be changed to 25% (instead of 20%), and the amount of LDA exchange to 75% (instead of 80%). The LDA correlation and GGA exchange and correlation part will be left unaltered.

r18626: Mössbauer spectroscopy

The electron density at the nuclei is calculated. This could be used for the interpretation of isomer shifts in Mössbauer spectroscopy. If EFGs are calculated (with the keyword QTENS) for 57Fe, 119Sn, 125Te, 193Ir, and 197Au, quadrupole splittings are written in units of mm/s, used in Mössbauer spectroscopy.

r18621: bug fix diagonal element exchange matrix for anti-symmetric density matrix

r18556: Added dispersion parameters for elements Cs-Rn (55-86)

Values for dispersion parameters for DFT-D functionals for heavier elements have been added. These new values have not been tested. Their use can be disabled by specifying NOHEAVY argument in the DISPERSION keyword.

r18343: fix packaging mistake: ADFdos was missing from the distribution

r18334: Added Partial Vibrational Density of States (PVDOS) to ADF

PVDOS factors for every atom and every mode are now written to TAPE21. PVDOS factor for a given atom is the ratio of this atom nucleus kinetic (vibrational) energy to the total vibrational energy of all nuclei, for a given mode. This has connection to the Nuclear Resonance Vibrational Spectra (NRVS) experimental technique which records PVDOS for Mossbauer-active nuclei.

To visualize the calculated PVDOS use the ADFspectrum program: select the PVDOS spectrum type. Next select one or more atoms to get the PVDOS spectrum generated by the selected atoms.

r18320: bugfix densf: ADFview could visualize nothing from .t21

Only the molecule was showing, and .t41s could be visualized. The bug was introduced beginning of December in densf.

r18290: bugfix radialcoregrid

When the radialcoregrid key was used, it was not propagated to the create runs when using the Basis key.

r18197: Changed movie saving in ADFmovie to MP4 instead of MPG

Also, if you have a looping movie (like a normal mode), the resulting movie will contain 10 iterations instead of just one. The effect is that the final movie will run more smoothly.

r18135: Added Python Interpreter and Foray Build Tool

An embedded Python interpreter has been added for Mac and Linux (32-bit). The Foray build tool has also been included. Details on how to use these tools have been added to the file documentation/text/Foray.text.

r18016: Meta-Hybrid implementation in ADF

SCF implemented for the metaHybrids M06, M06-2X, and TPSSh. All electron basis sets should be used.


r17989: Analytical frequencies for LDA PW92 implemented

LDA PW92 is supported for analytical second derivatives.

r17937: use OpenBabel to guess bonds

When OpenBabel is available within the ADF distribution, it will be used to guess the bonds. This should give more reliable results then the previous GuessBonds code, and should return proper bond orders as well.

r17890: bug-fix QUILD: set up was not properly saved

r17870: bug-fix QUILD: convergence parameters for Quild were not handled properly

r17838: Open shell spin-orbit (non-)collinear MetaGGA in ADF

SCF and optimizations are now also possible for the metaGGA's M06L and TPSS in case of open shell spin-orbit coupling in the (non-)collinear approximation. All electron basis sets should be used.

r17784: DOS module for the ADF-GUI added

The DOS module is the old BANDdos module that does no longer exist. The DOS module can handle both ADF and BAND result files (.t21 and .runkf).

The name of the executable is adfdos.

When opening a BAND runkf file, it works exactly as BANDDos used to do.

With a .t21 file from ADF the total dos (TDOS), or the GPDOS for selected atoms and optionally spdf-shells per atom (just as BANDdos did). Thus, the behavior with ADF and BAND result files is identical.

Technically the DOS module uses the dos program when handling .t21 files. For a detailed explanation of the total dos and GPDOS see the manual for the dos program.

r17780: Add Mopac option for use with Quild in ADFinput

To use, set up a quild calculation and choose Mopac as description in the Quild panel. Use the Mopac panel to set the details if anything non-standard. Note that you need to use Mopac2009 or later.

r17768: Bugfix ADFmovie: bond distance info failed when bonds were created or destroyed during movie

r17732: Add MM option for use with Quild in ADFinput

Currently, the MM program can only be run as part of Quild. The MM program used is the NewMM program distributed with ADF. The input generation is currently not fool-proof, so the user must check the MM input, make sure the force field used is correct and so on.

It has been tested on small organic systems containing C, H and O atoms only.

r17715: Add interface for Quild and Solvent molecules

Use the Regions panel to define regions. Not all options have been implemented yet.

Use the Quild panel to set up a quild calculation. The input descriptions for the subsystems are available from the button bar on the bottom.

To add explicit solvent molecules, give the command in the Solvent panel. Alternatively one can use the pull-down command in the Regions panel to add the solvent molecules to a particular region.

The newly created molecules will just be part of your usual input, or you can use Quild to give the solven a different treatment.

r17710: Mopac and DFTB interface improved

You can use the pre-optimizer with either of these methods, as before. Now you can also make detailed changes to the Mopac or DFTB input, run that set up interactively or as part of your job.

r17674: Density of States (DOS) utility enhancements

The DOS utility has been improved in many ways including much more simple input and speed improvements. There has also been a bug fixed that affected pdos values calculated on the SFO basis.

Changes to the input file format

Comments in the input. The DOS utility now recognizes ADF-style comments in the input file. Any line beginning with an exclamation mark "!" or a double colon "::" is considered a comment and is ignored.

TAPE21 keyword. An optional TAPE21 keyword has been added. It can be used to specify a result file from an ADF calculation instead of copying it to the current working directory:

TAPE21 /path/to/t21/file.t21

If this keyword is omitted, DOS will read the molecular data from a TAPE21 file in the current directory, the same as before.

Number ranges. It is now possible to use ranges of numbers in the SFO and BAS specifications inside the PDOS, GPDOS and OPDOS keywords. For example, instead of specifying a long list of consecutive BAS functions as

 BAS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
 BAS 101 102 103 104 105 106

one can write it using ranges, which is completely equivalent:

 BAS 1:16 101:106

ATOM and ATYPE keywords. New keywords have been added for specifying sets of functions inside the PDOS, GPDOS and OPDOS input blocks. It is now possible to select functions based on the atom number or type and the type of atomic orbitals. Some examples:

! Select all 3d functions of the first atom
  ATOM 1 3d
! Select all p-type functions of the first atom
  ATOM 1 p
! Select all functions of the first atom
  ATOM 1

Please note that atomic numbers are specified in the input order (as opposite to the ADF's internal atom order). Below are some examples of selecting atom types, which is equivalent to specifying all atoms of the same type one by one.

! Select all functions of all platinum atoms
! Select all f-type functions of all platinum atoms
  ATYPE Pt f
! Select all 6s functions of all platinum atoms
  ATYPE Pt 6s

Only one ATOM or ATYPE specification per line is allowed but it is possible to put any number of them into one *DOS section, for example:

  ATOM 1 3d
  ATOM 2 p
  ATOM 3

Note 1: Mixing ATYPE and ATOM keywords inside the same block is allowed but it is not allowed to use ATYPE or ATOM keyword together with BAS and/or SFOs.
Note 2: In contrast to the BAS keyword, which produces wrong results when used with d- and f-type functions, using the ATOM and ATYPE keywords in such cases yields correct results. The reason is that the s and p components of d- and f-sets of primitive functions, respectively, are projected out before calculating partial and overlap DOS.

Bug fix in the PDOS of SFOs

In the PDOS values calculated on SFOs, there was a bug caused by the fact that the SFO overlap matrix, as saved by ADF on TAPE21, is not normalized. This does not pose any problem for the GPDOS and OPDOS because the eigenvectors are scaled accordingly so the total result is the same. However, the PDOS formulas assume that the overlap matrix is normalized and thus produce wrong results if it's not. After the fix, the SFO overlap matrix is normalized and the eigenvectors are re-scaled before use.

Speed improvements

The speed of DOS calculations has been greatly improved by using BLAS calls where possible. This yields about an order of magnitude speed-up for a 2000 by 3000 matrix. For example, calculating GPDOS of all 64 carbon atoms of a 161-atomic organometallic complex takes about 8 seconds on a 2.5GHz Intel Core 2 Duo T9300 processor.

r17613: Basis key has option to suppress output of create runs

To change where the output from ADF create runs and the Dirac program goes, use the CreateOutput option. If it is not present, it will go to standard output. The special value 'None' makes it disappear, and any other value will be used as a file name in which to save the output:

CreateOutput None

CreateOutput YourFileName

r17553: MetaGGA during SCF and geometry optimization in ADF

Optimizations are now also possible for the metaGGA's M06L and TPSS. Note: the implementation is still being tested. All electron basis sets should be used. M06L needs high integration accuracy for reasonable gradients. For TPSS moderate integration accuracy for reasonable gradients is sufficient.

r17447: MetaGGA during SCF in ADF

Self consistency of the meta GGA is implemented as was previously done in BAND. Only single points calculations. The available MetaGGA's at the moment are:


r17396: bug fix: PBE functional now default uses LDA PW92 and PBEc from Burke, examples

Bug fixed in bug fix r17379. Examples are updated. Warning: LDA VWN is supported for analytical second derivatives, but not the required LDA PW92, which is not solved yet.

r17379: bug fix: PBE functional now default uses LDA PW92 and PBEc from Burke

Before this bug-fix the 'correct' PBE functional could be obtained with explicitly specifying the LDA PW functional and the correct PBEc correlation functional:


Now this is default if one uses


The old ('incorrect') defaults can be calculated with


r17371: Compiled-in limit on the max number of MPI processes

As of now the max number of processes specified at the configure time has no effect. The library responsible for parallel communication in programs of the ADF package use dynamic memory allocation and thus can handle any number of tasks.

r17333: Bugfix converting KF files

Bugfix converting KF files: now variables can have length greater than the used length after conversion. Before, the variables would be truncated upon conversion to the used length.

r17312: Increase the max number of atoms to 30000

r17293: bug fix COSMO-RS: temperature results for different temperatures

Approximate ADF revision number. COSMO-RS revision number r172. Bug fixed in case more than 1 temperature is calculated in case of 'solvent vapor pressure', 'solubility', and 'boiling point', calculations. Only the results for the first temperature were correct.

r17252: bug fix graphs (xyplot): zooming and translating was broken

r17243: bug fix Bader analysis unrestricted calculation

The alpha and beta density are added and next the Bader analysis is performed.

r17209: Draw help lines in ADFspectra VCD plot

Horizontal lines are now drawn at 60 and 120 degrees. VCD angles within these lines are non-robust modes, those outside these lines are robust modes.

r17118: Plot UI (in ADFmovie, ADFspectra and Cosmo-RS) slightly changed

The main purpose of the change is better and more flexible handling of multiple curves within one plot. This is currently used in Cosmo-RS and ADFspectra (for VCD plots).

To adjust axes details, click next to the axes (outside the plot field). Thus, you have one dialog for the Y axes, and another for the X axes. If a second Y axes is present it also has its own dialog.

To adjust curve details (show points, colors, and so on) or global plot details, click below the X axes as this is combined with the X axes details.

Zooming with the mouse outside the plot window will zoom exclusively the X or one of the Y axes, depending on where the mouse is located.

r17109: Bugfix ADFview: handle many orbitals in field popup menus properly

r17089: ADFspectra now displays the angle in case of a VCD spectrum

r17075: ADFinput now supports setting masses per atom (for different isotopes)

Right click on an atom, and use the pop-up menu to set the mass of that atom (or the whole selection). The masses are used by ADF (using the AtomProps key), and are relevant for frequencies and related data.

r17064: Bug fix ADFspectra: VCD information was not read correctly from .t21

r17057: Add AtomProps key to make it easier to use different isotopes

First make special atomic fragments in the ATOMS block (by modifying the element name). Next, use the AtomProps key to define extra parameters to the CREATE line for particular fragments:

    N         0.000000    0.000000    0.010272
    H        -0.471582   -0.816803    0.407861
    H.D       0.943163    0.000000    0.407861
    H.T      -0.471582    0.816803    0.407861

H.D m=2.014101778
H.T m=3.01604927

 Type TZP

In this particular example the AtomProps is used to set the masses of the H.D and H.T atoms. You can also use it to set the nuclear charge (q), see the create run options in the ADF manual.

NOTE:The AtomProps key can only be used in combination with the BASIS key.

r17030: ADFspectra vertical axes fixed, and option to keep height or area of the peaks constant

r17015: Double click in ADFjobs on .out, .err and .logfile now open in ADF-GUI

To open those files in a text editor, keep the control key pressed while double-clicking these files.

r17010: ADFmovie: option to scale displacements

Now you can scale the normal modes within ADFmovie (the displacements with respect to the molecular structure), either while viewing the movie or while viewing displacement vectors. To do this, use the Scale Displacements command in the View menu.

r17006: ADFmovie: fix displacement vectors

Displacement vectors are mainly used to visualize normal modes via ADFspectra.After showing and hiding displacement vectors, you could not show and hide them again without restarting ADFmovie.

r16981: Create fix2008 branch for ADF2008.01 release

r16741: More changed the way scratch files are handled by the master

The master will create its logfile and TAPE13 files in the cwd but place all other files in its scratch directory. For all tasks: if SCM_TMPDIR is not defined at all then the scratch sub-directories will be created in cwd.

r16658: Bugfixes for Prepare tool in ADFjobs (did not work on Linux)

r16652: Changed the way scratch files are handled

Changed the way scratch files are handled. As of now, instead of appending __<number> each temporary file name is prepended with the temp directory path. This makes copying stuff by the master from the CWD unnecessary and makes SCM_USETMPDIR obsolete. The files are still copied back from the temp dir to $SCM_WD at the end of the run.

r16616: Add ESR A-tensor and g-tensor to BANDinput

r16613: Fix the ADF-GUI (error about restraintsfixed)

Fixes a bug making the ADF-GUI impossible to use, introduced in r16595.

r16558: Fix ADFoutput to handle new geometry optimizer output

r16525: Bug fixes in ADFspectra related to unit changes

r16493: Add visualization of Bader properties to GUI

Atomic scalar properties are now available, just like other atomic charges. Also in the output browser a quick link to the Bader output has been added.

r16488: Bugfix in ADFinput which prevented generation of .run scripts

The bug was introduced at version r16363 ...

r16486: Updated HP-MPI version to the latest available

The HP-MPI library has been updated to the latest currently available: 2.2.7 on Linux and 1.1p1 on Windows

r16385: First implementation of Mobile Block Hessian method added

This is not a user-friendly release, and is largely untested. It calculates the MBH curvatures using finite-differencing on the ADF gradients.

To use this option, choose run type MBH, and give the names of the frozen blocks.

  C 0.0000 0.0000 0.0000    b=b1
  H 0.6316 0.6316 0.6316    b=b1
  H 0.6316 -0.6316 -0.6316  b=b1
  H -0.6316 0.6316 -0.6316  b=b1
  H -0.6316 -0.6316 0.6316  

Symmetry nosym

  mbh b1

r16363: Bader AIM analysis added (the bader panel) to ADFinput

r16236: Normal mode analysis after partial Hessian calculation

Full normal mode analysis is performed after analytical frequencies calculation with a NUC keyword present. This is done to assist users who perform partial Hessian calculations for a subsequent transitions search, to find the mode corresponding to their reaction coordinate.

r16228: Transit option now available in new optimization branch

A transit calculation option has been added in the new optimization branch. This is capable of performing both linear transits, and non-linear transits, and is the default when the 'Linear Transit' or 'Transit' sub-block is included in the 'Geometry' block.

The new transit code works differently to the old: the transit is represented as a sequence of constrained optimizations. A 'Constraints' block is used to delineate the constraints applied at each stage of the transit.

To perform a linear transit, start and end values are supplied.

  angle 2 1 3 start=100.0 end=120.0
  Transit 4
  Optim Deloc

In the example above, 4 stages are required; ADF will interpolate the start and end values supplied for the angle between atoms 2, 1, and 3. Note that 'Transit' can now be used in place of 'Linear Transit', due to the more general nature of the new transit calculations.

Non-linear transits are possible, and can even be combined with linear transits in other coordinates. To perform a non-linear transit in a particular coordinate, explicit values must be given.

  dist 1 2 0.8 0.9 1.1 1.15
  angle 2 1 3 start=100.0 end=120.0
  Transit 4
  Optim Deloc

In the example above, 4 values are given for the distance between atoms 1 and 2. This distance constraint will be applied simultaneously with the linear transit constraints for the angle, with other degrees of freedom optimized at each stage of the transit.

It is worth noting that fixed constraints can also be used in a transit.

  dist 1 2 0.8 0.9 1.1 1.15
  angle 2 1 3 100.0
  Transit 4
  Optim Deloc

In this example, the angle between atoms 2, 1, and 3 will be fixed at 100.0 degrees at all stages of the transit.

Finally, it should be pointed out that 'partial constraints' are used by default in the transit calculations. These constraints are not required to be fully met at each intermediate geometry, but are fully met at the converged geometries. You can use fully converged constraints by supplying the FULLCONVERGE option to the 'Constraints' subblock of the 'Geometry' block (not to be confused with the 'Constraints' block at root level).

r16192: ADF-GUI use lines to show bonds

Check the Bond Lines Only box in the View menu (Molecule Ball&Sticks) to visualize bonds using simple lines instead of tubes. This will speed-up display of large systems.

You can set the default that you like in the Preferences.

r16188: ADFjobs may dynamically import queues from remote systems

You can set up queues on some remote system in the normal way. Next, when you launch ADFjobs on a different machine you can configure it to dynamically load the queues defined on the remote system. To do this, open the Preferences, go to ADFjobs, and specify the host and username for the remote system.

By default ADFjobs will search in the remote .scm_gui directory. This is the location in which ADFjobs normally saves the queue definitions. However, if on the remote machine the environment variable SCM_QUEUES is defined ADFjobs will try to get the queues from $SCM_QUEUES. This makes it easy for a system administrator to preconfigure queues to be used by all ADFjobs users.

r16175: Changes in 'Constraints' input block

The 'NewConstraints' block has now been changed to 'Constraints', and the old 'Constraint' block is now 'LinearConstraints'.

In the 'Constraints' block, constraint values are now optional (where appropriate). For example, if a distance constraint is imposed, and no value supplied, the initial value is used for the constraint. The same applies to other constraints (eg angle, coordinate, fixed atom).

The 'Constraints' block is now also included in BAND, with the same functionality as in ADF.

r16119: Core density and its derivatives from Densf

In order to get frozen core density one should specify CORE after the Density keyword:

Density Core

Similarly specifying CORE after DenGrad or DenHess will tell Densf to calculate the core density gradient or the Hessian, respectively. Please note that in order to get total density gradient and/or Hessian in the same calculation, the DenGrad and/or DenHess keyword must be specified again on a separate line. For example, specifying

DenGrad CORE

will result in both core and the total exact SCF density gradient.

The calculated frozen core density and its derivatives are saved on TAPE41 in the section Core. The variables inside the section are named exactly the same way as the corresponding variables in other sections: Density, DensityGradX, DensityHessXX, etc.

r16038: now has methods that return details of the table of contents of a KF file

r16026: ADFinput now picks up atomic charges after a DFTB preoptimization

r16025: Magnetizability, ORD and polarizability options improved

The different options that used to be present in the Polarizability panel have been reorganized. Also new functionality offered by the AORESPONSE method in ADF has been made available. This includes magnetizability, and lifetime options.

r16025: Raman in ADF-GUI improved

A new Raman panel has been added to make it easier to set up raman calculations (both full and range scan). Also ADFspectra has been fixed to handle raman spectra when symmetry is used.

r16000: DENSF can now read grid as list of points and calculate density gradient and Hessian

When specifying inline grid the Grid keyword should look as follows:

Grid Inline
  x1 y1 z1
  x2 y2 z2
  xN yN zN

Here, x#, y#, and z# are coordinates of points at which requested properties will be calculated. This feature may be used, for example, by external programs to calculate various properties at a number of points exactly and avoid interpolation with its inaccuracy. This feature should be used only when the output file has a TAPE41 format.

The following keywords may be used to calculate partial derivatives of the exact electron density:


In order to calculate partial derivatives of the fitted density, one should add fit after the corresponding keyword:

DenGrad fit
DenHess fit

The calculated properties are saved to TAPE41 in the section SCF variables DensityGrad# and DensityGrad## where # is one of X, Y, or Z. For example, an XY component of the density hessian is saved in SCF%DensityHessXY. Derivatives of the fitted density are saved to variables with names prepended with Fit, for example, SCF%FitDensityHessXY.

r15995: Calculate Frequencies at the end of a geometry optimization or transition state search automatically

At the end of your optimization calculation (either a TS or geometry), you can calculate the frequencies using the analytical frequencies method. To do this, go to the detail tab in ADFinput (use the ... shortcut at the right of the task name in the Main tab), and check the frequencies check box at the bottom of all options.

r15975: Using Hessian from Restart Tape with New Optimizer Branch

You can now use a hessian file stored on a TAPE21 as the initial hessian in a geometry run (eg transition state search) with the new optimizer. The input setup is exactly the same as with the old optimizer, ie, you simply need to use the 'Restart' block.

r15931: NewConstraints are possible in BAND

It is now possible to specify geometry constrains that will be enforced during geometry optimization in BAND the same way as it has been already possible with ADF. The constraints are currently implemented only as 'strict', i.e. they are enforced from the first geometry update. The atoms are numbered from 1 as they appear in input. Note: Should the NewConstraints block be renamed in ADF, it will also change its name in BAND.

The constraints are specified as follows:

  Atom N1  X Y Z          ! Atom N1 is frozen at the specified coordinates 
  Dist N1 N2 Value        ! Distance N1-N2 is kept fixed at the specified value  
  Angle N1 N2 N3 Value    ! Angle N1-N2-N3 is kept fixed at the specified value
  Dihed N1 N2 N3 N4 Value ! Dihedral angle N1-N2-N3-N4 is kept fixed at the specified value

Here, N1,...,N4 are atom numbers as they appear in the input; Value is a value of the constraint in Angstroms or degrees.

r15917: Vibration Frequency Calculations in BAND

It is now possible to calculate vibrational frequencies of atoms in unit cell by means of finite difference method. This is done by specifying:


Options may be specified using a Frequencies input block:

  Step 0.001
  Nuc 1 2 3 4 5

Here, Step sets the finite difference step size in Angstrom (0.001 by default). The Nuc keyword lists atoms that will be included in the frequency calculation, which makes it possible to calculate only part of the second derivatives matrix. For example, this option can be used save time when one is interested in vibrations of an adsorbed molecule by allowing only atoms of the molecule (and possibly the nearest atoms of the surface) to move.

r15894: Partial Hessian option added to ADFinput

Go to the Frequencies panel, select some atoms, and press the + to add them to the list of atoms for which to calculate the Hessian.

r15894: Add constraints for new geometry optimizer to ADFinput

The Geometry Constraints panel can be used to create Atom, Bond, Angle or Dihedral constraints for the new optimizer.

If the old optimizer is used, the Atom constraints will be ignored (for now), and the others will be added as restraints.

r15852: Added examples for the new AOResponse functionality

It is now possible to calculate optical rotation (ORD) spectra using the latest AOResponse functionality by Jochen Autschbach and coworkers. There have been added a few test examples, description thereof follows below.

For details see the following papers:
Krykunov, M.; Autschbach, J., Calculation of static and dynamic linear magnetic response in approximate time-dependent density functional theory, J. Chem. Phys. 2007, 126, 024101-12.
Krykunov, M.; Kundrat, M. D.; Autschbach, J., Calculation of CD spectra from optical rotatory dispersion, and vice versa, as complementary tools for theoretical studies of optical activity using time-dependent density functional theory, J. Chem. Phys. 2006, 125, 194110-13
Krykunov, M.; Autschbach, J., Calculation of origin independent optical rotation tensor components for chiral oriented systems in approximate time-dependent density functional theory, J. Chem. Phys. 2006, 125, 034102-10.
Autschbach, J.; Jensen, L.; Schatz, G. C.; Tse, Y. C. E.; Krykunov, M., Time-dependent density functional calculations of optical rotatory dispersion including resonance wavelengths as a potentially useful tool for determining absolute configurations of chiral molecules, J. Phys. Chem. A 2006, 110, 2461-2473.
Krykunov, M.; Autschbach, J., Calculation of optical rotation with time-periodic magnetic field-dependent basis functions in approximate time-dependent density functional theory, J. Chem. Phys. 2005, 123, 114103-10.
Baev, A.; Samoc, M.; Prasad, P. N.; Krykunov, M.; Autschbach, J., A Quantum Chemical Approach to the Design of Chiral Negative Index Materials, Optics Express 2007, 15, 5730-5741.
Krykunov, M.; Banerjee, A.; Ziegler, T.; Autschbach, J., Calculation of Verdet constants with time-dependent density functional theory. Implementation and results for small molecules, J. Chem. Phys. 2005, 122, 074105-7.

Input options: Property to calculate

By default, the polarizability is calculated. This can be modified using one of the keys below.

Optical Rotation


Specify OPTICALROT to calculate optical rotatory dispersion spectrum instead of polarizabilities.

Optical Rotation with Velocity Gauge


This option should be used instead of OPTICALROT with GIAO if the finite lifetime effects need to be taken into account (LIFETIME option).



Calculate static or time-dependent magnetizability.

Input options: Calculation parameters

Frequency of the Perturbation Field
To calculate time-dependent properties, one needs to specify frequency of perturbation field. This can be done using one of the options below.

FREQUENCY Nfreq freq1 freq2 ... freqN units

Here Nfreq specifies the number of frequencies that follow. The last item on the line specifies the units and is one of EV, HARTREE, ANGSTROM.

FREQRANGE startfreq endfreq Nfreq units

Here Nfreq specifies the number of frequencies in the closed range startfreq thru endfreq. The last item on the line specifies the units and is one of EV, HARTREE, ANGSTROM.

Damping (Resonance Peak Width)


Specify the peak width in Hartree

XC Kernel


Use VWN kernel. This option is the default.


Use Xα kernel instead of the default VWN one.

Technical parameters and expert options

SCF {NOCYC} {NOACCEL} {CONV=conv} {ITER=niter}

Specify CPKS parameters such as the degree of convergence and the maximum number of iterations:

  • NOCYC - disable self-consistence altogether;
  • NOACCEL - disable convergence acceleration;
  • CONV - convergence criterion for CPKS. The default value is 10-6.
    The value is relative to the uncoupled result (i.e. to the value without self-consistence).
  • ITER - maximum number of CPKS iterations, 50 by default.
    Specifying ITER=0 has the same effect as specifying NOCYC.

GIAO - include the Gauge-Independent Atomic Orbitals (GIAO). This option should not be used with damping (LIFETIME keyword) and the VELOCITYORD option should be used instead.

FITAODERIV - use fitted AO Derivatives.

Limit the tensor components to the specified ones. Using this option may save the computation time.


This test example consists of two ORD calculations: a with and without velocity gauge.

This test demonstrates how to calculate static magnetizability of a water molecule.

This test demonstrates how to calculate dynamic magnetizability of a water molecule.

r15824: Added Swiss Cheese gradient smoothing option

A new variant of the standard Voronoi-based integration grid has been added to improve gradient smoothness during geometry optimizations (and other runs where the geometry is varied). The algorithm works as follows: A standard Voronoi-based integration grid is generated, but without the spherical integration regions that usually surround each atom. After this 'sea' of points has been formed, spherical holes are made at the atomic centers by mapping points radially outward (hence the name 'swiss cheese'). These holes are then filled up with more points.

This explains how the grid is generated, but not how it smooths the gradients. When the geometry is varied, the sea of points is conserved. That is, the original positions of the points are stored, and used at each geometry; the points are mapped radially to create the atom-centered holes, but the variation in the positions and weights of the points varies smoothly. The 'balls' of points surrounding each center move with the atoms. So the overall picture is similar to ball bearings moving through a sea of oil: the oil moves aside to make way for the ball bearings, and moves back in to fill any space left behind.

To use this option, you use the 'SMOOTH' sub-block in the 'GEOMETRY' block, and supply as argument the keyword 'SWISSCHEESE'.

   smooth swisscheese

Optionally, you can add an extra decimal argument that gives the maximum distance (in Angstrom) that an atom may move before the integration is regenerated from scratch (default is 0.2 Angstrom).

   smooth swisscheese 0.5

The larger the number given, the more effective the smoothing; however, using a too large number could lead the integration grid to become 'inappropriate' for the system geometry, leading to poor integration accuracy.

WARNING: The radial mapping of points reduces the accuracy of the integration, because it effectively warps the integration space. For this reason, more points are needed when using swiss cheese smoothing. So for the same accuracy parameter, a swiss cheese calculation is more expensive than a standard calculation.

r15818: Show scalar values by atomic radii in GUI

Atomic scalar values (charges, radii, shieldings and so on) can be represented by atom sizes. The absolute value of the scalar values is used, and the full range of scalar values is mapped into the minimum to maximum range from the preferences. No mapping is performed if the scalar values already fit in the range.

r15813: ADFmovie: export to .amv file of current movie added

r15810: Color legend added when atoms are colored by scalars

r15807: Capped-Bonds-Only visualization for molecule added

To use it, check the 'Capped Bonds Only' box in the View menu. Use the bigger and smaller menu commands from the view menu to adjust the diameter of the bond to your taste. Uncheck the 'Show Atoms' in the View menu to remove the caps and get a pipe-representation.

Note that this representation of your molecule makes it very hard or impossible to select atoms.

r15798: Franck-Condon Factors program added

fcf is an auxiliary program which can be used to calculate Franck-Condon factors from two vibrational mode calculations.

fcf requires an ascii input file where the user specifies the TAPE21 files from two adf vibrational mode calculations, carried out for two different electronic, spin or charge states of the same molecule. These calculations can be either numerical or analytical. The number of vibrational quanta that have to be taken into account for both states in the evaluation of the Franck-Condon factors have to be specified.

fcf produces a (binary) KF file TAPE61, which can be inspected using the kf utilities. Furthermore, fcf writes the frequencies, vibrational displacements and electron-phonon couplings for both states too the standard output, including any error messages.

The input for fcf is keyword oriented and is read from the standard input. fcf recognizes only two different keywords and both must be specified to perform the calculation. All input therefore has the following form:

STATES state1 state2
QUANTA l1 l2


The filenames of two TAPE21 files resulting from a numerical or analytical frequency calculation. The calculations must have been performed on the same molecule, i.e. the type, mass and order of occurrence of all the atoms (or fragments) has to be the same in both files.


The maximum number of vibrational quanta to be taken into account for both states. Franck-Condon factors will be calculated for every permutation of up to and including l1/l2 quanta over the vibrational modes.

r15779: GUIPrefs module added

The preferences for all GUI modules are now combined and handled by the GUIPrefs module. Selecting 'Preferences' from the menu (currently the SCM menu, that might change) will start this module.

r15745: Bugfix in SCF Coulomb potential display in ADFview (was a bug in densf)

r15736: Virtual orbitals in ADFview may use a different color scheme by default

Normally when you save the color scheme (using the Color details pulldown menu in the control line for a field) it applies to all colors as before. However, if you are currently displaying a virtual orbital the saved colors will apply to virtual orbitals only. If no special color scheme for virtual orbitals has been saved the same color scheme as for occupied orbitals (and anything else) will be used.

r15730: Atom numbering in the ADF-GUI and BAND-GUI now starts at 1

Now the atom numbers match the atom numbers in the input order of ADF.

r15724: Cube file export in ADFview added

An option to export the fields calculated by ADFview as Gaussian Cube files (.cub files) has been added.

Use the 'Export Fields As Cube Files' command from the File menu to use it.

r15685: BAND changes in DOS

1) Calculate DOS on the fly, preventing an old problem that sometimes more nodes were required to perform this task.

2) Store data for the GUI module BANDdos on the .runkf file.

3) Normally the DOS is evaluated at a grid of energy values with separation Delta using an exact delta function. Plots thus produced look quite rough and narrow peaks can be missing entirely. It is more convenient to integrate the dos over each energy interval Delta E. This leads to a more comprehensible DOS. Very narrow peaks show up as a peak of 1 electron (or multiples of that, depending on degeneracy). The input option is Dos::IntegrateDeltaE. The default is now true. To get the old-style DOS it should be set to false.

r15661: ADFlevels Show Interaction modified

On startup, ADFlevels will show interactions for the visible levels of your final molecule.

If no levels are selected, the 'Show Interactions' menu command will show all interactions to the currently visible levels of your final molecule. This is fast and normally what you want to see. To see also the other interactions from visible fragment levels, you need to select them explicitly and use the 'Show Interactions' menu command again.

If levels are selected, the 'Show Interactions' menu command will show all interactions to the selected levels, no matter if they are visible or not.

r15637: BANDdos module added

Visualize different kinds of DOS when present on a .runkf file. You will need a recent BAND version, and the name of the BANDdos executable is banddos.

The total dos is displayed by default. Select atoms to get the corresponding partial DOS. Use the popup menus on the atoms (right click, or left click and hold) and select some partial DOS by function or L value.

r15622: Color bonds in GUI by atom types

You can change the bond coloring: the colors of the atom types will be used. To activate, check the 'Color Bonds By Atom' check box in the View menu.

In the preferences panel (in ADFinput) you can set and save the default value.

r15585: DFTB Writes Results to KF File

The DFTB code now writes final results to the DFTB.kf file.

r15527: ADFjobs search fields combined

All search terms must occur, and the search is done in the job name and queue name fields.

r1505: Extent MOPAC panel: user can specify any MOPAC key (for experts only)

r15489: Resizing ADFjobs: job name will use additional space

This is useful if you have jobs with long names

r15477: Zooming and Translation added in BANDstructure

Drag with left mouse to translate, zoom with right mouse, control left, or scroll wheel. This is identical to the controls in ADFlevels, ADFspectra and the ADFmovie plots.

r15446: Visualization of NBOs in ADFview added

If they are present on the .t21 file, you can visualize them. Also, the NBOs and NLMOs in the ADFview menus have more informative labels. In ADFinput, use the Orbitals pane to perform the NBO analysis.

r15443: Modifications and additions to the Grimme dispersion-corrected functionals

For description of the first implementation see below under "r15257: Grimme Dispersion Correction". In this revision, a possibility to modify the van der Waals radii scaling parameter has been added. The DISPERSION keyword is now as follows:

DISPERSION {s6scaling} {RSCALE=r0scaling}

here, s6scaling is the global scaling parameter s6 and r0scaling is the scaling parameter for VdW radii, which is equal to 1.1 by default.

This revision also adds all GGA-D energies from the J Comp Chem (2006) paper to the list of Post-SCF y printed with the METAGGA keyword. These are: BLYP-D, PBE-D, BP86-D, TPSS-D, B3LYP-D, and B97-D.

r15430: Mopac panel now also works with Mopac2006 (as well as Mopac2007)

r15395: Add Mopac panel in ADFinput to perform interactive Mopac calculations

Select the Mopac panel to perform an interactive mopac calculation, with more options available then using the pre-optimizer button. If the geometry of the molecule is changed it will be reflected in the molecule in ADFinput. The MOPAC charges property of the atoms in the ADF-GUI will also be updated, and optionally the bonds may be updated according to the calculated MOPAC bond orders. Currently only MOPAC2007 is supported from this panel.

  • The Single Point Mopac button may be used as an alternative for the Guess Bonds menu command.
  • The Geometry Optimization button starts an optimization and is thus similar to the pre-optimizer using MOPAC.
  • The Hessian and Frequencies button allows you to check the frequencies as calculated by MOPAC for the current geometry.
  • The Transition State Search button allows you to search for a TS with MOPAC first, and use ADF for refinements later.

r15390: Import Coordinates in ADFinput now can read MOPAC AUX file

r15384: Fix in algorithm to get job ID when submitting with ADFjobs: now works with LoadL

r15379: Added option to calculate energies/gradients for geometry runs via external program

A subblock has been added to the GEOMETRY block to allow energies and gradients to be calculated by an external program for use in a geometry optimization using the new branch. A simple input looks like this:

Title WATER Geometry Optimization with External program

  Core large
  Type SZ

    O             0.000000     0.000000     0.000000
    H             0.000000    -0.689440    -0.578509
    H             0.000000     0.689440    -0.578509

  externprogram externprog.exe coord=coords.inp energy=energy.out grad=grads.out

Note that you need to supply information about atomic fragments, such as the basis set, even though these are not actually used in the calculations.

The EXTERNPROGRAM subblock must have as first argument the name of the executable program or script that gets run to generate the energy and gradients. It also takes keyed parameters for the coordinates file name, the gradients file name, and the energy file name. These files are used to communicate values between ADF and the external program.

When ADF is ready to perform an energy and gradient calculation, it writes the current Cartesian coordinates to the file name given in the input. The format is similar to the ATOMS block in the ADF input file: it has one atom per line, with the the element symbol given, followed by the x, y, and z coordinates.

ADF will then run the executable program, and then read in the energy and gradients from the file names given in the input file. The external program is thus responsible for reading the coordinates (in atomic units) written by ADF from file, generating the corresponding energy and gradients (in atomic units), and writing these to the appropriate files. ADF will then take another geometry step, and the process will repeat.

r15363: Try to improve importing of coordinates from PDB files in the ADF-GUI

r15356: Turn of printing of SFO EIG and SFO OVL by default

To turn back on (and get old output), add the following to your input:

    SFO eig ovl

r15284: Use empty fields in ADFinput for default values

Many input fields in ADFinput are now empty. The corresponding values will not be written in the ADF input file, and as a result the default value as determined by ADF will be used. This will ensure that defaults of ADFinput and ADF match, and also generates cleaner run scripts.

r15257: Grimme Dispersion Correction

The Grimme's dispersion correction has been added as part of the XC functional. The correction is added to SCF energy, gradients and the Hessian matrix elements when those are calculated. It is switched on by specifying a DISPERSION keyword in the XC input block or by selecting the corresponding GGA-D in ADFinput. The DISPERSION keyword has an optional parameter that specifies the global scaling factor with which the correction is added. If the parameter is omitted then 1.0 is used except for the following GGA's: BLYP, PBE, or BP86. For these functionals, the factors proposed by Grimme in J. Comp. Chem. (2006) p. 1787 are used. They are: 0.75 (PBE), 1.2 (BLYP), 1.05 (BP86).

r15253: Option to user MOPAC hessian as startup hessian in geometry optimizations

To activate, check the Mopac Hessian option in the Task:GeometryOptimization panel in ADFinput.

r15242: High-order quasi-newton based optimize option, and implicit hessian updates

Two new experimental algorithms have been added: the first is an implicit hessian update algorithm. The standard explicit scheme involves beginning an optimization with an approximated hessian at the initial geometry, which is estimated using a lower level of theory such as a force field, and then updating this hessian each step using the gradients and steps calculated during the optimization.

The implicit scheme is similar, but an approximate hessian is generated at each step using the lower level of theory, and then updated with the preceding steps and gradients which have been stored during the optimization. In theory, the implicit scheme should be better, because the hessian 'guess' used is evaluated for the current geometry, rather than the initial geometry. In practice, not enough testing has been done to know if this is really the case.

To use the implicit hessian update, you append the work 'implicit' to the end of the hessupd subkey in the geometry block:

   hessupd bfgs implicit

The high-order quasi-newton scheme is designed to work in collaboration with the implicit hessian update. In the standard quasi-newton scheme, the approximate hessian is used together with the calculated forces to estimate the location of the minimum of the true PES by approximating it with a single quadratic surface. In the high-order scheme, a steepest descent propagation is used, with the true PES approximated locally at each step by a quadratic surface. This surface taken from the approximate hessian given by the implicit hessian update method at each point. The hessian is geometry dependent, and varies along the path followed. The gradient is integrated along the path until it is close to zero. This approach effectively introduces higher-order terms via the implicit hessian update method, which come from the lower level of theory used to build the approximate hessian. It is expected to work particularly well with Cartesian coordinates, for which the surface may be highly anharmonic, but it is not well tested.

To use the high-order quasi-newton scheme, you should set the hessian updater to use the implicit scheme, and add a quasinewton subblock:

   quasinewton highorder
   hessupd bfgs implicit

r15237: Changed the default geometry optimizer, integration settings, and gradient convergence

The new optimization branch is now the default for geometry optimizations and transition state searches. Other types of runs (eg LT, IRC) make use of the old branch. The new optimization branch uses delocalized coordinates by default.

In order to use the old optimizer, use the 'branch' key in the geometry block:

   branch old
   optim cartesian

The default gradient convergence for geometry optimizations has been changed to 1.e-3. The integration parameters for geometry optimizations are now 4 4, rather than 4 3.

r15171: Changed DFTB parameter naming scheme

The DFTB naming scheme for parameter files, which are kept in atomicdata/DFTB, has been changed to the scheme used in the DFTB+ code. That is, the (mixed-case) name of each atom, separated by a hyphen, and including the extension 'skf' (Eg. C-Co.skf)

r15128: ADFspectra mouse interaction reworked

Now ADFspectra uses the same code as used for other plots. Thus the mouse interactions has changed. Use the scroll bar, or the right mouse button, or control-left mouse button to zoom. Drag with left mouse button to scroll.

r15120: Improvements to DFTB performance

The calculation of gradients in the DFTB code is now orders of magnitude faster, due to new optimizations.

r15073: Add Boys localized orbitals and NBO analysis to ADF-GUI

In ADFinput you can enable calculating them in the Orbitals panel. When they are present on a TAPE21 result file, you can also visualize the Boys localized orbitals and the NLMO's from the NBO analysis in ADFview.

r15060: In ADFjobs, a single click on the job button

ADFjobs already had a short-cut: double click on a job and it will open either in ADFinput or in ADFtail. This is now even more convenient: you get the same effect by clicking once on the job button (on the left side).

r15046: Bugfix ADFlevels: sometimes electrons were not drawn (especially for partially filled levels)

r15043: ADFlevels mouse interaction improved (and very different from what it was ...)

Drag with left mouse to translate, use scroll wheel to zoom. Alternatively, drag with right mouse outside a stack to zoom. Drag with left mouse and shift key to select levels with marquee. Finally, control-drag with left mouse to zoom for those who have a single button mouse without scroll wheel.

r15036: Fixes for report facility in ADFjobs on windows

r15019: Spin and Occupation panel in ADFinput

In ADFinput you can use the Spin and Occupation panel to set the occupation details. ADFinput will perform a fast test run adf to get required information about symmetry and occupations if no matching .t21 is available.

r15016: Control menu choice in SCM menu

If you choose an option from the SCM menu while pressing the control key, the chosen module will launch but with no file specified. Thus it is a simple way to launch modules.

r14978: Enable ScaLapack for Itanium2/Linux and PC/Windows platforms

Diagonalization of the Fock matrix has up to now been performed on the master node only. With ScaLapack, it is now possible to distribute the work among all nodes in a parallel run. ScaLapack as implemented in Intel(R) MKL 10.1 is currently used in Itanium2/Linux/HP-MPI version of ADF. The Windows/HP-MPI ADF version uses standard ScaLapack.

r14953: Added option to read initial hessian from text file

You can now use the 'inithess' subkey in the geometry block to read a hessian from a text file, to use with the new optimizer branch. The only argument is the name of the file containing the initial hessian. The hessian must be given in full, in non-mass-weighted Cartesian coordinates, and in atomic units (hartree/bohr**2).

r14929: Add scripting tools: is a Python interface to read and write KF files (the binary files from the ADF package). For reading, adfreport is easier and more reliable (it will be updated when data on the binary files is changed). To use, add $ADFHOME/scripting to your PYTHONPATH, and a working installation of the ADF package is required ( uses the KF utilities).

r14897: Update ADFLaunch to work with Mac OS X 10.5 (Leopard)

r14868: Fix bug in atom ordering of atom charges (except Hirshfeld) in ADF-GUI

r14861: Generating sets of jobs, reporting results, and scripting

In ADFjobs the Tools/Prepare menu can be used to generate sets of jobs with different options. This is a GUI to the adfprep program.

The Tools/Report commands may be used to generate reports from a set of selected jobs. Reports can include any information present on the .t21 result files, including pictures of orbitals. This is a GUI for the adfreport program.

adfprep is intended to facilitate scripting: it makes it very easy to construct proper adf jobs from within a script. Execute 'adfprep' from the command line without arguments to get more information on how to use it.

adfreport is intended to facilitate scripting: it makes it very easy to get results calculated by adf in your own script. The results are taken from a .t21 result file. Execute 'adfreport' from the command line without arguments to get more information on how to use it.

Check the Bakerset and ConvergenceTestCH4 examples from the examples/adf directory to see some (very simple) scripts using adfprep and adfreport.

r14849: Import coordinates now tries to figure out the proper units

The import coordinate command in adfinput now tries to determine if bohr or angstroms are used, based on the number of bonds found using a distance criterion.

r14845: ADF-GUI: color atom by scalar property

ADFinput, ADFview and ADFmovie now can color the atoms by a selected scalar property, for example the calculated atomic charge. Use the popup menus to do this. Currently the color range is fixed.

r14781: Laplacian of the exact and fitted SCF density

It is now possible to calculate Laplacian on the total SCF density (exact or fitted) using the densf utility. The corresponding densf keyword is

Laplacian {fit}

The fit argument is optional and if it is present densf will calculate Laplacian of the fitted density.

The Laplacian feature is also supported by ADFview.

r14768: Show multiple atom info

In ADFinput, ADFmovie, ADFview and BANDinput, show multiple atom properties (name, charge, radius etc) at the same time. Also the updating of the displayed information has been fixed.

r14677: MOPAC as pre-optimizer in ADFinput

ADFinput now can also use MOPAC as a pre-optimizer. Currently MOPAC2007 (from and MOPAC2006 (from Fujitsu) are supported. Atom charges as calculated can be displayed. With MOPAC2007 the bonds in ADFinput may also be updated based on the bond orders calculated.

MOPAC2007 needs to be installed in /opt/mopac, MOPAC2006 needs to be installed in /opt/mopac2006. If you use different install locations you need to update the $ADFBIN/mopac.scm file.

You can also use the SCM_MOPAC environment variable to select the MOPAC you wish to use, even on a remote machine. For example:

SCM_MOPAC=ssh bigmachine adfhome/bin/mopac.scm
export SCM_MOPAC

will start mopac on bigmachine using the normal mopac.scm script.

Use the Preferences panel from ADFinput to select which pre-optimizer to use.

r14341: Added block constraints

Block constraints allow the internal degrees of freedom of a block of atoms to be frozen, so that the block moves as a whole. Block constraints are now available when using the new branch optimizer with the NewConstraints input block. To apply block constraints, you add block labels to atoms in the Atoms block, and then add the block constraint in the NewConstraints input block.

  1.C        -0.004115   -0.000021    0.000023 b=b1
  2.C         1.535711    0.000022    0.000008 b=b2
  3.H        -0.399693    1.027812   -0.000082 b=b1
  4.H        -0.399745   -0.513934    0.890139 b=b1
  5.H        -0.399612   -0.513952   -0.890156 b=b1
  6.H         1.931188    0.514066    0.890140 b=b2
  7.H         1.931432    0.513819   -0.890121 b=b2
  8.H         1.931281   -1.027824    0.000244 b=b2
  BLOCK b1
  BLOCK b2


This comes from the example GO_newconstraints.

r14166: New constraints now fully enforced

The constraints in the new optimizer branch were initially not fully enforced. Although they had to be converged at the end of an optimization, they might not be met during the optimization. This has been changed, such that they are now enforced by default. They do not have to be fully met in the input, but if the input geometry is far from meeting the constraints, a large, erratic first geometry step may result.

You can avoid fully enforcing constraints, effectively returning to the old behavior, by adding a 'constraints' subblock to the geometry block:



Although the default, you can explicitly indicate that you want to fully enforce constraints at each step by using FULLCONVERGE in place of PARTIALCONVERGE.

r14142: DFTB as pre-optimizer in ADFinput

ADFinput now can also use DFTB as pre-optimizer. The DFTB program part of the ADF package will be used, and you will need to download the parameter files yourself.

Use the Preferences panel from ADFinput to select which pre-optimizer to use.

r13856: Introduced new Density Functional Tight Binding (DFTB) program

The DFTB program is orders of magnitude faster than DFT, but requires parameter files to be installed for all pair-wise combinations of atoms in a molecule. Unfortunately, parameters are not available for some elements, but calculations for many common molecules should be possible.

To use DFTB, you need to request parameter files at the web site, and put these files in the directory atomicdata/DFTB.

The input for DFTB is similar to ADF, but not exactly the same. At this point, it is possible to perform single point, geometry optimization, transition state search, and frequency calculations. All output is written to standard output; there are no keyed-files (eg TAPE21) at this time.

Examples of DFTB calculations can be found in the examples/dftb directory. Here is a run script for one such example:

"$ADFBIN/dftb" << eor

  RunType GO
  Optim Delocal
  Converge Grad=0.0001

    C         0.000000  0.000000  0.000000
    C         1.402231  0.000000  0.000000
    C         2.091015  1.220378  0.000000
    C         1.373539  2.425321  0.004387
    C        -0.034554  2.451759  0.016301
    C        -0.711248  1.213529  0.005497
    O        -0.709522  3.637718  0.019949
    C        -2.141910  1.166077 -0.004384
    O        -2.727881  2.161939 -0.690916
    C        -0.730162  4.530447  1.037168
    C        -0.066705  4.031914  2.307663
    H        -0.531323 -0.967191 -0.007490
    H         1.959047 -0.952181 -0.004252
    H         3.194073  1.231720 -0.005862
    H         1.933090  3.376356 -0.002746
    O        -2.795018  0.309504  0.548870
    H        -2.174822  2.832497 -1.125018
    O        -1.263773  5.613383  0.944221
    H        -0.337334  4.693941  3.161150
    H         1.041646  4.053111  2.214199
    H        -0.405932  3.005321  2.572927


r13415: Reference point (August 21, 2007)

Version ADF2007.01 split from the development version. Bug fixes in ADF2007.01 are also included. The svn version numbers in the development version that correspond to these bug fixes will be approximately the same as those in the ADF2007.01 version. See the 2007.01 release notes for details.