$dft(cross-references are given).
The user normally has to choose only the functional and the grid size, see below. All other parameters have proven defaults.
Example (default input):
$dft functional b-p
$dft gridsize m3
Possible values for gridtype are 1,…, 6 , but gridtype 4 to 6 is only for the use with functional lhf (see page ). For the definition of gridtype 1 - 3, please refer to Eq. (16), (17) and, (19) in Ref. .
Example (default value):
$dft gridtype 3
$dft nkk 3
When gridsize 9 is given, you have to specify both, ntheta and nphi (see below), otherwise the program will crash. The restriction for user-defined Lobatto grids is the number of grid points, which must not exceed 2000 grid points.
$dft gridsize 9 ntheta 30 nphi 60
|number of radial grid points = ioffrad + (
ioffrad is atom-dependent, the more shells of electrons, the larger ioffrad:
|for H-He||20||for K-Kr||40|
|for Li-Ne||25||for Rb-Xe||45|
|for Na-Ar||30||for Cs-Lw||50|
The radial grid size increases further for finer grids:
If you want to converge results with respect to radial grid size, increase radsize in steps of 5, which is convenient (see equation above).
radsize radsize + incr
ξ ξ * scal
For information about the linear scaling parameter ξ , see Eq. (16)-(19) and Table 1 in Ref. .
In addition, the reduction of spherical grid points near nuclei is suppressed, i.e. fullshell on is set (see page ).
Note: the keyword radsize integer overrules the setting of incr; for more information, see p. .
Recommendation: For diffuse cases use gridsize m4 (or larger) in combination with diffuse 2 and check the number of electrons; for more difficult cases use diffuse 4. In case of doubt, verify the calculation with a larger grid, i.e. gridsize 7.
The test suite example $TURBODIR/TURBOTEST/dscf/short/H3PO4.DSCF.DIFFUSE provides an example of usage; this also gives reasonable values for damping and orbitalshift to reach convergence in this and similar cases, see $scfdamp and $scforbitalshift (p. and p. ).
$dft gridsize m4 diffuse 2
$dft rhostart 50 rhostop 200one performs a numerical integration for the density and the exchange correlation term for ξ = 0.5,(0.01), 2.0 for given MOs and functional. NOTE: only molecules with a single atom type can be used. The results serve to establish stable, optimal ξ values, see Figure 1 in Ref. . Program stops after this testing.
gridsize 7 radsize 14 fullshell 1 dgrenze 16 fgrenze 16 qgrenze 16 fcut 16Please refer to the corresponding sub-keywords for explanation.
If you want to use the reference grid, you have to skip the keyword gridsize, and type instead reference. Example:
$dft functional b-p reference
Example for the usage of fullshell:
$dft functional b-p gridsize m4 fullshell
Example for switching off gridordering:
$dft gridordering 0
Ex, Ey, Ezor by
x, y, z, |E|. See also $fldopt.
$electrostatic field 0.1000E-03 0.000 0.000
where μ is the Fermi level. The factor f = 4k/ is chosen to yield the same slope at the Fermi level as the Fermi distribution.
Calculation of the fractional occupation numbers starts when the current HOMO-LUMO gap drops below the value given by hlcrit (default: 0.1). The initial temperature given by tmstrt (default: 300K) is reduced at each SCF cycle by the factor tmfac (default: 1.0) until it reaches the value tmend (default: 300K). Note that the default values lead to occupation numbers calculated at a constant T = 300 K. Current occupation numbers are frozen if the energy change drops below the value given by stop (default: 1 ⋅10-3 ). This prevents oscillations at the end of the SCF procedure.
Calculation of fractional occupation numbers often requires much higher damping and orbital shifting. Please adjust the values for $scfdamp and $scforbitalshift if you encounter convergence problems.
In UHF runs this option can be used to automatically locate the lowest spin state. In order to obtain integer occupation numbers tmend should be set to relatively low value, e.g. 50K.
Calculation of fractional occupation numbers should be used only for single point calculations. When used during structure optimizations it may lead to energy oscillations.
The optional nue value (number of unpaired electrons) can be used to force a certain multiplicity in case of an unrestricted calculation. nue=0 is for singlet, nue=1 for doublet, etc.
In addition there is an option addTS which adds the entropic contribution to the total energy. This term stems from partly occupied orbitals and is only necessary for very high temperatures to make the total energy consistent with the gradient.
$scfmo. This enables to evaluate properties or perform geometry optimizations in the presence of an external field.
Caution: don't use the RI approximation for all these calculations since this will lead to non-negligible errors!!
The following condition must be met:
and rhfshells 1 or 2.
It is advisable to set
$thize as small as possible
0.1d-08) and to remove the keyword
Note: this keyword does not work for parallel runs.
nirreps will hold the total number of displayed orbitals after the successful run.
$mo output format(3(2x,d15.8))
a 1-5 ( 2.00000000000000 ) a 6 ( 1.99949836999366 ) a 7 ( 1.99687490286069 ) a 8 ( 1.00000000000000 ) a 9 ( .00312509713931 ) a 10 ( .00050163000634 )
<x> <y> <z> <q>with
, , being the coordinates and
its charge,e.g.$point_charges thr=<real> self-energy nocheck list 2. 2. 2. 5. 5. 0. 0. 2.5In addition the following optional arguments may be given:
distance threshold for discarding redundant point charges, default value 10-6 .
if given, the selfenergy of the point charge array will will be included in the energy and the gradient
switches off the check for redundant point charges and the default symmetrization. This option can significantly speed up the point charge treatment if many of them are involved - use only if the point charges are well distributed and symmetry is C1 , e.g. when they stem from proper MM runs
print all point charges in the output (default is to print the point charges only if less than 100 charges given)
concerns the first SCF iteration cycle if start MOs from an EHT guess are used.
The SCF iteration procedure requires control mechanisms to ensure (fast) convergence, in TURBOMOLE these are based on orbital energies εi of the preceeding iteration used for level shifting and damping (besides DIIS, see below). This feature cannot be used in the first iteration if EHT MOs are employed as start, since εi are not available. The keyword $prediag provides ' εi of the zeroth iteration' by diagonalization of occ-occ and virt-virt part of the first Fock matrix, to allow for level shifting etc.. See $scfdiis below.
- $restart dscf twoint
Try a dscf restart. The program will read the data group $restartd (which must exist, also $scfmo has to exist!) and continue the calculation at the point where it ended before. If the additional option
twointis appended, the program will read the two-electron integrals from the files specified in $scfintunit, so there will be almost no loss of cpu-time.
All this information is normally provided by the previous dscf run if the keyword $scfdump (see there) was given.
- $restartd data
Data provided by a previous dscf run that has been interrupted. This keyword is created when $scfdump was given.
- $rundimensions data
is set by define so usually no changes are necessary. The dimensions must be greater or equal to those actually required, i.e. you can delete basis functions and keep rundimensions. This keyword is not necessary for small cases.
Example:dim(fock,dens)=6072 natoms=6 nshell=34 nbf(CAO)=108 nbf(AO)=98 dim(trafo[SAO<-->AO/CAO])=256 rhfshells=1
- $scfconv integer
SCF convergency criterion will be 10-integer for the energy. Gradients will only be evaluated if integer > 6.
- $scfdamp start=<.500> step=<.050> min=<.100>
Damping parameters for SCF iterations in order to reduce oscillations. The old Fock-operator is added to the current one with weight 0.5 as start; if convergence is good, this weight is then reduced by the step 0.05 in each successive iteration until the minimum of 0.1 is reached. (These are the default settings of define for closed-shell RHF). DSCF automatically tries to adjust the weight to optimize convergence but in difficult cases it is recommended to start with a large weight, e.g. 1.5, and to set the minimum to a larger value, e.g. 0.5.
- $scfdebug options
Flags for debugging purposes. Following options are available:
- vectors integer
Output level concerning molecular orbitals. integer=0 (default) means minimal output, > 1 will output all start MOs and all MOs in each iteration.
- density integer
Output level concerning difference density matrices.
- debug integer
integer > 0 will dump a lot of information--be careful!
- $scfdenapproxl integer
Direct SCF procedures build the Fock matrix by exploiting information from previous iterations for better efficiency. With this keyword information from the last integer iterations will be used. This feature is switched on with the default value 20, even if the keyword is absent. The user may reduce the number of iterations employed to smaller values (e.g. 10) in cases were numerical stability could become an issue. With the value 0 this feature is switched off; the Fock matrix is constructed from scratch in each iteration.
- $scfdiis options
Control block for convergence acceleration via Pulay's DIIS .
- specifies the kind of error vector to be used (two different kind of DIIS algorithms)
- char='FDS' or 'SDF' or 'FDS-SDF'
uses (FDS - SDF) as error vector.
- char= none
- char= sFDs
use S-1/2FDS1/2 - transposed
Defaults for $prediag (see above) and $scfdiis
maximum number of iterations used for extrapolation.
debug level (default: 0)
- print applied DIIS coefficients
- print DIIS matrix and eigenvalues, too
scaling factor in DIIS procedure: qscal > 1 implies some damping, qscal = 1.0: straight DIIS.
directs the reduction of qscal to qscal = 1.0 (no damping in DIIS), done if || errvec|| < thrd.
errvec=FDS-SDF, maxiter=5, qscal=1.2, thrd=0.0, this implies DIIS damping in all iterations, prediag is switched of.
errvec=sFDs leads to the following defaults:
qscal=1.2, for SCF runs: maxiter=6 and thrd=0.3, prediag is off; for DFT runs: maxiter=5 and thrd=0.1 prediag is on. If you want to switch off prediag put
Dump SCF restart information onto data group $restartd and dump SCF MOs in each iteration onto $scfmo (scfdump = iter). Additionally, a data block $scfiterinfo will be dumped containing accumulated SCF total-, one- and two-electron energies of all previous SCF iterations. Information that will allow you to perform a restart if your calculation aborts will be dumped on data group $restartd (see also $restart).
- $scfintunit options
Disc space specification for two-electron integrals. The following suboptions are available (and necessary):
Thus your data group $scfintunit may look like this:
Fortran unit number for this file. Unit numbers 30,31,... are recommended.
Filespace in megabytes for this file. size=0 leads to a fully direct run. size is set by a statistics run, see $statistics. DSCF switches to direct mode if the file space is exhausted.
Filename. This may also be a complete path name, if you want to store the integrals in a special directory. Make sure the file is local, otherwise integrals are transmitted over the network.$scfintunit unit=30 size=35 file=twoint1 unit=31 size=35 file=/users/work/twoint2Maximal 30 files may be specified in this way.
- $scfiterlimit integer
Maximum number of SCF iterations (default: 30).
- $scfmo none file=char
Input/output data group for SCF MOs. You can specify
To perform a calculation without a start vector (i.e. use a core Hamiltonian guess).
The file where the MOs are written on output (default: mos).
These two options can also be used for $uhfmo_alpha and $uhfmo_beta to use a core guess and write the molecular orbitals to
After running define or a TURBOMOLE calculation additional options may appear specifying the origin of the MOs:
These MOs were obtained by projection form another basis set. They should not be used for wavefunction analysis.
The MOs are converged SCF MOs , the convergence criterion applied was 10-integer
The MOs are unconverged SCF MOs which were written on this data group after iteration integer. The latter three options are mutually exclusive.
- format(format string)
This specifies the FORTRAN format specification which was used for MO output. The standard format is (4d20.14). (See data group $mo output format.)
Your data group $scfmo could look like this after a successful TURBOMOLE run :$scfmo scfconv=7 format(3(1x,d19.13)) 1 a1 eigenvalue=-.524127 nsao=6 .1234567890123d+01 -.1234567890123d+00 .1234567890123d-01 .1234567890123d+01 -.1234567890123d+00 3 a2 eigenvalue=-.234810 ...
- $scforbitalorder on/off
Order SCF MOs with respect to their energies (default: on)
- $scforbitalshift options
To assist convergence, either the energies of unoccupied MOs can be shifted to higher energies or, in open-shell cases, the energies of closed-shell MOs to lower energies. In general a large shift may help to get better convergence.
Automatic virtual shell shift switched off.
- automatic real
Automatic virtual shell shift switched on; the energies of virtual orbitals will be shifted if the HOMO-LUMO gap drops below real such that a gap of real is sustained. This is the default setting if the keyword is missing with real=0.1.
Option for open-shell cases. Closed shells are shifted to lower energies by real. The default shift value is closedshell=0.4.
Note: Normally this will disable the automatic shift of energies of virtual orbitals! To override this, you should append an exclamation mark to the 'automatic' switch, i.e. specify 'automatic! real'.
Set shifts for special occupied MOs. To use this option, start the line with the symmetry label and the list of MOs within this symmetry and append the desired shift in brackets as in the following example:a1 1,2,4-6 (-.34) b1 8 (+.3)
- $scftol real
Integral evaluation threshold. Integrals smaller than real will not be evaluated. Note that this threshold may affect accuracy and the convergence properties if it is chosen too large. If $scftol is absent, a default value will be taken obtained from $scfconv by real = (#bf = number of basis functions).
- $scratch files
The scratch files allocated by dscf can be placed anywhere in your file systems instead of the working directory by referencing their pathnames in this data group. All possible scratch files are listed in the following example:
$scratch files dscf dens path1/file1 dscf fock path2/file2 dscf dfock path3/file3 dscf ddens path4/file4 dscf statistics path7/file7 dscf errvec path8/file8 dscf oldfock path9/file9 dscf oneint path10/file10
The first column specifies the program type (
dscfstands for SCF energy calculations, i.e. the dscf program), the second column the scratch file needed by this program and the third column the pathname of the file to be used as scratch file.
- $statistics options
The following options are allowed
- Do not perform integrals statistics
- Perform integrals statistics for dscf
- see KORA
- see mpgrad
- see POLLY
- dscf parallel
- see PARALLEL PROCESSING
kora, dscf parallel, grad, mpgrad, pollywill be described in the related chapters.
$statistics dscfhas been given integral prescreening will be performed (which is an n4 -step and may therefore be time-consuming) and a table of the number of stored integrals as a function of the two parameters
$thimewill be dumped. Afterwards, the filespace needed for the current combination of
$thimewill be written to the data group ($scfintunit) and
$statistics dscfwill be replaced by
- $thime integer
Integral storage parameter, which is related to the time needed to calculate the integral. The larger integer the less integrals will be stored. The default value is integer = 5. (see also $thize, $statistics)
- $thize real
Integral storage parameter, that determines, together with $thime, the number of integrals stored on disc. Only integrals larger than real will be stored. The default value is real = 0.100E-04.