FAQ
***


My ADF input does not work in AMS2020?
======================================

In our AMS2020 release, ADF has been fully integrated into the AMS
driver, simplifying the input. If you ise the GUI this will not affect
you. If you use your own command line input with scripts, your old
inputs are not compatible with AMS2020 or beyond. Old ADF inputs can
be converted with a simple tool. Let us know at support@scm.com with
your old input if that does not work.


Can I use Gaussian type basis (6-31G*, TZVP, etc.) functions in ADF?
====================================================================

No, Gaussian-type orbitals cannot be used in ADF, since ADF uses
Slater Type Orbitals (STOs).

Slater orbitals are better from a theoretical point of view since they
have the correct behavior near the nucleus (cusp) and the correct
asymptotic long-range behavior. Consequently, typically fewer STOs
than GTOs are needed to reach a certain level of accuracy, as
discussed in this news item Slaters beat Gaussians and a paper
benchmarking DFT methods for a catalytic reaction.


Which basis set should I use?
=============================

There is no silver bullet. Some general recommendations follow below,
which are by no means definite. Please check the literature carefully
and check the robustness of the results by using a large basis set
eventually, if possible. See also a more extended discussion on what
basis set to use.

The nomenclature of the STO basis sets in ADF: D, T, and Q stand for
double, triple, and quadruple, and (n)P stands for n polarization
functions. For example, the DZP basis has double zeta + 1 polarization
function. Inner electrons of (atomic) fragments can be frozen during
the molecular calculation, this is denoted with ‘small’, ‘medium’ or
‘large’, or by specifically specifying up to which shell the electrons
are frozen. In general, we recommend the use of frozen core basis sets
for LDA and GGA functionals if available. All-electron basis sets are
required in case of SAOP, meta-GGA and meta-hybrid functionals,
functionals that use LibXC, post-KS calculations like GW, RPA, MP2 or
double hybrids. For hybrid functionals, the use of frozen cores
usually is fine for geometries and non-core spectroscopic properties.

There are also specialized basis sets, e.g. containing diffuse
functions (“AUG”, for describing anions and diffuse excitations of
small molecules), even-tempered basis sets (“ET”, less bias for
particular electronic state), and optimized for ESR A-tensor and NMR
spin-spin coupling calculations (ZORA/TZ2P-J and ZORA/QZ4P-J). See
also the documentation for more technical details and the basis set
database in ADF.

The DZP basis set could be a good starting point, especially for
geometry optimization. See also this paper looking at catalytic
reactions. In general, this basis is expected to be slightly better
than the often used 6-31G* basis set in codes which use Gaussian basis
sets. The DZP basis defaults to TZP for transition metals. The frozen
core approximation generally does not affect geometries much, but a
too large frozen core can lead to inaccuracies.

For accurate predictions of spectroscopic properties, the TZ2P basis
(and numericalquality good) is recommended, especially for larger
systems. For the most accurate predictions of spectroscopic properties
one could use the much more expensive QZ4P basis set (and
numericalquality verygood), although often the TZ2P basis is already
close to the basis set limit. Also, usually an all-electron basis set
is necessary to properly describe properties related to inner
electrons (NMR, EPR, X-ray absorption), or needed because of the
chosen XC functional.


How do I calculate UV/VIS spectra with ADF?
===========================================

The tutorial on calculating UV/VIS spectra with ADF will get you
started with the basics. For getting more accurate results, however,
you need to consider the technical details used in TDDFT, such as
basis set, exchange-correlation functional, and other settings.

There are also faster approximate TDDFT methods available, such as
TDDFTB (see tutorial), sTDDFT, TDDFT+TB (webinar), and POLTDDFT
(tutorial).

We also have an advanced tutorial / case study on TDDFT methods.

One can also go beyond TDDFT using quasiparticle self-consistent GW
with the Bethe-Salpeter Equation (qsGW-BSE: highlights, tutorial),
which could be the most accurate approach.

You are advised to check the literature on which approaches are
suitable for similar compounds. Here are some general recommendations
on what could work well in ADF:

