qmsim_manual.txt

text/plain qmsim_manual.txt — 8.9 KB

Dateiinhalt

Short description of QMSIM.

QMSIM could be used to carry out molecular dynamics simulations of nonperiodic and periodic systems.
The support for the periodic systems includes: 1) Ewald summation for the electrostatic interactions;
2) tapered cut-off dispersion and repulsion interactions; and, 3) intramolecular hydrogen bonds, if needed.
The minimum image convention to the periodic boundary conditions is applied to whole molecules, which requires
that each and every fully covalently bound structure must be declared as a separate fragment (see below for definition).

Nonperiodic boundary condition do not require the latter constraint.

Molecular dynamics simulations could be performed in various ensembles including NVT and NPT. The integration of the
equations of motion is carried out by a modified Berendsen thermostat and barostat coupled with leap-frog algorithm.
The code allows timesteps of 1 fs by using the SHAKE algorithm, which constrains the hydrogen-containing covalent bonds.

The input file, qms_control is structured as follows:

1) the keyword "$model" has two options mm - for full molecular mechanics treatment, and qm - for QM/MM treatment

The code makes distinction between two broadly defined groups of species: solute, which consists of unique units; and
solvent, which may or may not consist of several fragments but which could be replicated as a whole to generate a box or a droplet.

2) the keyword "$solute" initiates the definition of the solute in the simulation. It is followed by a sequence of entries each one in a 
separate line. Each entry contains the name of the *.solv file with the definition of the force field and the number of replicas.
It is generally assumed that each entry is a fragment. (NB: Peridic boundary conditions require all covalently bound moieties to be declared as separate fragments(entries)).
If there is more than one fragment, the code will read the coordinates of the whole complex from a file coordu. This file must be present in the
current working directory. The *.solv files on the other hand are stored in the source directory of the code at present. This default location 
could be changed with the help of the .qmsolvrc file located in the user's home directory (the last 4th line of qmsolvrc). If a QM/MM simulation is to be carried out,
the first entry of the solute list should be a coord file. In this case, only one fragment is allowed for the QM region. 
Finally, the list of entries defining the solute is terminated by the keyword "$end solute". 

3) the keyword "$solvent" initiates the definition of the solvent, and the solvent list of fragments is terminated by the keyword "$end solvent".
The rest of the solvent definitions are the same as the solute except that no QM region is allowed and in the case of multiple fragments a coordv file
is required in the current working directory.

4) the keyword "$nmol" determines the number of copies of solvent species, which will be used for the construction of the box or the droplet. Note that
the solvent may have more than one fragments, in which case the whole complex is replicated to build the assembly. For instance, if a solvent had two
fragments, one would form a binary liquid after replication, in the case of three component - a ternary liquid, and so on. The coordinates of the 
replicated cluster or molecule are read from the coordv file.

NB: The presence of solvent does not require the definition of solute and vice versa.

5) the keyword "$pbc" defines periodic boundary conditions, and thus determines further that if there is a solvent present, a rectangular box will be built
by the replication and reorientation of "nmol" copies of solvent (cluster or molecule). Please refer above for the "$nmol" keyword and the solute and 
solvent definitions. 

6) the keyword "$shake" switches the constrained algorithm on.

7) the keyword "$restart" determines that the simulation is continued from a previous run. Thus, the values of the velocities, box dimensions, and coordinates
will be read from an mdrestart file, which must be present in the current working directory. This file is overwritten at regular intervals in the course of an
MD simulation.

8) keywords "$noprescontrol" and "$notempcontrol" switch off the barostat and the thermostat, respectively. The default ensemble is NPT.

9) keyword "$temp" and "$press" are followed by the values of the reference temperature and pressure.

10) keyword "$time" gives the simulation time in ps.

11) keyword "$tstep" provides the timestep in fs, which is recommended to be 0.5 fs in the case of no constraints, and 1. fs in the case of using SHAKE.

