Spectroscopic Properties

Excited States with Time Dependent DFTB

DFTB allows for excited state calculations on molecular systems by means of single orbital transitions as well as time-dependent DFTB as published by Niehaus et al. in Phys. Rev. B 63, 085108 (2001). Singlet-singlet as well as singlet-triplet excitations can be calculated. DFTB also supports the calculation of excited state gradients, which allows geometry optimizations and vibrational frequency calculations for excited states.

The TD-DFTB implementation uses the PRIMME library (PReconditioned Iterative MultiMethod Eigensolver) by Andreas Stathopoulos and James R. McCombs, PRIMME: PReconditioned Iterative MultiMethod Eigensolver: Methods and software description ACM Transaction on Mathematical Software Vol. 37, No. 2, (2010), 21:1–21:30.

DFTB excited state calculations are controlled by the following keywords:

             {dEMin r}
             {dEMax r}
             {OSMin r}
          {printlowest n}
          calc singlet|triplet
          {lowest n}
          {upto r}
          {diagonalization exact|davidson|auto}
             {ATCharges onthefly|precalc}
             {tolerance r}
             {safetymargin n}
          {print evcontribs}
          {excitation n}
          {eigenfollow true|false}

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 TD-DFTB calculations. If the section is not present all single orbital transitions will still be calculated and used in a subsequent TD-DFTB calculation, but no output will be produced.


The Filter section allows to remove single orbital transitions based on certain criteria. 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 TD-DFTB 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. TD-DFTB calculates the excitations in the basis of the single orbital transitions, whose calculation is configured in the SingleOrbTrans section. Using a filter in SingleOrbTrans can therefore be used to reduce the size of the basis for TD-DFTB. 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 TD-DFTB calculation with default parameters will be performed. If only the SingleOrbTrans section is present no TD-DFTB calculation will be done.

calc singlet|triplet
Specifies the multiplicity of the excitations to be calculated. Accepts the values singlet or triplet. Note that this key is not optional: If the TD-DFTB section is present, this keyword also has to be there.
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 TD-DFTB 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.
tolerance r
Convergence criterion for the norm of the residual. Accepts a single real number. The default is 1e-9.
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.
print evcontribs
Specifies whether to print details on the contribution of the individual single orbital transitions to the calculated excitations. The default is to print nothing.

Use this input to calculate 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 (see J. Comput. Chem., 28: 2589–2601). If the gradients are calculated, they will automatically be used for geometry optimizations or vibrational frequency calculations, if the corresponding runType is selected. Vibrationally resolved UV/Vis spectroscopy (Franck-Condon Factors) can be calculated in combination with the FCF program. See the ADF documentation on Vibrationally resolved electronic spectra.

excitation n
Determine which excited state to calculate the gradients for. Gradients can only be calculated for an excited states that has been calculated in the TDDFTB block, so make sure that enough excitations are calculated. The default is to calculate the gradients for the first excited 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.