1. optimize your molecule. Scalar relativistic, TZP, small core
   (although a large frozen core could also work), and numerical
   quality ‘Normal’ would typically be quite accurate. As to the
   functional, a GGA perhaps with dispersion corrections could give
   very good results (e.g. PBE-D3(BJ)). GGAs are much faster in ADF
   and can yield better geometries than hybrids. Note that the
   dispersion interactions affect the geometry, and thereby indirectly
   the electronic structure, including excitations.

2. TDDFT calculation for UV/VIS. Using scalar relativisty up to 4d-
   elements is usually sufficient. For heavier elements you may want
   to check the effect of spin-orbit coupling on the spectrum (see
   also a highlight on conversion efficiency of solar cell dyes). You
   may want a larger basis set (e.g. TZ2P) and perhaps all-electron.
   Also a higher accuracy may be desirable (good, or verygood). As to
   the number of excitations, this depends a bit on the electronic
   ground state and which excitations you are interested in. You could
   start with 30 or so to see how much of the blue/UV will be covered.
   Finally the functional could play an important role. The
   asymptotically correct SAOP model potential is often used, since
   this is an accurate Kohn-Sham potential well suited to describe
   virtual orbitals (see publication by Baerends et al.). You could
   also try hybrids (e.g. B3LYP) or meta-hybrids (M06-2X). Range-
   separated hybrids (CAMY-B3LYP) are sometimes advised for
   excitations with long-range charge transfer character (you can also
   tune range-separated hybrids). SAOP calculations will be much
   faster in ADF than hybrids.

Further comments:

* for symmetric systems, ALLOWEDONLY can reduce the computation time
  by excluding the excitations which are symmetry-forbidden

* for very large systems you may consider trying out TD-DFTB in
  combination with filtering out the single orbital transitions with
  very low oscillator strength

* vibronic fine structure may be included by calculating Franck-Condon
  Factors. Since this involves calculating excited state frequencies
  (numerically), the calculations can be very demanding for large
  systems


What settings are recommended for NMR calculations?
===================================================

See also the tutorial on relativistic NMR calculations. Perhaps the
unique capabilities of ADF to analyze orbital contributions to NMR are
of interest, too. We also have a tutorial on how to visualize spin-
spin coupling.

Recommended is an all-electron basis set of TZP or higher. TZ2P is
usually a good choice. For heavy metals you may consider the QZ4P
basis set. For NMR spin-spin couplings you may consider the
ZORA/TZ2P-J or ZORA/QZ4P-J basis.

PBE0 is often a good functional for NMR. If you cannot afford hybrids
you could try PBE or SAOP.

For the relativistic approach we recommend at least scalar ZORA. Spin-
orbit (SO) ZORA should be used if you are looking at the shift of a
heavy atom, or a light atom near a heavy atom. If SO effects are
large, a QZ4P or QZ4P-J basis will improve the description of the
induced spin density on the probe nucleus. You may also want to try
out the ‘fxc’ kernel option – note that this has a small gauge
dependency.

The numerical accuracy should be better than default. You could try
NUMERICALQUALITY good or verygood to set the grid and density fitting
accuracy.

Disclaimer: These general recommendations are based on the work of
Jochen Autschbach‘s group. You should always carefully try out a few
different options to test the sensitivity of the DFT methods for the
NMR predictions for your own system. Some suggested references:

* https://dx.doi.org/10.1002/chem.201502346

* https://dx.doi.org/10.1021/ja3040762

* https://dx.doi.org/10.1002/anie.201005431


Do you have tips on how to find a Transition State with ADF?
============================================================

Finding a Transition State (TS) can be difficult. Two things will help
the TS search:

* Get a geometry close to the TS

* Get a reasonable Hessian (energy curvature)

1. to get a reasonable starting geometry you could, for example, start
   with a linear transit, nudged elastic band or from a previous TS
   geometry of a similar reaction.

2. defining the reaction coordinate (TSRC) may be the easiest option
   to get a reasonable Hessian. You could also calculate the full
   Hessian (frequency calculation), a partial Hessian or a Mobile
   Block Hessian, which should be better-conditioned.

For all initial Hessian calculations you could consider using a lower-
accuracy method (e.g. lower integration accuracy, smaller basis sets,
or even using DFTB). You should however always check the Hessian, e.g.
by visualizing the frequencies, to check if it has one single negative
eigenvalue and whether that eigenmode corresponds to your reaction.
For the TS search itself you should switch to higher accuracy –
especially think about the numerical integration and density fitting.