Nonperiodic boundary condition (droplet) are assumed by default and are thus imposed if the keyword "pbc" is removed from the list. The available ensemble in this case is
NVT or the density can be maintained at a predefined value by varying the range of a spherical restraining potential that defines the droplet and prevents evaporation.

12) keyword "$nobox" switches off the both the droplet and periodic cubic boundary conditions. It should be used if the user wishes to perform a gas phase simulation.

13) keyword "$optimize" switches on the cartisian optimizer. It is recommended that one optimizes the system before initializing an MD simulation unless the simulation is restarted.
The optimizer has internally defined criteria to stop the optimization. Those are relatively loose as appropriate for optimization before MD simulation.

14) keyword $hydrogen bonds switches on the H-bond term in the force field.

15) in the case of QM/MM simulations, one has to specify the QM method. This is done by the keyword $qmmethod followed by dftb, tm, orca, mop3, mop6, mop7, for the various QM methods/program codes to be used.
NB Take care in the case of QM/MM simulations for the path adjustments in the ~/.qmsolvrc file. This file must be present in the user's home directory.

16) the QMSIM is OMP parallelized. One can use this feature, if before execution, one issues the following at the prompt export OMP_NUM_THREADS=<the number of threads available>.

For example, in the case of simulation of liquid water represented by a rectangular box in periodic boundary conditions and containing 250 explicit water molecules at
constant temperature and pressure, the qms_control file should read as:

--------------------------------------------
$model mm
$solvent
  h2o.solv 1
$end solvent
$nmol 250
$pbc
$optimize
$shake
$temp 300.
$time 100.
$tstep 1.
$end
-------------------------------------------- 

To run the simulation, one has to simply issue the command qmsim at the prompt (Of course, the directory containing the binary must be visible in the PATH).

After a 100 ps, the user may wish to restart the simulation, then the qms_control file is:

--------------------------------------------
$model mm
$solvent
  h2o.solv 1
$end solvent
$nmol 250
$pbc
$restart
$shake
$temp 300.
$time 100.
$tstep 1.
$end
--------------------------------------------

If one likes to carry out a gas phase calculation, then the appropriate input is:

--------------------------------------------
$model mm
$solute
  mol1.solv 1
  mol2.solv 2
$end solute
$nobox
$noprescontrol
$optimize
$temp 400.
$time 100.
$tstep 0.5
$end
--------------------------------------------

In this example, we have a system containing one copy of mol1 and two copies of mol2. The system will be optimized at first and then a constant-temperature MD simulation will be carried out for 100 ps.

Output:

QMSIM writes various files and prints to the screen data during runtime. Most of the file content is self-explanatory from the file name. Shortly, the file that contains the trajectory written in xyz format is qmsolv.trj1. The qmsolv.trj2 contains the coordinates of the solute, if it is present. There are two other files with similar names that contain the velocities. The trajectory could be easily visualized by vmd. One could simply load the file and manually pick the file format to be *xyz from the drop-down menu of vmd. There are also a bunch of *.dat files that store the time series of various variables, such as temperature, pressure, etc.

The default frequency of writing the files is every 100 steps. It can be easily changed with the keyword $dump followed by the number of steps.

Another important file is mdrestart, which is written again every 100 steps and is read by QMSIM if there is the $restart keyword in qms_control.

The file ~/.qmsolvrc should contain four lines with four strings, they
are used to specify dftb+ code and skl file path, the mopac path and call,
and the path to *.solv files e.g. like:
/usr/local/dftb+/
/usr/local/bin/
/opt/mopac/MOPAC2012.exe
~/source/qmsolv/

Note: the intermolecular potential for condensed phase simulations requires re-adjustment 
in the repulsive part compared to the original QMDFF. We are currently working on this
topic to get liquid mass densities right. With the current QMDFF organic solvents are
typically too dense. This can be repaired by using
$scalerep <real>
the value of this scaling factor is around 1.4 for organic molecules.
Wird geladen