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

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