See also the Tutorial Tips and Tricks for Transition State Searches
for Click Reactions. See also some older tips, tricks, examples and
exercises for finding Transition States for an older version of ADF
(before the AMSification, which changed the input a lot) ("pdf",
"input files")


What’s the difference between COSMO and COSMO-RS? Do I need COSMO-RS to include solvent effects?
================================================================================================

You can do COSMO calculations with ADF. The COntinuum SOlvation MOdel
treats the solvent as a polarizable continuum. You can also use other
solvation models (SM12, 3D-RISM) or subsystem DFT (Frozen Density
Embedding) to include environment effects.

COSMO-RS (Realistic Solvents) is for calculating thermodynamic
properties of (mixed) fluids. It uses post-ADF results (sigma
profiles) for determining interactions between species in the liquid
phase. You will typically not need COSMO-RS if you want to include
solvent effects in your DFT calculation, but some properties such as
solvation free energies may be more accurately treated with COSMO-RS
than with COSMO.


What does a small, medium, or large frozen core mean?
=====================================================

To speed up a molecular or periodic DFT calculation, inner electrons
of atoms can be frozen. Note that this is not a pseudopotential: all-
electrons are still present, the cores are just frozen at their
optimized atomic configuration. The effect on the equilibrium geometry
and properties of valence electrons is usually small. For
spectroscopic properties of core electrons, or electrons close to the
nucleus, typically an all-electron (AE) approach is necessary.

In the atomic database (you can browse $AMSHOME/atomicdata to see
which basis sets are available) the AE basis sets are denoted as the
element names, while the name is extended with the highest shell that
is kept frozen for the frozen core basis sets.

**small core**: the smallest core available in the basis set database,
for example:

* Rh.3d: all 28 electrons up to 3d are frozen: [Ar]3d10. The valence
  orbitals are: 4s, 4p, 5s, 4d, 5p.

* Au.4d: all 46 electrons up to 4d are frozen: [Kr]4d10. The valence
  orbitals are: 5s, 5p, 6s, 4f, 5d, 6p.

**large core**: the largest core available in the basis set database,
for example:

* Rh.4p: all 36 electrons up to 4p are frozen: [Kr]. The valence
  orbitals are: 5s, 4d, 5p.

* Au.4f: all 60 electrons up to 4f are frozen, [Kr]4d104f14. The
  valence orbitals are: 5s, 5p, 5d, 6s, 6p.

Note that for some elements and basis sets there is just 1 core
available (e.g. 1s for C), in which case all core options default to
that specific frozen core.

When there are two options available (e.g. Rh.3d and Rh.4p), the
**medium** core option typically defaults to the large core option.
The use of **medium** core is therefore not recommended. We suggest
choosing your specific basis set, either from the GUI in the basis set
details panel, or by browsing the available basis sets and
specifically defining the appropriate core.


How did the keywords in ADF change from 2017 to 2018?
=====================================================

In 2018 a few keywords changed their format and input parsing was made
more strict. See the input parsing in the ADF documentation.


How to do an EDA or ETS-NOCV calculation with open-shell fragments?
===================================================================

Fragment files in ADF no longer need to be spin-restricted. So as of
ADF2019, you can use unrestricted fragments.


Can ADF do restricted open shell Kohn-Sham (ROKS)?
==================================================

In ADF2023 ROKS for high-spin open shell molecules has been
implemented. Starting from ADF2025 this can be used for the
calculation of excited states for open shell molecules with well
defined spin.

When you do a spin-restricted calculation in ADF with an odd number of
electrons, you do not get the energy expression that is used in ROKS.
In ROKS, the spin-unrestricted energy is optimized with alpha orbitals
restricted to have the same spatial form as the beta orbitals. In ADF
using a restricted calculations with an odd number of electrons will
just result in fractional occupations of the frontier orbital. The
energy of this electronic configuration is not the same as in a ROKS
calculation.

Unrestricted calculations (UKS) in ADF should lead to proper integer
occupations of the alpha and beta electrons, which are treated
independently and can have spatially different forms.


Can I use GPU acceleration in ADF?
==================================

