Commit 83988a10 authored by Tim Mattox's avatar Tim Mattox
Browse files

Merge branch 'master' into USER-DPD_kokkos as of patch 21Feb17

parents dc16228a 49e83b43
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="13 Feb 2017 version">
<META NAME="docnumber" CONTENT="21 Feb 2017 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation.  This software and manual is distributed under the GNU General Public License.">
</HEAD>
@@ -21,7 +21,7 @@
<H1></H1>

LAMMPS Documentation :c,h3
13 Feb 2017 version :c,h4
21 Feb 2017 version :c,h4

Version info: :h4

+4 −4
Original line number Diff line number Diff line
@@ -1076,7 +1076,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"none"_bond_none.html,
"zero"_bond_zero.html,
"hybrid"_bond_hybrid.html,
"class2 (o)"_bond_class2.html,
"class2 (ko)"_bond_class2.html,
"fene (iko)"_bond_fene.html,
"fene/expand (o)"_bond_fene_expand.html,
"harmonic (ko)"_bond_harmonic.html,
@@ -1109,7 +1109,7 @@ USER-OMP, t = OPT.
"zero"_angle_zero.html,
"hybrid"_angle_hybrid.html,
"charmm (ko)"_angle_charmm.html,
"class2 (o)"_angle_class2.html,
"class2 (ko)"_angle_class2.html,
"cosine (o)"_angle_cosine.html,
"cosine/delta (o)"_angle_cosine_delta.html,
"cosine/periodic (o)"_angle_cosine_periodic.html,
@@ -1145,7 +1145,7 @@ USER-OMP, t = OPT.
"zero"_dihedral_zero.html,
"hybrid"_dihedral_hybrid.html,
"charmm (ko)"_dihedral_charmm.html,
"class2 (o)"_dihedral_class2.html,
"class2 (ko)"_dihedral_class2.html,
"harmonic (io)"_dihedral_harmonic.html,
"helix (o)"_dihedral_helix.html,
"multi/harmonic (o)"_dihedral_multi_harmonic.html,
@@ -1177,7 +1177,7 @@ USER-OMP, t = OPT.
"none"_improper_none.html,
"zero"_improper_zero.html,
"hybrid"_improper_hybrid.html,
"class2 (o)"_improper_class2.html,
"class2 (ko)"_improper_class2.html,
"cvff (io)"_improper_cvff.html,
"harmonic (ko)"_improper_harmonic.html,
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
+52 −29
Original line number Diff line number Diff line
@@ -2573,7 +2573,7 @@ well.
6.26 Adiabatic core/shell model :link(howto_26),h4

The adiabatic core-shell model by "Mitchell and
Finchham"_#MitchellFinchham is a simple method for adding
Fincham"_#MitchellFincham is a simple method for adding
polarizability to a system.  In order to mimic the electron shell of
an ion, a satellite particle is attached to it. This way the ions are
split into a core and a shell where the latter is meant to react to
@@ -2667,13 +2667,16 @@ bond_coeff 1 63.014 0.0
bond_coeff      2 25.724 0.0 :pre

When running dynamics with the adiabatic core/shell model, the
following issues should be considered.  Since the relative motion of
the core and shell particles corresponds to the polarization, typical
thermostats can alter the polarization behaviour, meaning the shell
will not react freely to its electrostatic environment.  This is
critical during the equilibration of the system. Therefore
it's typically desirable to decouple the relative motion of the
core/shell pair, which is an imaginary degree of freedom, from the
following issues should be considered.  The relative motion of
the core and shell particles corresponds to the polarization, 
hereby an instantaneous relaxation of the shells is approximated 
and a fast core/shell spring frequency ensures a nearly constant
internal kinetic energy during the simulation. 
Thermostats can alter this polarization behaviour, by scaling the
internal kinetic energy, meaning the shell will not react freely to 
its electrostatic environment. 
Therefore it is typically desirable to decouple the relative motion of 
the core/shell pair, which is an imaginary degree of freedom, from the
real physical system.  To do that, the "compute
temp/cs"_compute_temp_cs.html command can be used, in conjunction with
any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix
@@ -2704,6 +2707,22 @@ fix thermostatequ all nve # integrator as needed f
fix_modify thermoberendsen temp CSequ
thermo_modify temp CSequ                                # output of center-of-mass derived temperature :pre

