Meta-Dynamics Simulations

In this guide, all necessary information will be given in order to perform meta-dynamics (MTD) simulations with the xtb program. For the theory behind our MTD approach please refer to:

S. Grimme, Exploration of Chemical Compound, Conformer, and Reaction Space with Meta-Dynamics Simulations Based on Tight-Binding Quantum Chemical Calculations, J. Chem. Theory Comput., 2019, 155, 2847-2862. DOI: 10.1021/acs.jctc.9b00143 Publication Date (Web): April 3, 2019

From a practical point of view the application of meta-dynamics is quite similar to molecular-dynamic simulations. In MTD simulations a biasing potential given as a sum of Gaussian functions is additionally expressed. The root-mean-square deviation (RMSD) in Cartesian space is chosen as a metric for the collective variables.

All adjustable parameters will be discussed and a guide to how to change them will be given as well as an example.

General MTD Setup

For any MTD calculation a Detailed Input file is necessary to enter the correct calculation mode. The basic parameters for dynamics are taken from the $md block as described in the section regarding Molecular Dynamics Simulations. The $metadyn data group has to be present in the input file. All available instructions for this data group are shown here:

key

value

description

save

integer

maximal number of structures for rmsd criteria

kpush

real

scaling factor for rmsd criteria

alp

real

width of the gaussian potential used in the rmsd criteria

coord

file

external structure file to initialize rmsd criteria

atoms

list

atoms to include in the rmsd calculation (default: all)

To avoid accidental activation of the bias potential conservative default values are chosen in the program. So you cannot simply use a commandline-only approach to perform a MTD calculation. First of all you want to create a metadyn.inp file with this content

$metadyn
   save=10
   kpush=1.0
   alp=0.2
$end

You can start the metadynamic calculation now by using the --md commandline flag as

> xtb --md --input metadyn.inp coord

By using the flag --metadyn integer, the number of saved structures may also be entered via the commandline and need not to be present in the detailed input:

> xtb --metadyn 10 --input metadyn.inp coord

MTD specific Files

After the xtb program has performed the desired MTD simulation the trajectory of the structures can be found in xtb.trj. Furthermore, files with the names scoord.* are generated. After every picosecond of simulation the structure at this point will be written into these files. After a successful completion of the MTD simulation a xtbmdok file will be touched. The structure and velocities at the end of the simulation will be written into a mdrestart file.

Restart

The mdrestart file can be used to restart an MTD simulation. This can be very helpful for equilibration purposes. In order to achive this, in the $md block the restart parameter has to be set to true.

> cat xcontrol
$md
 restart=true

Example/Case study

To summarize the most important topics of this chapter we will perform an MTD simulation of the water dimer molecule with xTB. Make sure that xtb is properly set up and you have the following files in your working directory

> cat coord
$coord
  -3.41057596145012      0.01397950240733     -2.48858246259228       o
  -4.61882519451466     -0.37951683073135     -3.80598534178089       h
  -3.93472948277574      1.59474363012965     -1.77520048297923       h
  -6.45960866143682     -1.52443579539520     -6.62024481959292       o
  -5.26218381176973     -1.40667057754076     -7.97781013203256       h
  -6.78373759577982     -3.28799737179945     -6.34039886662289       h
$end

> cat metadyn.inp
$md
   time=10
   step=1
   temp=298
$end
$metadyn
   atoms: 1-3
   save=10
   kpush=0.02
   alp=1.2
$end

As you can see, we will run the MTD simulation for 10 ps with a timestep of 1 fs at a temperature of 298 Kelvin. For the meta-dynamics, only the structure of the first water molecule will be taken into account in the rmsd criteria. To start the simulation we call xtb as follows

> xtb --md --input metadyn.inp coord

The output for the example MTD simulation of the water dimer will look like this:

          -------------------------------------------------
         |                  Meta Dynamics                  |
          -------------------------------------------------
trajectories on xtb.trj or xtb.trj.<n>

MD time /ps        :   10.00
dt /fs             :    1.00
SCC accuracy       :    1.00
temperature /K     :  298.00
max steps          : 10000
block length (av.) :  5000
dumpstep(trj) /fs  :  100.00   100
dumpstep(coords)/fs: 1000.00  1000
H atoms mass (amu) :     2
# deg. of freedom  :    14
SHAKE on. # bonds  :           4  all: T
Berendsen THERMOSTAT on
kpush  :    0.020
alpha  :    1.200
update :  10
        time (ps)    <Epot>      Ekin   <T>   T     Etot
     0    0.00      0.00000   0.0198    0.    0.   -10.10916
est. speed in wall clock h for 100 ps :  0.01
   200    0.20    -10.09118   0.0116  559.  524.   -10.12881
   400    0.40    -10.11436   0.0105  454.  471.   -10.13041
   600    0.60    -10.12260   0.0070  431.  316.   -10.13157
   800    0.80    -10.12671   0.0071  412.  321.   -10.13081
   ...    ...      ...        ...     ...   ...     ...
  4800    4.80    -10.13763   0.0084  469.  379.   -10.13198
block <Epot> / <T> :     -10.13978  465.     drift:  0.99D+02   Tbath : 298.
  5000    5.00    -10.13775   0.0082  465.  368.   -10.13253
  5200    5.20    -10.13783   0.0129  469.  582.   -10.12808
  5400    5.40    -10.13794   0.0105  471.  474.   -10.13014
  5600    5.60    -10.13804   0.0090  470.  407.   -10.13140
  ...     ...      ...        ...     ...   ...     ...
  9800    9.80    -10.13918   0.0083  462.  376.   -10.13258
average properties
Epot               :  -10.1392169717059
Epot (accurate SCC):  -10.1402473210558
Ekin               :  1.019492766065306E-002
Etot               :  -10.1290220440452
T                  :   459.900938472654
thermostating problem
normal exit of md()

In the file xtb.trj we can find our trajectory. We can analyze the structures now by displaying them in a molecular graphics editor (e.g., MOLDEN, VMD etc. ) or a trajectory analyzer (e.g. TRAVIS).

Constrained MD/MTD simulations

As you may have noticed in the example given above by checking the file xtb.trj, the water dimer dissociates within the MTD simulation due to the applied bias potential. If you run dynamics for systems that are non-covalently bound, you may encounter this problem from time to time. To avoid dissociation you can try to confine the simulation in a sphere by a repulsive potential. For further details check how to confine a cavity in Detailed Input.

To avoid dissociation of the water dimer by a logfermi potential, the input file has to be modified:

> cat metadyn.inp
$md
   time=10
   step=1
   temp=298
$end
$metadyn
   atoms: 1-3
   save=10
   kpush=0.02
   alp=1.2
$end
$wall
   potential=logfermi
   sphere: auto, all
$end

To start the constrained MTD simulation we call xtb as follows:

> xtb --md --input metadyn.inp coord

If you now check the trajectory file, you will see that the water molecules do not separate.

Note

The wall potential does not only work for MD/MTD simulations. It may also be applied in the same manner for single point calculations and geometry optimizations.