We do not offer a GPU-accelerated version of ADF at this time. See the
Installation manual for more details.


Where can I find the total energy in the output?
================================================

ADF does not calculate total energies. It calculates difference
energies with respect to fragment energies. By default, these are the
spherical spin-restricted atoms. For this reason total energies from
other programs cannot be compared to ADF directly. Only energy
difference comparisons are meaningful. These are the only energies
that play a role in chemistry of course.

If you do need the total energy, there is a workaround: calculate
total energies of the atomic fragments and add them to the bonding
energy.

Because the total energy of an atom is, by definition, the energy
difference between the atom and the (nucleus+free electrons) system
one can calculate it by calculating a single atom with the charge
equal to the number of electrons. The ‘bonding energy’ of such an
‘atom’ will then be equal to negative of the total energy of the
atomic fragment. Care should be taken to apply this trick to frozen-
core fragments. In this case, it only makes sense to remove the
valence electrons and leave the frozen core.


How do I calculate atomization energies with ADF?
=================================================

You need to subtract the bonding energies of the individual atoms from
the bonding energy of the molecule. Care must be taken to get the
correct atomic reference state. Usually you will need to break the
symmetry (otherwise spherical symmetry is used) and note that ADF
cannot perform restricted open-shell Kohn-Sham (ROKS) calculations. An
example input for the triplet oxygen atom:

   System
      Atoms
      O 0.0 0.0 0.0
      End
   End
   Task SinglePoint
   Engine adf
      Relativity
         Level None
      End
      SpinPolarization 2
      Unrestricted Yes
      Basis
         Type QZ4P
         Core None
      End
      IrrepOccupations
         A 5 // 3
      End
      numericalquality good
      symmetry nosym
      xc
         hybrid B3LYP
      End
   EndEngine


I have problems with SCF convergence (“more iterations needed. not converged”). What should I do?
=================================================================================================

There are a few options to aid SCF convergence:

* modern SCF algorithms: A-DIIS is usually a good option, and is
  default since ADF2016. Alternative options are LISTi (with good
  scaling) and ARH (slower per SCF cycle). E-DIIS is similar to A-DIIS
  but slower

* use the OCCUPATIONS key to specify occupation numbers

* use electron SMEARING for systems with low HOMO-LUMO gap

* use KEEPORBITALS to keep the same orbitals occupied after a certain
  number of steps

See the SCF troubleshooting section of the ADF manual and send us
(support@scm.com) relevant input and output if you keep having
problems.


The geometry of my molecule is converged but when I do a frequency calculation, ADF finds one or more imaginary frequencies. Why?
=================================================================================================================================

There may be a few reasons why imaginary frequencies are found after
geometry optimization:

* Visually inspect the negative normal mode in AMS Spectra by
  selecting it. Pause at some frame to get the distorted structure,
  and use Play -> Update geometry in input to use that as a new
  starting point for geometry optimization. If it’s a frustrated
  rotation, you can also in the GUI manually distort it by changing
  the dihedral.

* The optimization threshold is not strict enough for the molecule’s
  potential energy surface (PES). For example, if there are almost no-
  barrier rotational modes (e.g. methyl groups in some situations) or
  cyclopentane-like fragments, then the PES in such cases may be
  almost flat. In this case, much more strict convergence criteria
  (and higher integration accuracy) may be necessary to get to the
  energy minimum.

* Even with tight convergence criteria, one may get a small imaginary
  frequency due to numerical noise, which is always present in every
  calculation. In this case, it may be useful to scan the normal mode
  corresponding to the imaginary frequency and recheck whether the
  frequency is indeed imaginary by finite differences. The latter is
  done using the SCANFREQ keyword, which is enabled by default in the
  AMSinput GUI module.

* If the scan shows an imaginary frequency, then it means that the
  preceding geometry optimization converged to a saddle point. This
  may happen when optimization was started close to the saddle point
  without a good Hessian estimate. In such a case, ADF did not make
  enough steps to get a good Hessian approximation and figure out that
  it has negative eigenvalue(s).


Are TDDFT calculations compatible with COSMO?
=============================================

