Input¶
The following section contains a comprehensive list of all relevant input keys and sub-keys for the program DFTB in the ADF modelling suite.
Computational Task¶
The section Task is used to specify the computational task to perform with the DFTB program. This section and its only sub-key, runType, are mandatory therefore.
Task
runType type
End
Currently the DFTB program supports the following values for type
SinglePoint
orSP
for single point energy calculationsGeometryOptimization
orGO
for geometry optimizationsTransitionState
orTS
for transition state searchesFrequencies
orF
for frequency andPhonons
for phonon calculationsMolecularDynamics
orMD
for molecular dynamics simulations
Geometry¶
The input of the initial structure can be given with the following key System. Apart from cases in which the system is retrieved by restarting a previous calculations this specification is always required.
System
{Atoms
Atom Coords
End}
{Charge NetQ}
{Lattice
Vectors
End}
{LatticeStrain
eps1 value
eps2 value
eps3 value
eps4 value
eps5 value
eps6 value
}
{FractionalCoords}
End
The System key accepts a set of sub-keys to specify various details of the chemical system under evaluation
Atoms
Specifies the geometry of the molecular system as a list of rows, one row per atom.
Atom
- The name of an atom type. It must be the standard one- or two-characters symbol for the chemical element: H, He, Li, and so on.
Coords
- This specifies the coordinates of the atom. The x, y, z values of the Cartesian coordinates are by default interpreted in Ångstrom.
Charge
The net charge of the molecule can be controlled with the optional sub-key CHARGE. If this sub-key is omitted the net total charge of the molecule is by default zero.
NetQ
- The net total charge of the molecule.
Lattice
Information about the periodicity of the system is given through this sub-key. Its presence is optional, and it implies a periodic system. The subsequent computation will therefore evaluate the system accordingly. A list of up to three vectors (one per row) for the cell must be specified.
Vector
- Three floating point values defining the periodicity vector along a given direction. One, two, or three vectors can be specified (each on a different row) to express linear, planar or bulk periodicity, respectively. If one vector is specified, periodicity must develop along the x axis. If two vectors are specified, periodicity must develop along the xy plane. The unit is the same of the Atoms section.
LatticeStrain
Allows the application of a strain tensor to the lattice. The values of eps1 to eps6 represent the unique elements of the strain tensor, as follows:
eps1 eps6 eps5 eps6 eps2 eps4 eps5 eps4 eps3
FractionalCoords
- This optional keyword modifies how the ATOMS coordinates are interpreted. When the keyword is present, coordinates will be interpreted as fractions of the periodicity lattice vectors, instead of absolute geometric positions in 3D space. Necessarily, the presence of this sub-key requires LATTICE to be specified.
Additional Periodicity Data¶
Periodic
{KSpace NK}
{BZStruct {enabled=yes|no} {automatic=yes|no} {interpol=intVal}}
{Phonon reorderatoms=yes|no interpol=N stepsize=N nSides=1|2}
{BZPath
KMesh NMesh
{Path
End}
End}
{SuperCell
End}
{LatticeStepSize}
{stressTensor}
{Screening}
End
KSpace
- This parameter controls the number of k-points used in the calculation. For very small unit cells (one atom wide) a value of 5 is advised. For medium sized unit cells 3 is adequate. For very large ones (10 atoms wide) kspace=1 suffices. (Default is 5)
BZStruct
This controls the path taken through the Brillouin zone (for plotting purposes). It has no effect on the calculated energy. Specifying intVal the band structure is interpolated along the path (so extra k-points are generated). You can also specify a path by hand, setting automatic to no. The points in the path should be entered in the BZPath key.
enabled
- By default this feature is enabled.
automatic
- Whether of not to use the automatic path generation.
interpol
- Level of interpolation to use along the path
Phonon
This enables a phonon run. One should start from a completely optimized system. Next one should choose a super cell. The phonon spectrum converges with super cell size. How big it should be depends on the system.
reorderatoms
- Technical option: put atoms of the same type after each other.
stepsize
- Step size to be taken to obtain the force constants (second derivative) from the analytical gradients.
nSides
- (Default: 2) By default a two-sided (or quadratic) numerical differentiation of the nuclear gradients is used. Using a single-sided (or linear) numerical differentiation is computationally faster but much less accurate (Note: in older versions of the program (older than r51762) only the single-sided option was available).
BZPath
Allows the user to specify manually a path through the BZ. The points are in terms of reciprocal lattice vectors.
KMesh
- The amount of points on each line segment
Path
- Each path consists of a number of points, which are assumed to be connected.
SuperCell
- Used for the phonon run. The super lattice is expressed in the lattice vectors. Most people will find a diagonal matrix easiest to understand.
Changing the default Units¶
The Units key is optional. It allows to specify different units for Length, Angle, and Time, in place of the default ones.
Units
{length angstrom|bohr}
{angle degree|radian}
{time femtosec|au}
End
The default values are angstrom, degree, and femtosec.
Single Point Calculations¶
Single point energy calculations are specified via the runtype keyword “SP”
Task
runType SP
End
DFTB Model Hamiltonian¶
DFTB
ResourcesDir relativepath
{RadialExtrapolation none|linear|improved|original|bezier}
{SCC
{iterations NIter}
{thirdorder}
{hxdamping}
{converge charge=QDiff}
{mixing Mix}
{ndiis}
{InitialCharges
...
End}
End}
{Purify tol=tol}
{SparsityThreshold sparsitythreshold}
{UseSymmetry yes|no}
{Repulsion
forcePolynomial
End}
{Dispersion
method UFF|ULG|D2|D3-BJ
d3parameters s6=S6Param s8=S8Param a1=A1Param a2=A2Param
End}
{Occupation aufbau|fermi {temperature=FermiTemp}}
End
This mandatory key allows to specify and control different aspects of the DFTB evaluation engine.
ResourcesDir
Allows to specify the path (relative to $ADFRESOURCES/DFTB) of the directory containing DFTB parameter files. Different parameters may be suitable for different DFTB evaluations. It is important to choose the appropriate parameter set for the type of calculation and molecular system under study. Alternatively, an absolute path (starting with a slash character) can be specified to have complete freedom over the location of the directory. Examples:
ResourcesDir Dresden
- Uses the Resource directory $ADFRESOURCES/DFTB/Dresden
ResourcesDir /home/myusername/myskfdir
- Uses the specified path /home/myusername/myskfdir as the resource directory
NOTE: each resource directory should contain a file called metainfo.yaml, which defines extra information (Hubbard derivatives, dispersion parameters, etc.) required by DFTB calculation. For details see metainfo.yaml.
RadialExtrapolation
Advanced control option. Overrides the extrapolation method for Slater-Koster grid values between the end of the tabulated grid and the cutoff distance (value for which atoms are considered too far to interact). Depending on the structure of your Slater-Koster tables, a different radial extrapolation method may be needed in order to guarantee correct behavior, in particular for large and periodic systems. Five different extrapolation strategies are available:
none
- Performs no extrapolation, the value being forced to zero at distances greater than the grid last position.
linear
- performs a linear interpolation between the last point of the grid and the value of zero, at cutoff distance.
improved (default)
- Perform a 9th grade polynomial interpolation between 6 points of the grid and three zeros. This interpolation may prove unstable for particular Slater-Koster data
original
- same as improved, but reproducing behavior of previous reference programs. Should not be used in general.
bezier
- Uses a Bzier curve passing through the last grid point and the cutoff point, guaranteeing continuity and smoothness. This is the suggested method in case of unexpected behavior.
SCC
The SCC key is optional. By its presence the SCC-DFTB model is used, where the self-consistent-charge (SCC) iterative procedure is performed. If this key is not present, DFTB will perform a non-SCC evaluation (standard DFTB). Subkeys are optional for setting up the SCC details and choosing the SCC level:
thirdorder
- This option enables the DFTB3 model, hence applies a third-order correction in addition to SCC-DFTB.
hxdamping
- This option activates the H-X damping treatment for the selected SCC-DFTB model. Note that this treatment is also automatically enabled by the presence of the above thirdorder key.
iterations NIter
- Allows to specify the maximum number of SCC iterations. Default is 100 iterations, which suffices for most standard calculations. If convergence issues are encountered, choosing a smaller value mixing parameter (see below) often provides a more stable but slower way to complete successfully the iteration. Eventually convergence issues may also arise due to the use of the Aufbau principle when determining occupations. In this case the use of a Fermi broadening strategy may improve convergence (see below).
converge charge=QDiff
- SCC convergence threshold in terms of maximum change in the atomic charges (in atomic units) between two succeeding SCC cycles. Default converge charge 1.0E-8.
ndiis Ndiis
- Specifies the maximum number of samples considered during the direct inversion of iteration of subspace (DIIS) extrapolation of the atomic charges in during the SCC iterations (default ndiis 20). A smaller number of samples potentially leads to a more aggressive convergence acceleration, while a larger number often guarantees a more stable iteration. Due to often occurring linear dependencies within the set of sample vectors, the maximum number of samples is reached only in very rare cases.
mixing Mix
- Mix is the parameter used to mix the DIIS linear combination of previously sampled atomic charge vectors with an analogous linear combination of charge vectors resulting from population analysis combination. The default for the mixing parameter is 0.2 and it can assume real values between 0 and 1.
InitialCharges
- This section allows to set initial Mulliken charges for the SCC cycle. Specify one number per line and atom. The order has to be the same as in the atoms block.
Purify tol=tol
- By default (when this key is not present), the next step density matrix is calculated from molecular orbitals obtained as eigenvectors of the charge-dependent Hamiltonian. An alternative way to obtain the density matrix is using an iterative purification procedure enabled by this keyword. The tol parameter defines the purification convergence threshold. Purification is considered converged when the trace of the density matrix becomes equal to the total number of electrons within tol. The default value is 1.e-8.
SparsityThreshold sparsitythreshold
- The sparsitythreshold parameter defines the threshold below which small density matrix components are discarded after each matrix-matrix multiplication. The default value is 1.e-8.
UseSymmetry yes|no
- Enables or disables the use of symmetry in systems with periodic cboundary conditions. Not used in molecular calculations. The key is optional, and in its absence the default is yes. For MD calculations, NO symmetry will be used.
Repulsion
- This key allows to specify some details about the repulsion contribution evaluation. It accepts only one sub-key “forcePolynomial”, which forces the use of the polynomial representation (as defined in the header of the Slater-Koster parameter files), in place of the Spline description.
Dispersion
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.
Occupation
- This optional key allows to specify the fill strategy to use for the orbitals. It can be either “aufbau”, to fill the orbitals according to the Hund’s rule, or “fermi”, to perform electronic charge distribution over the orbitals. If “fermi” is specified, a further “temperature” option must be present, specifying the Fermi temperature in Kelvin (K) If this key is absent, the default is Fermi occupation with a temperature of 5K.
Geometry optimization¶
Geometry optimizations are enabled by setting the runType key to “GO”
Task
runType GO
End
The actual behavior of the geometry optimization can be specified in more detail by the following input block.
Geometry
{Method quasinewton|conjgrads|gdiis}
{CGType fletcherreeves|polakribiere|hestenesstiefel|perry|birginmartinez|
scaled|adaptedscaled1|adaptedscaled2|swartdyn1|swartdyn2}
{SwartIter Niter}
{Optim Cartesian|Delocal|Primitive|Internal}
{initialHessian swart|unit}
{Iterations Niter}
{Converge {E=TolE} {Grad=TolG} {Rad=TolR}}
{Step {TrustRadius=MaxRadius}}
{OptimizeLattice [Yes|No]}
End
Geometry allows to specify information about the geometry optimization strategy. The keyword must be specified only for those Task runTypes requiring a geometry optimization (GeometryOptimization and TransitionState).
Method
quasinewton|conjgrads|gdiis
- Selects the optimisation algorithm employed for the geometry relaxation. Currently supported are the Hessian-based Quasi-Newton-type BFGS algorithm and its variant based on the direct inversion of iterative subspace (GDIIS), as well as the purely gradient-based conjugate gradients method. The default is “quasinewton”.
CGType
Defines the methodology to compute the \(\beta_n\) value to update the conjugate direction. This keyword is relevant only if the Method is conjgrads. By default, the Fletcher Reeves methodology is used.
fletcherreeves
- Uses the Fletcher-Reeves formula \(\beta_{n} = \frac{\Delta x_n^\top \Delta x_n} {\Delta x_{n-1}^\top \Delta x_{n-1}}\)
polakribiere
- Uses the Polak-Ribiere formula \(\beta_{n} = \frac{\Delta x_n^\top (\Delta x_n-\Delta x_{n-1})} {\Delta x_{n-1}^\top \Delta x_{n-1}}\)
hestenesstiefel
- Uses the Hestenes-Stiefel formula \(\beta_n = -\frac{\Delta x_n^\top (\Delta x_n-\Delta x_{n-1})} {s_{n-1}^\top (\Delta x_n-\Delta x_{n-1})}\)
perry
- Uses the Perry formula \(\beta_n = -\frac{\Delta x_n^\top (\Delta x_n-\Delta x_{n-1})} {s_{n-1}^\top (\Delta x_n-\Delta x_{n-1})}\)
birginmartinez
- Similar to Perry, with a scaled \((\Delta x_n-\Delta x_{n-1})\) at the numerator by \(\theta = \frac{s_{n-1}^\top{s_{n-1}}}{s_{n-1}^\top (\Delta x_n-\Delta x_{n-1})}\)
scaled
- Uses \(\beta_n^{Scaled} = - \frac{\Delta x_n^\top \Delta x_n - \Delta x_{n-1}^\top \Delta x_{n}}{s_{n-1}^\top \Delta x_{n-1}}\)
adaptedscaled1
- Same as scaled, with \(\beta = \max\left({1-\beta_n^{Scaled}, \beta_n^{Scaled}}\right)\)
adaptedscaled2
- Same as scaled, with \(\beta = 1-\beta_n^{Scaled}\)
swartdyn1
- Uses adaptedscaled1 up to a given number of steps (specified as SwartIter), then uses Polak-Ribiere
swartdyn2
- Uses adaptedscaled2 up to a given number of steps (specified as SwartIter), then uses Polak-Ribiere
SwartIter
- Defines the number of steps required for the swartdyn CGTypes to switch methodology. Only relevant when the proper CGType is used. Default is 300
Optim
cartesian|delocal|primitive|internal
- Optimization in delocalized coordinates (Delocal) can only be used for geometry optimizations or transition state searches of molecular systems with the Quasi-Newton method.
InitialHessian
swart|unit
- Selects the type of the initial model Hessian when optimizing (periodic systems) with either the Quasi-Newton or the GDIIS method.
Iterations
Niter
- The maximum number of geometry iterations allowed to locate the desired structure. The default is 50.
Converge
Convergence is monitored for two items: the energy and the Cartesian gradients. Convergence criteria can be specified separately for each of these items:
TolE
- The criterion for changes in the energy, in Hartree. Default: 1e-5.
TolG
- Applies to gradients, in Hartree/Ångstrom. Default: 1e-3.
TolR
- The maximum Cartesian step allowed for a converged geometry, in Ångstrom. Default: 0.001 Ångstrom.
Step
Controls that changes in geometry from one cycle to another are not too large:
MaxRadius
- By default, the trust radius is set to 0.2. Using the key, the user can override this, setting a constant value. A conservative value is 0.2. A large system (e.g., 100 atoms) typically needs a larger trust radius (e.g. 0.8).
OptimizeLattice
- Default: No. Enables optimization of the Lattice parameters, in addition to the molecular geometry. This can only be applied to periodic systems.
Constrained Optimization¶
The CONSTRAINTS keyword allows geometry optimizations with constraints for the distance between two atoms, an angle defined by three atoms, or a dihedral angle defined by four atoms:
CONSTRAINTS
DIST Ia1 Ia2 Ra
ANGLE Ib1 Ib2 Ib3 Rb
DIHED Ic1 Ic2 Ic3 Ic4 Rc
end
The DIST, ANGLE, and DIHED constraints do not have to be satisfied at the start of the geometry optimization.
DIST
- When DIST is specified, the distance between atoms Ia1 and Ia2 is constrained to the value Ra in Ångstrom.
ANGLE
- When ANGLE is specified, the angle between atoms Ib1, Ib2 and Ib3 (Ib1-Ib2-Ib3) is constrained to the value Rb in degrees.
DIHED
- When DIHED is specified, the dihedral angle between atoms Ic1, Ic2, Ic3 and Ic4 (Ic1-Ic2-Ic3-Ic4) is restrained to the value Rc in degrees. The dihedral angle is projected onto the [0, 2 \(\pi\)] interval, so there should be no difference between specifying -30 deg; or 330 deg;.
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. Starting with the 2016 release, DFTB also supports the calculation of excited state gradients, which allows geometry optimizations and vibrational frequency calculations for excited states.
The TDDFTB 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:
Properties
Excitations
{SingleOrbTrans
{Filter
{dEMin r}
{dEMax r}
{OSMin r}
End}
{printlowest n}
End}
{TDDFTB
calc singlet|triplet
{lowest n}
{upto r}
{diagonalization exact|davidson|auto}
{DavidsonConfig
{ATCharges onthefly|precalc}
{tolerance r}
{safetymargin n}
End}
{print evcontribs}
End}
{TDDFTBGradients
{excitation n}
{eigenfollow true|false}
End}
End
End
SingleOrbTrans
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.
Filter
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 TDDFTB and nothing will be printed unless printlowest is specified explicitly.
TDDFTB
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 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 values singlet or triplet. Note that this key is not optional: If the TDDFTB 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 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.
DavidsonConfig
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.
TDDFTBGradients
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.
Molecular Dynamics¶
MD
Steps NSteps
TimeStep TStep
{Restart file=path}
{Checkpoint frequency=ChkFreq}
{Trajectory samplingFreq=SFreq}
{Preserve [TotalMomentum AngularMomentum CenterOfMass All None]}
{InitialVelocities zero|inline|random {temperature=InitTemp}}
{InlineVelocities
velocityVector
End}
{Thermostat type=ThermoType {thermostat options}}
End
The DFTB program supports molecular dynamics (with Velocity Verlet) with and without thermostats. This key, used with Task runType is set to MD, allows to specify the information needed by the molecular dynamics evaluation. This implementation of MD supports periodic systems.
Steps NSteps
- Specifies the number of steps to be taken in the MD simulations. It accepts a simple integer number NSteps.
TimeStep TStep
- Specifies the time for each step. By default, the unit is femtoseconds. Through the Units key, it can be changed to atomic units of time.
Restart file=path
- Triggers a restart procedure, recovering the latest known information from the specified file (either a final .rkf file, or a checkpoint .chk file). When this keyword is present, System, Velocity, previous average values and energy transfers will be recovered from the file, ignoring any redundant specification made in the input file. This is the only situation where the System keyword can be omitted.
Checkpoint frequency=ChkFreq
- Sets the frequency (in steps) for checkpoint the current status to a file. This allows to restart from an intermediate configuration in case of a crash of the program or the system. The keyword is optional; if not specified, by default is equal to the number of steps divided by 4. Only the most recent checkpoint is preserved. In case of crash, the checkpoint may be found in the execution temporary directory, instead of the working path. Checkpoint files can be inspected with the GUI for the latest configuration.
Trajectory samplingFreq=SFreq
- Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file. This keyword is optional, and the default is the number of steps divided by 1000 (minimum one).
Preserve [TotalMomentum AngularMomentum CenterOfMass All None]
Constrains the molecular dynamics simulation to preserve different whole-system parameters. Note that this option has poor meaning for periodic systems. The keys can be given as a sequence out of the allowed list, with words separated by spaces
TotalMomentum
- removes the overall velocity of the system from the atomic velocities.
AngularMomentum
- removes the overall angular velocity of the system from the atomic velocities.
CenterOfMass
- keeps the molecular system centered on the current center of mass.
All
- Specifying “All” is equivalent of specifying all of the above keywords
None
- None of the above options will be enabled. This is the default setup if the Preserve keyword is not specified.
InitialVelocities zero|inline|random {temperature=InitTemp}
Specifies the initial velocities to assign to the atoms. Three methods to assign velocities are available
zero
- All atom’s velocities are set to zero
inline
- Atom’s velocities are set to the values specified in the key InlineVelocities (see below)
random temperature=InitTemp
- Atom’s velocities are set to random values according to the specified temperature InitTemp, in kelvin. The temperature keyword is mandatory for this choice.
InlineVelocities
- This optional key is read when InitialVelocities inline option is used. It allows to specify the velocities for each atom. Each row must contain three floating point values (corresponding to the x,y,z component of the velocity vector) and a number of rows equal to the number of atoms must be present, given in the same order as the System Atoms specification.
Available Thermostats¶
The key Thermostat allows to specify the use of a thermostat during the simulation. Depending on the selected thermostat type, different additional options may be needed to characterize the specific thermostat behavior. At the moment, the following choices for the type parameter are available
None
- No thermostat applied. This is the default if no Thermostat key is present.
Scale
Applies a scaling of the velocities in agreement to the specified temperature. The following options are required for this thermostat
frequency=NSteps
- This parameter is optional. If specified, the thermostat will be applied every NSteps, using that step’s ensemble temperature and the specified thermostat temperature to compute the scaling factor. If not specified, the thermostat will be applied at every step, using the mean temperature of the ensemble and the specified thermostat temperature to compute the scaling factor.
temperature=Temp
- Specifies the temperature of the thermostat, in kelvin. This parameter is mandatory.
Berendsen
Applies the Berendsen thermostat. The following options are required for this thermostat
tau
- Specifies the initial tau parameter for the Berendsen thermostat, in femtoseconds (can be changed via Units key).
apply=local|global
- Defines the scope of application of the scaling correction, either per-atom-velocity (option local) or on the molecular system as a whole (option global)
temperature=Temp
- Specifies the temperature of the thermostat, in kelvin. This parameter is mandatory.
Restart¶
Restart
{RestartFile}
{RestartMulliken}
{RestartOrbitals}
End
Timing details¶
For developers: one can get timing details to see which part of the code takes most time. Default value is None.
Print
timers {None | Normal | Detail | TooMuchDetail}
End