From 059f719d6220fc6e99b15a8a34de637d614918ba Mon Sep 17 00:00:00 2001
From: sjplimp
diff --git a/doc/Section_intro.txt b/doc/Section_intro.txt
index 25fc9ff35f..ae093108be 100644
--- a/doc/Section_intro.txt
+++ b/doc/Section_intro.txt
@@ -142,10 +142,15 @@ commands)
manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \
embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \
REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire
+ long-range interactions for charge, point-dipoles, and LJ dispersion: \
+ Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
+ polarization models: "QEq"_fix_qeq.html, \
+ "core/shell model"_Section_howto.html#howto_26, \
+ "Drude dipole model"_Section_howto.html#howto_27
charge equilibration (QEq via dynamic, point, shielded, Slater methods)
- electron force field (eFF, AWPMD)
coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
mesoscopic potentials: granular, Peridynamics, SPH
+ electron force field (eFF, AWPMD)
bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \
quartic (breakable)
angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \
@@ -156,12 +161,10 @@ commands)
polymer potentials: all-atom, united-atom, bead-spring, breakable
water potentials: TIP3P, TIP4P, SPC
implicit solvent potentials: hydrodynamic lubrication, Debye
- "KIM archive"_http://openkim.org of potentials
- long-range interactions for charge, point-dipoles, and LJ dispersion: \
- Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
force-field compatibility with common CHARMM, AMBER, DREIDING, \
OPLS, GROMACS, COMPASS options
- handful of GPU-enabled pair styles
+ access to "KIM archive"_http://openkim.org of potentials via \
+ "pair kim"_pair_kim.html
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials :ul
diff --git a/doc/Section_packages.html b/doc/Section_packages.html
index 51bfa4a382..ce890b4ffd 100644
--- a/doc/Section_packages.html
+++ b/doc/Section_packages.html
@@ -368,13 +368,13 @@ in LAMMPS using thermalized Drude oscillators.
See these doc pages and their related commands to get started:
-Drude tutorial -fix drude -compute temp/drude -fix langevin/drude -fix drude/transform/... -pair thole -
+There are auxiliary tools for using this package in tools/drude.
The person who created this package is Alain Dequidt at Universite diff --git a/doc/Section_packages.txt b/doc/Section_packages.txt index 5d0450de25..4331e34aea 100644 --- a/doc/Section_packages.txt +++ b/doc/Section_packages.txt @@ -360,7 +360,7 @@ See these doc pages and their related commands to get started: "compute temp/drude"_compute_temp_drude.html "fix langevin/drude"_fix_langevin_drude.html "fix drude/transform/..."_fix_drude_transform.html -"pair thole"_pair_thole.html +"pair thole"_pair_thole.html :ul There are auxiliary tools for using this package in tools/drude. diff --git a/doc/compute_temp_drude.html b/doc/compute_temp_drude.html index 6e50495d5a..96d3aac384 100644 --- a/doc/compute_temp_drude.html +++ b/doc/compute_temp_drude.html @@ -24,38 +24,63 @@
Description:
-Define a computation that calculates the temperature based on the -center-of-mass velocities of pairs of Drude cores and Drude particles, -bonded by springs. This compute is designed to be used with the +
Define a computation that calculates the temperatures of core-Drude +pairs. This compute is designed to be used with the thermalized Drude +oscillator model. This compute is designed to be used with the thermalized Drude oscillator model. Polarizable models in LAMMPS are described in this Section.
-Specifically, this compute enables calculation of the temperature of -the Drude particles in relative coordinates with respect to their -cores. +
Drude oscillators consist of a core particle and a Drude particle +connected by a harmonic bond, and the relative motion of these Drude +oscillators is usually maintained cold by a specific thermostat that +acts on the relative motion of the core-Drude particle +pairs. Therefore, because LAMMPS considers Drude particles as normal +atoms in its default temperature compute (compute +temp command), the reduced temperature of the +core-Drude particle pairs is not calculated correctly. +
+By contrast, this compute calculates the temperature of the cores +using center-of-mass velocities of the core-Drude pairs, and the +reduced temperature of the Drude particles using the relative +velocities of the Drude particles with respect to their cores. +Non-polarizable atoms are considered as cores. Their velocities +contribute to the temperature of the cores.
Output info:
This compute calculates a global scalar (the temperature) and a global -vector of length 6 (KE tensor), which can be accessed by indices 1-6. -These values can be used by any command that uses global scalar or +vector of length 6, which can be accessed by indices 1-6, whose components +are +
+These values can be used by any command that uses global scalar or vector values from a compute as input. See this section for an overview of LAMMPS output options.
-The scalar value calculated by this compute is "intensive". The -vector are "extensive". -
-The scalar value will be in temperature units. The -vector values will be in energy units. +
Both the scalar value and the first two values of the vector +calculated by this compute are "intensive". The other 4 vector values +are "extensive".
Restrictions:
-The number of core-Drude pairs contributing to the temperature is -assumed to be constant for the duration of the run. +
The number of degrees of freedom contributing to the temperature is +assumed to be constant for the duration of the run unless the +fix_modify command sets the option dynamic yes.
-Related commands: none +
Related commands: +
+fix drude, fix +langevin_drude, fix +drude/transform, pair_style +thole, compute temp
Default: none
diff --git a/doc/compute_temp_drude.txt b/doc/compute_temp_drude.txt index 0b36fc5431..8b0755999c 100644 --- a/doc/compute_temp_drude.txt +++ b/doc/compute_temp_drude.txt @@ -21,37 +21,62 @@ compute TDRUDE all temp/drude :pre [Description:] -Define a computation that calculates the temperature based on the -center-of-mass velocities of pairs of Drude cores and Drude particles, -bonded by springs. This compute is designed to be used with the +Define a computation that calculates the temperatures of core-Drude +pairs. This compute is designed to be used with the thermalized Drude +oscillator model. This compute is designed to be used with the "thermalized Drude oscillator model"_tutorial_drude.html. Polarizable models in LAMMPS are described in "this Section"_Section_howto.html#howto_25. -Specifically, this compute enables calculation of the temperature of -the Drude particles in relative coordinates with respect to their -cores. +Drude oscillators consist of a core particle and a Drude particle +connected by a harmonic bond, and the relative motion of these Drude +oscillators is usually maintained cold by a specific thermostat that +acts on the relative motion of the core-Drude particle +pairs. Therefore, because LAMMPS considers Drude particles as normal +atoms in its default temperature compute ("compute +temp"_compute_temp.html command), the reduced temperature of the +core-Drude particle pairs is not calculated correctly. + +By contrast, this compute calculates the temperature of the cores +using center-of-mass velocities of the core-Drude pairs, and the +reduced temperature of the Drude particles using the relative +velocities of the Drude particles with respect to their cores. +Non-polarizable atoms are considered as cores. Their velocities +contribute to the temperature of the cores. [Output info:] This compute calculates a global scalar (the temperature) and a global -vector of length 6 (KE tensor), which can be accessed by indices 1-6. +vector of length 6, which can be accessed by indices 1-6, whose components +are + +temperature of the centers of mass (temperature units) +temperature of the dipoles (temperature units) +number of degrees of freedom of the centers of mass +number of degrees of freedom of the dipoles +kinetic energy of the centers of mass (energy units) +kinetic energy of the dipoles (energy units) :ol + These values can be used by any command that uses global scalar or vector values from a compute as input. See "this section"_Section_howto.html#howto_15 for an overview of LAMMPS output options. -The scalar value calculated by this compute is "intensive". The -vector are "extensive". - -The scalar value will be in temperature "units"_units.html. The -vector values will be in energy "units"_units.html. +Both the scalar value and the first two values of the vector +calculated by this compute are "intensive". The other 4 vector values +are "extensive". [Restrictions:] -The number of core-Drude pairs contributing to the temperature is -assumed to be constant for the duration of the run. +The number of degrees of freedom contributing to the temperature is +assumed to be constant for the duration of the run unless the +{fix_modify} command sets the option {dynamic yes}. -[Related commands:] none +[Related commands:] + +"fix drude"_fix_drude.html, "fix +langevin_drude"_fix_langevin_drude.html, "fix +drude/transform"_fix_drude_transform.html, "pair_style +thole"_pair_thole.html, "compute temp"_compute_temp.html [Default:] none diff --git a/doc/fix_drude_transform.html b/doc/fix_drude_transform.html index ee62f4726b..f19e5df09c 100644 --- a/doc/fix_drude_transform.html +++ b/doc/fix_drude_transform.html @@ -24,22 +24,13 @@fix ID group-ID style keyword value ...-
temp value = yes or no = do or do not calculate reduced temperatures of core and Drude particles --
Examples:
fix 3 all drude/transform/direct -fix 1 all drude/transform/inverse temp yes +fix 1 all drude/transform/inverse
Description:
@@ -81,12 +72,6 @@ Forces: \begin{equation} F' = F + f \end{equation} and the virial defined with absolute positions \begin{equation} X\, F + x\, f = X'\, F' + x'\, f' \end{equation} -The temp keyword specifies wheterh temperatures in reduced units for -cores and Drude particles are calculated. If the temp option is set -to yes the reduced temperatures, degrees of freedom, and kinetic -energies are calculated and can be accessed as explained below; -otherwise the reduced values are not calculated. -
This fix requires each atom know whether it is a Drude particle or @@ -119,12 +104,17 @@ thermostating fixes.
fix fDIRECT all drude/transform/direct fix fNVT gCORES nvt temp 300.0 300.0 100.0 fix fNVT gDRUDES nvt temp 1.0 1.0 100.0 -fix fINVERSE all drude/transform/inverse +fix fINVERSE all drude/transform/inverse +compute TDRUDE all temp/drude +thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]
In this example, gCORES is the group of the atom cores and gDRUDES is the group of the Drude particles (electrons). The centers of mass of the Drude oscillators will be thermostated at 300.0 and the -internal degrees of freedom will be thermostated at 1.0. +internal degrees of freedom will be thermostated at 1.0. The +temperatures of cores and Drude particles, in center-of-mass and +relatice coordinates, are calculated using compute +temp/drude
In addition, if you want to use a barostat to simulate a system at constant pressure, only one of the Nose-Hoover fixes must be npt, @@ -133,8 +123,8 @@ the other one should be nvt. You must add a compute temp/com and a that of its group but the pressure be the overall pressure thermo_press.
-Example: -Example: +
compute cTEMP_CORE gCORES temp/com fix fDIRECT all drude/transform/direct fix fNPT gCORES npt temp 298.0 298.0 100.0 iso 1.0 1.0 500.0 @@ -158,18 +148,6 @@ to add a fix momentum command like such asRestart, fix_modify, output, run start/stop, minimize info:
-If the temp yes keyword is used in fix drude/transform/inverse -this fix computes a global vector with 6 components which can be -accessed by various output commands. The -meaning of the components are -
-
- temperature of the centers of mass (temperature units) -
- temperature of the dipoles (temperature units) -
- number of degrees of freedom of the centers of mass -
- number of degrees of freedom of the dipoles -
- kinetic energy of the centers of mass (energy units) -
- kinetic energy of the dipoles (energy units) -
No information about this fix is written to binary restart files.
@@ -182,9 +160,7 @@ files. compute temp/drude, pair_style thole -Default: -
-The option defaults are temp = no. +
Default: none
diff --git a/doc/fix_drude_transform.txt b/doc/fix_drude_transform.txt index c795a96b3b..88d5ac5da3 100644 --- a/doc/fix_drude_transform.txt +++ b/doc/fix_drude_transform.txt @@ -20,17 +20,13 @@ fix drude/transform/inverse command :h3 fix ID group-ID style keyword value ... :pre -ID, group-ID are documented in "fix"_fix.html command :ulb,l -style = {drude/transform/direct} or {drude/transform/inverse} :l -zero or more keywords may be appended to drude/transform/inverse :l -keyword = {temp} :l - {temp} value = {yes} or {no} = do or do not calculate reduced temperatures of core and Drude particles :pre -:ule +ID, group-ID are documented in "fix"_fix.html command +style = {drude/transform/direct} or {drude/transform/inverse} :ul [Examples:] fix 3 all drude/transform/direct -fix 1 all drude/transform/inverse temp yes :pre +fix 1 all drude/transform/inverse :pre [Description:] @@ -72,12 +68,6 @@ This transform conserves the total kinetic energy and the virial defined with absolute positions \begin\{equation\} X\, F + x\, f = X'\, F' + x'\, f' \end\{equation\} -The {temp} keyword specifies wheterh temperatures in reduced units for -cores and Drude particles are calculated. If the {temp} option is set -to {yes} the reduced temperatures, degrees of freedom, and kinetic -energies are calculated and can be accessed as explained below; -otherwise the reduced values are not calculated. - :line This fix requires each atom know whether it is a Drude particle or @@ -110,12 +100,18 @@ Example: fix fDIRECT all drude/transform/direct fix fNVT gCORES nvt temp 300.0 300.0 100.0 fix fNVT gDRUDES nvt temp 1.0 1.0 100.0 -fix fINVERSE all drude/transform/inverse :pre +fix fINVERSE all drude/transform/inverse +compute TDRUDE all temp/drude +thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE\[1\] c_TDRUDE\[2\] :pre + In this example, {gCORES} is the group of the atom cores and {gDRUDES} is the group of the Drude particles (electrons). The centers of mass of the Drude oscillators will be thermostated at 300.0 and the -internal degrees of freedom will be thermostated at 1.0. +internal degrees of freedom will be thermostated at 1.0. The +temperatures of cores and Drude particles, in center-of-mass and +relatice coordinates, are calculated using "compute +temp/drude"_compute_temp_drude.html In addition, if you want to use a barostat to simulate a system at constant pressure, only one of the Nose-Hoover fixes must be {npt}, @@ -124,7 +120,7 @@ the other one should be {nvt}. You must add a {compute temp/com} and a that of its group but the pressure be the overall pressure {thermo_press}. -Example: :b +Example: compute cTEMP_CORE gCORES temp/com fix fDIRECT all drude/transform/direct @@ -149,18 +145,6 @@ fix fMOMENTUM all momentum 100 linear 1 1 1 :pre [Restart, fix_modify, output, run start/stop, minimize info:] -If the {temp yes} keyword is used in {fix drude/transform/inverse} -this fix computes a global vector with 6 components which can be -accessed by various "output commands"_Section_howto.html#howto_15. The -meaning of the components are - -temperature of the centers of mass (temperature units) -temperature of the dipoles (temperature units) -number of degrees of freedom of the centers of mass -number of degrees of freedom of the dipoles -kinetic energy of the centers of mass (energy units) -kinetic energy of the dipoles (energy units) :ol - No information about this fix is written to "binary restart files"_restart.html. @@ -173,9 +157,7 @@ files"_restart.html. "compute temp/drude"_compute_temp_drude.html, "pair_style thole"_pair_thole.html -[Default:] - -The option defaults are temp = no. +[Default:] none :line diff --git a/doc/fix_langevin_drude.html b/doc/fix_langevin_drude.html index c4669040d9..a118f323c6 100644 --- a/doc/fix_langevin_drude.html +++ b/doc/fix_langevin_drude.html @@ -93,8 +93,10 @@ transform: \begin{equation} F = \frac M {M'}\, F' - f' \end{equation} \begin{equation} f = \frac m {M'}\, F' + f' \end{equation} -For Drude pairs (core + electron), the center of mass and the dipole -are thermostated if (and only if) the core atom is in the specified +
This fix also thermostates non-polarizable atoms in the group at +temperature Tcom, as if they had a massless Drude partner. The +Drude particles themselves need not be in the group. The center of +mass and the dipole are thermostated iff the core atom is in the group.
Note that the thermostat effect of this fix is applied to only the @@ -198,9 +200,14 @@ subtracting off an equal part of it from each center of mass in the group. As a result, the total center of mass of a system with zero initial momentum will not drift over time.
+The actual temperatures of cores and Drude particles, in +center-of-mass and relatice coordinates, respectively, can be +calculated using the compute temp/drude +command. +
-Example for rigid bodies in the NPT ensemble: +
Usage example for rigid bodies in the NPT ensemble:
comm_modify vel yes fix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes @@ -210,14 +217,25 @@ thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TATComments:
-
This fix computes a global vector with 6 components which can be -accessed by various output commands. The -meaning of the components are as follows: -
-This fix is not invoked during energy minimization.
Restrictions: none @@ -254,6 +261,7 @@ meaning of the components are as follows:
Related commands:
fix langevin, +fix drude, fix drude/transform, compute temp/drude, pair_style thole diff --git a/doc/fix_langevin_drude.txt b/doc/fix_langevin_drude.txt index f936490b95..2df81b4610 100644 --- a/doc/fix_langevin_drude.txt +++ b/doc/fix_langevin_drude.txt @@ -77,8 +77,10 @@ transform: \begin\{equation\} F = \frac M \{M'\}\, F' - f' \end\{equation\} \begin\{equation\} f = \frac m \{M'\}\, F' + f' \end\{equation\} -For Drude pairs (core + electron), the center of mass and the dipole -are thermostated if (and only if) the core atom is in the specified +This fix also thermostates non-polarizable atoms in the group at +temperature {Tcom}, as if they had a massless Drude partner. The +Drude particles themselves need not be in the group. The center of +mass and the dipole are thermostated iff the core atom is in the group. Note that the thermostat effect of this fix is applied to only the @@ -182,9 +184,14 @@ subtracting off an equal part of it from each center of mass in the group. As a result, the total center of mass of a system with zero initial momentum will not drift over time. +The actual temperatures of cores and Drude particles, in +center-of-mass and relatice coordinates, respectively, can be +calculated using the "compute temp/drude"_compute_temp_drude.html +command. + :line -Example for rigid bodies in the NPT ensemble: +Usage example for rigid bodies in the NPT ensemble: comm_modify vel yes fix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes @@ -194,14 +201,25 @@ thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TAT Comments: -Drude particles should not be in the rigid group, otherwise the Drude oscillators will be frozen and the system will lose its polarizability. -{zero yes} avoids a drift of the center of mass of the system, but is a bit slower. -use two different random seeds to avoid unphysical correlations. -temperature is controlled by the fix {langevin/drude}, so the time-integration fixes do not thermostate. +Drude particles should not be in the rigid group, otherwise the Drude +oscillators will be frozen and the system will lose its +polarizability. {zero yes} avoids a drift of the center of mass of +the system, but is a bit slower. use two different random seeds to +avoid unphysical correlations. temperature is controlled by the fix +{langevin/drude}, so the time-integration fixes do not thermostate. don't forget to time-integrate both cores and Drude particles. -pressure is time-integrated only once by using {nve} for Drude particles and {nph} for atoms/cores (or vice versa). Do not use {nph} for both. -contrary to the alternative thermostating using Nose-Hoover thermostat fix {npt} and fix {drude/transform}, the {fix_modify} command is not required here, because the fix {nph} computes the global pressure even if its group is {ATOMS}. This is what we want. If we thermostated {ATOMS} using {npt}, the pressure should be the global one, but the temperature should be only that of the cores. That's why the command {fix_modify} should be called in that case. -f_TEMP\[1\] and f_TEMP\[2\] contain the reduced temperatures of the cores/atoms and of the Drude particles (see below). They should be 300. and 1. on average here. :ul +pressure is time-integrated only once by using {nve} for Drude +particles and {nph} for atoms/cores (or vice versa). Do not use {nph} +for both. contrary to the alternative thermostating using Nose-Hoover +thermostat fix {npt} and fix {drude/transform}, the {fix_modify} +command is not required here, because the fix {nph} computes the +global pressure even if its group is {ATOMS}. This is what we want. If +we thermostated {ATOMS} using {npt}, the pressure should be the global +one, but the temperature should be only that of the cores. That's why +the command {fix_modify} should be called in that case. f_TEMP\[1\] +and f_TEMP\[2\] contain the reduced temperatures of the cores/atoms +and of the Drude particles (see below). They should be 300. and 1. on +average here. :ul :line @@ -220,17 +238,6 @@ you have defined to this fix which will be used in its thermostating procedure, as described above. For consistency, the group used by the compute should include the group of this fix and the Drude particles. -This fix computes a global vector with 6 components which can be -accessed by various "output commands"_Section_howto.html#howto_15. The -meaning of the components are as follows: - -temperature of the centers of mass (temperature units) -temperature of the dipoles (temperature units) -number of degrees of freedom of the centers of mass -number of degrees of freedom of the dipoles -kinetic energy of the centers of mass (energy units) -kinetic energy of the dipoles (energy units) :ol - This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] none @@ -238,6 +245,7 @@ This fix is not invoked during "energy minimization"_minimize.html. [Related commands:] "fix langevin"_fix_langevin.html, +"fix drude"_fix_drude.html, "fix drude/transform"_fix_drude_transform.html, "compute temp/drude"_compute_temp_drude.html, "pair_style thole"_pair_thole.html