Yes, it is possible to combine COSMO and TDDFT. This will modify the
zeroth-order KS orbitals and their energies, which is usually the most
important solvation effect. COSMO could also modify the first-order
change in the KS potential. This effect has been implemented and will
certainly be important in case of a high value for the dielectric
constant. The response of the COSMO surface charges due to the TDDFT-
induced modified charges may be switched off (NOCSMRSP), which is
probably a better representation of the solvent response for
instantaneous (de)excitation.

In the response part of the calculations, one can also use a different
dielectric constant. The reason for using two different dielectric
constants is that the electronic transition can be so fast that only
the electronic component of the solvent dielectric can respond, i.e.,
one should use the optical part of the dielectric constant. This is
typically referred to as non-equilibrium solvation. If one optimizes
an excited state, the solvent dielectric has time to fully respond and
the same dielectric constant should be used.


Can I optimize excited states with TDDFT in ADF?
================================================

Yes. See the tutorial and documentation on excited state geometry
optimizations.


Can I determine Raman intensities for open-shell systems?
=========================================================

Yes, this can be done numerically by distorting the structure along
the normal modes. First calculate the normal modes “q” with ADF. Then
calculate the polarizability tensor by applying finite electric fields
at the geometries q_0 + dq and q_0 – dq. From this one can obtain, by
double finite difference, the derivative of the polarizability w.r.t.
a particular normal mode of interest. This should be less time-
consuming than a regular Raman calculation as well.


How do I calculate the frequency-dependent second hyperpolarizability, GAMMA?
=============================================================================

In order to obtain gamma, one should calculate the beta tensor in
small electric fields. The beta tensor can be obtained by using the
input key RESPONSE, for example:

   RESPONSE
      HYPERPOL 0.03
      DYNAHYP
      ALLCOMPONENTS
   END

Small electric fields can be switched on by specifying, for example:

   System
      ElectrostaticEmbedding
         ElectricField 0.0 0.0 0.001
      End
   End

in the AMS part of the input for an electric field in the z-direction.
The beta calculation needs to be repeated for different field
directions. gamma_zzzz can be obtained from (for example): gamma_zzzz
= beta_zzz (E=0.001 z) – beta_zzz (E=-0.001z) / (2 * 0.001)

Similar relations hold for other tensor components.

The group of Lasse Jensen has implemented damped quadratic and cubic
response, which gives access to many non-linear optical properties
including two-photon absorption. These methods are available in
ADF2017 and later.


How can I do a spin-restricted open-shell calculation for the calculation of the A-tensor?
==========================================================================================

For a spin-restricted open-shell calculation, save adf.rkf (TAPE21),
and use the whole molecule as a fragment in a SR unrestricted
calculation with the keywords:

   scf
      Iterations 0
   end

ADF will use the fragment density coming from the spin-restricted
calculation as start-up density in the unrestricted calculation.
Iterations 0 means that only one SCF iteration will be performed with
the use of the fragment density (one should use the same XC-potential
in both calculations of course), such that the alpha-orbital energies
remain degenerate with the beta-orbitals.


How do I read data from the binary KF files (adf.rkf, TAPE21, .runkf, .rkxf, .rkf or .t21 result files)?
========================================================================================================

After a calculation with ADF, BAND, ReaxFF, DFTB, or other engine, you
will have a result file (a .t21, .runkf, .rxkf, or .rkf file). These
are binary files, and like all other binary files used by the ADF
package they are written using the KF library. The data are organized
in sections, and each section can contain variables (either real,
integer, string or logical). They may be transported between different
platforms, conversion is performed automatically when needed.

KF files are Direct Access binary files. KF stands for Keyed File: KF
files are keyword oriented, which makes them easy to process by simple
procedures. Internally all the data on KF files is organized into
sections containing variables, so each datum on the file can be
identified by the combination of section and variable.

All KF files can be opened using the KFbrowser GUI program:

   $AMSBIN/kfbrowser path/to/ams.rkf

By default KFbrowser shows a just a curated summary of the results on
the file, but you can make it show the raw section and variable
structure by switching it to expert mode. To do this, click on **File
→ Expert Mode** or press **ctrl/cmd + e**.

KF files can be opened and read with Command line tools.

