No, Gaussian-type orbitals can not 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.
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.
The nomenclature of the STO basis sets in ADF simple: D, T, and Q stand for double, triple, and quadruple, and (n)P stands for n polarization functions. For example the DZP basis stands for 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.
There are also specialized basis sets, e.g. containing diffuse functions (“AUG”, for describing anions and diffuse excitations), even-tempered basis sets (“ET”, for describing core electron binding energies), and optimized for ESR A-tensor and NMR spin-spin coupling calculations (ZORA/jcpl). 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 it 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 the most accurate predictions of spectroscopic properties the largest QZ4P basis is recommended, 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).
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 and TDDFT+TB.
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. Scalar relativistic 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 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 excellent). 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 to 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 metahybrids (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.
- 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
See also the example on relativistic NMR calculations.
An all-electron basis set of TZP or higher. TZ2P is usually a good choice. For heavy metals you may consider QZ4P or the ‘jcpl’ basis.
PBE0 is often a good functional for NMR. If you can’t 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 an heavy atom, or a light atom near a heavy atom.
If SO affects are large, a QZ4P or jcpl 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 on the NMR predictions for your own system. Some suggested references:
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)
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 (see BAND tutorial) 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.
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, SCRF, 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.
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 $ADFHOME/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 recommend, we suggest to choose 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.
Fragment files in ADF must be spin-restricted. So if you want to do an energy decomposition of a chemical bond made between fragments with unpaired electrons, you should start with restricted fragments.
You can then use FragOccupations to set the spin-α and spin-β occupations in the fragments and do an unrestricted bonding analysis.
Rather than using a restricted calculation for the fragment with unpaired electrons, which can lead to SCF convergence issues, you may consider an advanced trick as
discussed by Mariusz Mitoraj. This involves running an unrestricted Kohn-Sham calculation on your fragment, which should converge more easily. You then copy the α-orbitals into a restricted fragment (set SCF=0) t21 file.
Note that in either of these approximations spatially identical orbitals for α and β will be used, although if you duplicate the α spatial orbitals from an unrestricted run you will likely include some spin-polarization of the frontier orbitals. If you want to use truly unrestricted fragments, you could consider EDA in BAND for 0D systems (see tutorial with 1D periodicity).
There is also an example for Bond Energy analysis on open-shell fragments.
No, 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.
You can for certain types of calculations (energies, forces and Hessians for GGAs only).
You will need a Linux OS with an NVidia CUDA GPU that does double precision, see the documentation for more details.
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.
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 can not perform restricted open-shell Kohn-Sham (ROKS) calculations. An example input for the triplet oxygen atom:
O 0.0 0.0 0.0
charge 0 2
A 5 // 3
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
There may be a few reasons why imaginary frequencies are found after geometry optimization:
- 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 is the frequency is indeed imaginary by finite differences. The latter is done using the SCANFREQ keyword, which is enabled by default in the ADFinput GUI module.
- If the scan shows an imaginary frequency then it means that the preceeding 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).
Yes, it is be 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..
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_o + dq and q_o – 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 then a regular Raman calculation as well.
The beta tensor can be obtained by using the input key RESPONSE, for example:
RESPONSE HYPERPOL 0.03 DYNAHYP ALLCOMPONENTS END
In order to obtain gamma, one should calculate beta in small electric fields. Such a field can be switched on by specifying, for example: EFIELD 0 0 0.001 for an electric field of 0.001 a.u. 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.
Recently, 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 will become available in ADF2017.
For a spin restricted open-shell calculation, save TAPE21, and use the whole molecule as a fragment in a SR unrestricted calculation with the keywords:
scf iter 0 end
ADF wil use the fragment density coming from the spin-restricted calculation as start-up density in the unrestricted calculation. iter 0 means that only 1 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.
After a calculation with ADF, BAND, ReaxFF, DFTB etc 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.
Not all data on the files are intended to be used directly by end users, the detailed meaning of many data items will not be clear to end users who do not have access to the source code. Preferably use the GUI utilities to visualize the results or scripting tools to get relevant results from a batch of calculations.
The KF Browser is a useful tool to browse through our binary files. The available data can be searched, copied as text and plotted as graphs. It can be started from the GUI (SCM → KF Browser) or from the command line ($ADFBIN/kfbrowser filename). To see all raw data, switch to the Expert mode (File → Expert Mode in KF Browser).
adfreport is a command line tool to quickly access results from different result files (.t21, .runkf, .rkf, .rxkf) in a uniform manner. You can get any variable from a result file by key value, or you can use predefined report commands (like geometry, charges, energy, etc). Run with the -h flag to get help and a detailed description of all predefined commands).
Note: if you include the -h flag and a filename, you will get specific help for the contents of that file.
To use adfreport via the command line: $ADFBIN/adfreport [-h] filename
KF Utilities are a set of command line utilities to handle KF files.
pkf: print the table of contents
dmpkf: dump the contents of all or part of a KF file to an ASCII file
udmpkf: make a binary KF file out of a ASCII file (typically a dumped KF File)
cpkf: copy all or part of one KF file to another KF file, or remove data from a KF file.
KFReader: C routines to read binary KF files
kf.py: python interface for reading binary KF files (requires ADF installation).
A possible origin of this problem is that ADF symmetrizes 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 SYMMETRY TOL=1.0e-10 in the calculation of the fragments, such that the coordinates in the fragments are not symmetrized.
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.
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
Most probably you use 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.
Recommended is to use the BeckeGrid and ZlmFit if one has larger fragments, possibly using quality good.