The pressure for the core/shell system is computed via the regular 
LAMMPS convention by "treating the cores and shells as individual 
particles"_#MitchellFincham2. For the thermo output of the pressure 
as well as for the application of a barostat, it is necessary to 
use an additional "pressure"_compute_pressure compute based on the 
default "temperature"_compute_temp and specifying it as a second 
argument in "fix modify"_fix_modify.html and 
"thermo_modify"_thermo_modify.html resulting in:

(...)
compute CSequ all temp/cs cores shells
compute thermo_press_lmp all pressure thermo_temp       # pressure for individual particles
thermo_modify temp CSequ press thermo_press_lmp         # modify thermo to regular pressure
fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4
fix_modify press_bar temp CSequ press thermo_press_lmp  # pressure modification for correct kinetic scalar :pre

If "compute temp/cs"_compute_temp_cs.html is used, the decoupled
relative motion of the core and the shell should in theory be
stable.  However numerical fluctuation can introduce a small
@@ -2724,24 +2743,18 @@ temp/cs"_compute_temp_cs.html command to the {temp} keyword of the
velocity all create 1427 134 bias yes temp CSequ
velocity all scale 1427 temp CSequ :pre

It is important to note that the polarizability of the core/shell
pairs is based on their relative motion. Therefore the choice of
spring force and mass ratio need to ensure much faster relative motion
of the 2 atoms within the core/shell pair than their center-of-mass
velocity. This allow the shells to effectively react instantaneously
to the electrostatic environment.  This fast movement also limits the
timestep size that can be used.
To maintain the correct polarizability of the core/shell pairs, the 
kinetic energy of the internal motion shall remain nearly constant. 
Therefore the choice of spring force and mass ratio need to ensure 
much faster relative motion of the 2 atoms within the core/shell pair 
than their center-of-mass velocity. This allows the shells to 
effectively react instantaneously to the electrostatic environment and 
limits energy transfer to or from the core/shell oscillators.
This fast movement also dictates the timestep that can be used.

The primary literature of the adiabatic core/shell model suggests that
the fast relative motion of the core/shell pairs only allows negligible
energy transfer to the environment. Therefore it is not intended to
decouple the core/shell degree of freedom from the physical system
during production runs. In other words, the "compute
temp/cs"_compute_temp_cs.html command should not be used during
production runs and is only required during equilibration. This way one
is consistent with literature (based on the code packages DL_POLY or
GULP for instance).

energy transfer to the environment. 
The mentioned energy transfer will typically lead to a small drift
in total energy over time.  This internal energy can be monitored
using the "compute chunk/atom"_compute_chunk_atom.html and "compute
@@ -2761,15 +2774,21 @@ command, to use as input to the "compute
chunk/atom"_compute_chunk_atom.html command to define the core/shell
pairs as chunks.

For example,
For example if core/shell pairs are the only molecules:

fix csinfo all property/atom i_CSID                       # property/atom command
read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info  # atom property added in the data-file
compute prop all property/atom i_CSID
read_data NaCl_CS_x0.1_prop.data 
compute prop all property/atom molecule
compute cs_chunk all chunk/atom c_prop
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0     # note the chosen degrees of freedom for the core/shell pairs
fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre

For example if core/shell pairs and other molecules are present:

fix csinfo all property/atom i_CSID                       # property/atom command
read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info  # atom property added in the data-file
compute prop all property/atom i_CSID
(...) :pre

The additional section in the date file would be formatted like this:

CS-Info         # header of additional section :pre
@@ -2890,9 +2909,13 @@ Phys, 79, 926 (1983).
:link(Shinoda)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).

:link(MitchellFinchham)
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
:link(MitchellFincham)
[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter,
5, 1031-1038 (1993).

:link(MitchellFincham2)
[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter,
6, 393-404 (1994).

:link(howto-Lamoureux)
[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003)
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@

angle_style class2 command :h3
angle_style class2/omp command :h3
angle_style class2/kk command :h3

[Syntax:]

+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@

bond_style class2 command :h3
bond_style class2/omp command :h3
bond_style class2/kk command :h3

[Syntax:]

Loading