For working with the data from KF files, it is often useful to be able
to read them from Python. Using the AMS Python Stack, this can easily
be done with the AKFReader class:

   >>> from scm.akfreader import AKFReader
   >>> kf = AKFReader("path/to/ams.rkf")
   >>> "Molecule%Coords" in kf
   True
   >>> kf.description("Molecule%Coords")
   {
       '_type': 'float_array',
       '_shape': [3, 'nAtoms'],
       '_comment': 'Coordinates of the nuclei (x,y,z)',
       '_unit': 'Bohr'
   }
   >>> kf.read("Molecule%Coords")
   array([[-11.7770694 ,  -4.19739597,   0.04934546],
          [ -9.37471321,  -2.63234227,  -0.13448698],
           ...
          [ 10.09508738,  -1.06191208,   1.45286913],
          [ 10.11689333,  -1.5080196 ,  -1.87916127]])

Tip:

  For a full overview of the available methods in AKFReader, see the
  AKFReader API documentation.

"KFReader": C routines to read binary KF files


I get the error: NO TRANSFORMATION FOUND in a fragment-based calculation. What to do?
=====================================================================================

A possible origin of this problem is that ADF can symmetrize the input
coordinates of fragments which are nearly symmetric. As a consequence,
the fragment coordinates can no longer be transformed to their
position in the full calculation of the complex.

The workaround is to use SymmetryTolerance 1.0e-10 (in older ADF
versions SYMMETRY TOL=1.0e-10) in the calculation of the fragments,
such that the coordinates in the fragments are not symmetrized.


What does the error message “BAD ETA INTEGRALS” mean?
=====================================================

This message shows that the numerical integration is not as accurate
as required (currently tested only with spin-orbit calculations). You
can force the calculation to continue using the ALLOW BADINTEGRALS
input key. This will force the calculation to continue, but remember
there are possible inaccuracies due to these integrals. You can
probably increase the accuracy of the eta integrals by increasing the
overall integration accuracy (using the integration key). One will
then probably still get the BAD ETA INTEGRALS message, but this is
relative to the required accuracy. One can check the accuracy (it is
printed on output), and if the accuracy is good enough one can use the
ALLOW BADINTEGRALS key to force the calculation to continue.


ADF will not start when the user’s login name has non-ASCII characters in it. Sometimes the message “QUICKX terminates” is printed to the logfile.
==================================================================================================================================================

One of the reasons can be that the SCM_TMPDIR environment variable
also contains non-ASCII characters and ADF cannot use it. The solution
is to set the SCM_TMPDIR value to a path that does not contain non-
ASCII characters, for example, C:TMP:

* Right-click on My Computer

* Select Properties item in the pop-up menu

* Click on the “Advanced” tab

* Click on the “Environment Variables” button

* In the upper half under “User variables for …”, click the New button

* Enter SCM_TMPDIR in the variable name and C:/TMP in the variable
  value field. Please note that the path in the variable value must
  not contain spaces. It is also advised to use forward slashes as a
  path separator instead of the backslash

* Make sure the C:TMP directory exists and is writable by anyone

* Click on the OK button in all windows to confirm your change

* If you use the GUI, restart it so the change takes effect


What does this error mean: Int. Energy with ZlmFit+LargeFragment+VoronoiGrid not implemented.
=============================================================================================

Most likely, you are using the INTEGRATION key for a fragment analysis
and thereby using an incompatible combination of ZlmFit and Voronoi
grid for fragment calculations. You should either use Voronoi + STOfit
or Becke + ZlmFit (which is the default since ADF2014).

Explanation of the terms in the error: “Int. Energy with
ZlmFit+LargeFragment+VoronoiGrid not implemented”

1. ZlmFit means the way the Coulomb potential is fitted. ZlmFit is the
   default in ADF2014 and beyond. One can also use the STOFit, using
   the key STOFIT. If one would use STOFIT this error would not
   appear.

2. LargeFragment means a fragment larger than an atom.

3. VoronoiGrid is the integration method. The VoronoiGrid will be used
   if one is using the INTEGRATION key. In ADF2013 and beyond the
   Becke grid has become the default. If one would use the default
   integration method in ADF, which is the BeckeGrid, this error would
   not appear.

It is recommended to use the BeckeGrid and ZlmFit if one has larger
fragments, possibly using quality good.
