add information about the OPC model to the TIP4P howto
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
TIP4P water model
|
TIP4P and OPC water models
|
||||||
=================
|
==========================
|
||||||
|
|
||||||
The four-point TIP4P rigid water model extends the traditional
|
The four-point TIP4P rigid water model extends the traditional
|
||||||
:doc:`three-point TIP3P <Howto_tip3p>` model by adding an additional
|
:doc:`three-point TIP3P <Howto_tip3p>` model by adding an additional
|
||||||
@ -9,9 +9,11 @@ the oxygen along the bisector of the HOH bond angle. A bond style of
|
|||||||
:doc:`harmonic <bond_harmonic>` and an angle style of :doc:`harmonic
|
:doc:`harmonic <bond_harmonic>` and an angle style of :doc:`harmonic
|
||||||
<angle_harmonic>` or :doc:`charmm <angle_charmm>` should also be used.
|
<angle_harmonic>` or :doc:`charmm <angle_charmm>` should also be used.
|
||||||
In case of rigid bonds also bond style :doc:`zero <bond_zero>` and angle
|
In case of rigid bonds also bond style :doc:`zero <bond_zero>` and angle
|
||||||
style :doc:`zero <angle_zero>` can be used.
|
style :doc:`zero <angle_zero>` can be used. Very similar to the TIP4P
|
||||||
|
model is the OPC water model. It can be realized the same way as TIP4P
|
||||||
|
but has different geometry and force field parameters.
|
||||||
|
|
||||||
There are two ways to implement TIP4P water in LAMMPS:
|
There are two ways to implement TIP4P-like water in LAMMPS:
|
||||||
|
|
||||||
#. Use a specially written pair style that uses the :ref:`TIP3P geometry
|
#. Use a specially written pair style that uses the :ref:`TIP3P geometry
|
||||||
<tip3p_molecule>` without the point M. The point M location is then
|
<tip3p_molecule>` without the point M. The point M location is then
|
||||||
@ -21,7 +23,10 @@ There are two ways to implement TIP4P water in LAMMPS:
|
|||||||
computationally very efficient, but the charge distribution in space
|
computationally very efficient, but the charge distribution in space
|
||||||
is only correct within the tip4p labeled styles. So all other
|
is only correct within the tip4p labeled styles. So all other
|
||||||
computations using charges will "see" the negative charge incorrectly
|
computations using charges will "see" the negative charge incorrectly
|
||||||
on the oxygen atom.
|
located on the oxygen atom unless they are specially written for using
|
||||||
|
the TIP4P geometry internally as well, e.g. :doc:`compute dipole/tip4p
|
||||||
|
<compute_dipole>`, :doc:`fix efield/tip4p <fix_efield>`, or
|
||||||
|
:doc:`kspace_style pppm/tip4p <kspace_style>`.
|
||||||
|
|
||||||
This can be done with the following pair styles for Coulomb with a cutoff:
|
This can be done with the following pair styles for Coulomb with a cutoff:
|
||||||
|
|
||||||
@ -68,77 +73,90 @@ TIP4P/2005 model :ref:`(Abascal2) <Abascal2>` and a version of TIP4P
|
|||||||
parameters adjusted for use with a long-range Coulombic solver
|
parameters adjusted for use with a long-range Coulombic solver
|
||||||
(e.g. Ewald or PPPM in LAMMPS). Note that for implicit TIP4P models the
|
(e.g. Ewald or PPPM in LAMMPS). Note that for implicit TIP4P models the
|
||||||
OM distance is specified in the :doc:`pair_style <pair_style>` command,
|
OM distance is specified in the :doc:`pair_style <pair_style>` command,
|
||||||
not as part of the pair coefficients.
|
not as part of the pair coefficients. Also parameters for the OPC
|
||||||
|
model (:ref:`Izadi <Izadi>`) are provided.
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
:header-rows: 1
|
:header-rows: 1
|
||||||
:widths: 36 19 13 15 17
|
:widths: 40 12 12 14 11 11
|
||||||
|
|
||||||
* - Parameter
|
* - Parameter
|
||||||
- TIP4P (original)
|
- TIP4P (original)
|
||||||
- TIP4P/Ice
|
- TIP4P/Ice
|
||||||
- TIP4P/2005
|
- TIP4P/2005
|
||||||
- TIP4P (Ewald)
|
- TIP4P (Ewald)
|
||||||
|
- OPC
|
||||||
* - O mass (amu)
|
* - O mass (amu)
|
||||||
- 15.9994
|
- 15.9994
|
||||||
- 15.9994
|
- 15.9994
|
||||||
- 15.9994
|
- 15.9994
|
||||||
- 15.9994
|
- 15.9994
|
||||||
|
- 15.9994
|
||||||
* - H mass (amu)
|
* - H mass (amu)
|
||||||
- 1.008
|
- 1.008
|
||||||
- 1.008
|
- 1.008
|
||||||
- 1.008
|
- 1.008
|
||||||
- 1.008
|
- 1.008
|
||||||
|
- 1.008
|
||||||
* - O or M charge (:math:`e`)
|
* - O or M charge (:math:`e`)
|
||||||
- -1.040
|
- -1.040
|
||||||
- -1.1794
|
- -1.1794
|
||||||
- -1.1128
|
- -1.1128
|
||||||
- -1.04844
|
- -1.04844
|
||||||
|
- -1.3582
|
||||||
* - H charge (:math:`e`)
|
* - H charge (:math:`e`)
|
||||||
- 0.520
|
- 0.520
|
||||||
- 0.5897
|
- 0.5897
|
||||||
- 0.5564
|
- 0.5564
|
||||||
- 0.52422
|
- 0.52422
|
||||||
|
- 0.6791
|
||||||
* - LJ :math:`\epsilon` of OO (kcal/mole)
|
* - LJ :math:`\epsilon` of OO (kcal/mole)
|
||||||
- 0.1550
|
- 0.1550
|
||||||
- 0.21084
|
- 0.21084
|
||||||
- 0.1852
|
- 0.1852
|
||||||
- 0.16275
|
- 0.16275
|
||||||
|
- 0.21280
|
||||||
* - LJ :math:`\sigma` of OO (:math:`\AA`)
|
* - LJ :math:`\sigma` of OO (:math:`\AA`)
|
||||||
- 3.1536
|
- 3.1536
|
||||||
- 3.1668
|
- 3.1668
|
||||||
- 3.1589
|
- 3.1589
|
||||||
- 3.16435
|
- 3.16435
|
||||||
|
- 3.1660
|
||||||
* - LJ :math:`\epsilon` of HH, MM, OH, OM, HM (kcal/mole)
|
* - LJ :math:`\epsilon` of HH, MM, OH, OM, HM (kcal/mole)
|
||||||
- 0.0
|
- 0.0
|
||||||
- 0.0
|
- 0.0
|
||||||
- 0.0
|
- 0.0
|
||||||
- 0.0
|
- 0.0
|
||||||
|
- 0.0
|
||||||
* - LJ :math:`\sigma` of HH, MM, OH, OM, HM (:math:`\AA`)
|
* - LJ :math:`\sigma` of HH, MM, OH, OM, HM (:math:`\AA`)
|
||||||
- 1.0
|
- 1.0
|
||||||
- 1.0
|
- 1.0
|
||||||
- 1.0
|
- 1.0
|
||||||
- 1.0
|
- 1.0
|
||||||
|
- 1.0
|
||||||
* - :math:`r_0` of OH bond (:math:`\AA`)
|
* - :math:`r_0` of OH bond (:math:`\AA`)
|
||||||
- 0.9572
|
- 0.9572
|
||||||
- 0.9572
|
- 0.9572
|
||||||
- 0.9572
|
- 0.9572
|
||||||
- 0.9572
|
- 0.9572
|
||||||
|
- 0.8724
|
||||||
* - :math:`\theta_0` of HOH angle
|
* - :math:`\theta_0` of HOH angle
|
||||||
- 104.52\ :math:`^{\circ}`
|
- 104.52\ :math:`^{\circ}`
|
||||||
- 104.52\ :math:`^{\circ}`
|
- 104.52\ :math:`^{\circ}`
|
||||||
- 104.52\ :math:`^{\circ}`
|
- 104.52\ :math:`^{\circ}`
|
||||||
- 104.52\ :math:`^{\circ}`
|
- 104.52\ :math:`^{\circ}`
|
||||||
|
- 103.60\ :math:`^{\circ}`
|
||||||
* - OM distance (:math:`\AA`)
|
* - OM distance (:math:`\AA`)
|
||||||
- 0.15
|
- 0.15
|
||||||
- 0.1577
|
- 0.1577
|
||||||
- 0.1546
|
- 0.1546
|
||||||
- 0.1250
|
- 0.1250
|
||||||
|
- 0.1594
|
||||||
|
|
||||||
Note that the when using the TIP4P pair style, the neighbor list cutoff
|
Note that the when using a TIP4P pair style, the neighbor list cutoff
|
||||||
for Coulomb interactions is effectively extended by a distance 2 \* (OM
|
for Coulomb interactions is effectively extended by a distance 2 \* (OM
|
||||||
distance), to account for the offset distance of the fictitious charges
|
distance), to account for the offset distance of the fictitious charges
|
||||||
on O atoms in water molecules. Thus it is typically best in an
|
on O atoms in water molecules. Thus, it is typically best in an
|
||||||
efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2\*(OM
|
efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2\*(OM
|
||||||
distance), to shrink the size of the neighbor list. This leads to
|
distance), to shrink the size of the neighbor list. This leads to
|
||||||
slightly larger cost for the long-range calculation, so you can test the
|
slightly larger cost for the long-range calculation, so you can test the
|
||||||
@ -192,6 +210,94 @@ file changed):
|
|||||||
run 20000
|
run 20000
|
||||||
write_data tip4p-implicit.data nocoeff
|
write_data tip4p-implicit.data nocoeff
|
||||||
|
|
||||||
|
When constructing an OPC model, we cannot use the ``tip3p.mol`` file due
|
||||||
|
to the different geometry. Below is a molecule file providing the 3
|
||||||
|
sites for an implicit OPC geometry with TIP4P styles. Note, that the
|
||||||
|
"Shake" and "Special" sections are missing here. Those will be
|
||||||
|
auto-generated since the molecule file is loaded *after* the simulation
|
||||||
|
box has been created. They are required only when the molecule file
|
||||||
|
is loaded *before*.
|
||||||
|
|
||||||
|
.. _opc3p_molecule:
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
# Water molecule. 3 point geometry for OPC model
|
||||||
|
|
||||||
|
3 atoms
|
||||||
|
2 bonds
|
||||||
|
1 angles
|
||||||
|
|
||||||
|
Coords
|
||||||
|
|
||||||
|
1 0.00000 -0.06037 0.00000
|
||||||
|
2 0.68558 0.50250 0.00000
|
||||||
|
3 -0.68558 0.50250 0.00000
|
||||||
|
|
||||||
|
Types
|
||||||
|
|
||||||
|
1 1 # O
|
||||||
|
2 2 # H
|
||||||
|
3 2 # H
|
||||||
|
|
||||||
|
Charges
|
||||||
|
|
||||||
|
1 -1.3582
|
||||||
|
2 0.6791
|
||||||
|
3 0.6791
|
||||||
|
|
||||||
|
Bonds
|
||||||
|
|
||||||
|
1 1 1 2
|
||||||
|
2 1 1 3
|
||||||
|
|
||||||
|
Angles
|
||||||
|
|
||||||
|
1 1 2 1 3
|
||||||
|
|
||||||
|
Below is a LAMMPS input file using the implicit method to implement
|
||||||
|
the OPC model using the molecule file from above and including the
|
||||||
|
PPPM long-range Coulomb solver.
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
units real
|
||||||
|
atom_style full
|
||||||
|
region box block -5 5 -5 5 -5 5
|
||||||
|
create_box 2 box bond/types 1 angle/types 1 &
|
||||||
|
extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2
|
||||||
|
|
||||||
|
mass 1 15.9994
|
||||||
|
mass 2 1.008
|
||||||
|
|
||||||
|
pair_style lj/cut/tip4p/long 1 2 1 1 0.1594 12.0
|
||||||
|
pair_coeff 1 1 0.2128 3.166
|
||||||
|
pair_coeff 2 2 0.0 1.0
|
||||||
|
|
||||||
|
bond_style zero
|
||||||
|
bond_coeff 1 0.8724
|
||||||
|
|
||||||
|
angle_style zero
|
||||||
|
angle_coeff 1 103.6
|
||||||
|
|
||||||
|
kspace_style pppm/tip4p 1.0e-5
|
||||||
|
|
||||||
|
molecule water opc3p.mol # this file has the OPC geometry but is without M
|
||||||
|
create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33
|
||||||
|
|
||||||
|
fix rigid all shake 0.001 10 10000 b 1 a 1
|
||||||
|
minimize 0.0 0.0 1000 10000
|
||||||
|
|
||||||
|
reset_timestep 0
|
||||||
|
timestep 1.0
|
||||||
|
velocity all create 300.0 5463576
|
||||||
|
fix integrate all nvt temp 300 300 100.0
|
||||||
|
|
||||||
|
thermo_style custom step temp press etotal pe
|
||||||
|
|
||||||
|
thermo 1000
|
||||||
|
run 20000
|
||||||
|
write_data opc-implicit.data nocoeff
|
||||||
|
|
||||||
Below is the code for a LAMMPS input file using the explicit method and
|
Below is the code for a LAMMPS input file using the explicit method and
|
||||||
a TIP4P molecule file. Because of using :doc:`fix rigid/small
|
a TIP4P molecule file. Because of using :doc:`fix rigid/small
|
||||||
<fix_rigid>` no bonds need to be defined and thus no extra storage needs
|
<fix_rigid>` no bonds need to be defined and thus no extra storage needs
|
||||||
@ -279,3 +385,8 @@ Phys, 79, 926 (1983).
|
|||||||
|
|
||||||
**(Abascal2)** Abascal, J Chem Phys, 123, 234505 (2005)
|
**(Abascal2)** Abascal, J Chem Phys, 123, 234505 (2005)
|
||||||
https://doi.org/10.1063/1.2121687
|
https://doi.org/10.1063/1.2121687
|
||||||
|
|
||||||
|
.. _Izadi:
|
||||||
|
|
||||||
|
**(Izadi)** Izadi, Anandakrishnan, Onufriev, J. Phys. Chem. Lett., 5, 21, 3863 (2014)
|
||||||
|
https://doi.org/10.1021/jz501780a
|
||||||
|
|||||||
@ -103,6 +103,7 @@ Amit
|
|||||||
amsmath
|
amsmath
|
||||||
amu
|
amu
|
||||||
Amzallag
|
Amzallag
|
||||||
|
Anandakrishnan
|
||||||
analytical
|
analytical
|
||||||
Anders
|
Anders
|
||||||
Andric
|
Andric
|
||||||
@ -1732,6 +1733,7 @@ Iyz
|
|||||||
iz
|
iz
|
||||||
izcm
|
izcm
|
||||||
ized
|
ized
|
||||||
|
Izadi
|
||||||
Izrailev
|
Izrailev
|
||||||
Izumi
|
Izumi
|
||||||
Izvekov
|
Izvekov
|
||||||
@ -2808,6 +2810,7 @@ oneMKL
|
|||||||
oneway
|
oneway
|
||||||
onlysalt
|
onlysalt
|
||||||
ons
|
ons
|
||||||
|
Onufriev
|
||||||
OO
|
OO
|
||||||
Oord
|
Oord
|
||||||
opencl
|
opencl
|
||||||
|
|||||||
Reference in New Issue
Block a user