diff --git a/doc/Manual.html b/doc/Manual.html index 0718e3a609..f3ec66fdea 100644 --- a/doc/Manual.html +++ b/doc/Manual.html @@ -205,7 +205,11 @@ it gives quick access to documentation for all LAMMPS commands.
6.24 Setting parameters for pppm/disp
- 6.25 Adiabatic core/shell model + 6.25 Polarizable models +
+ 6.26 Adiabatic core/shell model +
+ 6.27 Drude induced dipoles
  • Example problems @@ -430,6 +434,8 @@ it gives quick access to documentation for all LAMMPS commands. + + diff --git a/doc/Manual.txt b/doc/Manual.txt index 75d6dc07c2..cfa20e523c 100644 --- a/doc/Manual.txt +++ b/doc/Manual.txt @@ -139,7 +139,9 @@ it gives quick access to documentation for all LAMMPS commands. 6.22 "Calculating a diffusion coefficient"_howto_22 :b 6.23 "Using chunks to calculate system properties"_howto_23 :b 6.24 "Setting parameters for pppm/disp"_howto_24 :b - 6.25 "Adiabatic core/shell model"_howto_25 :ule,b + 6.25 "Polarizable models"_howto_25 :ule,b + 6.26 "Adiabatic core/shell model"_howto_26 :ule,b + 6.27 "Drude induced dipoles"_howto_27 :ule,b "Example problems"_Section_example.html :l "Performance & scalability"_Section_perf.html :l "Additional tools"_Section_tools.html :l @@ -233,6 +235,7 @@ it gives quick access to documentation for all LAMMPS commands. :link(howto_24,Section_howto.html#howto_24) :link(howto_25,Section_howto.html#howto_25) :link(howto_26,Section_howto.html#howto_26) +:link(howto_27,Section_howto.html#howto_27) :link(mod_1,Section_modify.html#mod_1) :link(mod_2,Section_modify.html#mod_2) diff --git a/doc/Section_howto.html b/doc/Section_howto.html index a72dd139e8..7843fe1a07 100644 --- a/doc/Section_howto.html +++ b/doc/Section_howto.html @@ -37,7 +37,9 @@ 6.22 Calculating a diffusion coefficient
    6.23 Using chunks to calculate system properties
    6.24 Setting parameters for the kspace_style pppm/disp command
    -6.25 Adiabatic core/shell model
    +6.25 Polarizable models
    +6.26 Adiabatic core/shell model
    +6.27 Drude induced dipoles

    The example input scripts included in the LAMMPS distribution and highlighted in Section_example also show how to @@ -2415,14 +2417,91 @@ to specify this command explicitly.


    -

    6.25 Adiabatic core/shell model +

    6.25 Polarizable models +

    +

    In polarizable force fields the charge distributions in molecules and +materials respond to their electrostatic environements. Polarizable +systems can be simulated in LAMMPS using three methods: +

    + +

    The fluctuating charge method calculates instantaneous charges on +interacting atoms based on the electronegativity equalization +principle. It is implemented in the fix qeq which is +available in several variants. It is a relatively efficient technique +since no additional particles are introduced. This method allows for +charge transfer between molecules or atom groups. However, because the +charges are located at the interaction sites, off-plane components of +polarization cannot be represented in planar molecules or atom groups. +

    +

    The two other methods share the same basic idea: polarizable atoms are +split into one core atom and one satellite particle (called shell or +Drude particle) attached to it by a harmonic spring. Both atoms bear +a charge and they represent collectively an induced electric dipole. +These techniques are computationally more expensive than the QEq +method because of additional particles and bonds. These two +charge-on-spring methods differ in certain features, with the +core-shell model being normally used for ionic/crystalline materials, +whereas the so-called Drude model is normally used for molecular +systems and fluid states. +

    +

    The core-shell model is applicable to crystalline materials where the +high symmetry around each site leads to stable trajectories of the +core-shell pairs. However, bonded atoms in molecules can be so close +that a core would interact too strongly or even capture the Drude +particle of a neighbor. The Drude dipole model is relatively more +complex in order to remediate this and other issues. Specifically, the +Drude model includes specific thermostating of the core-Drude pairs +and short-range damping of the induced dipoles. +

    +

    The three polarization methods can be implemented through a +self-consistent calculation of charges or induced dipoles at each +timestep. In the fluctuating charge scheme this is done by the matrix +inversion method in fix qeq/point, but for core-shell +or Drude-dipoles the relaxed-dipoles technique would require an slow +iterative procedure. These self-consistent solutions yield accurate +trajectories since the additional degrees of freedom representing +polarization are massless. An alternative is to attribute a mass to +the additional degrees of freedom and perform time integration using +an extended Lagrangian technique. For the fluctuating charge scheme +this is done by fix qeq/dynamic, and for the +charge-on-spring models by the methods outlined in the next two +sections. The assignment of masses to the additional degrees of +freedom can lead to unphysical trajectories if care is not exerted in +choosing the parameters of the poarizable models and the simulation +conditions. +

    +

    In the core-shell model the vibration of the shells is kept faster +than the ionic vibrations to mimic the fast response of the +polarizable electrons. But in molecular systems thermalizing the +core-Drude pairs at temperatures comparable to the rest of the +simulation leads to several problems (kinetic energy transfer, too +short a timestep, etc.) In order to avoid these problems the relative +motion of the Drude particles with respect to their cores is kept +"cold" so the vibration of the core-Drude pairs is very slow, +approaching the self-consistent regime. In both models the +temperature is regulated using the velocities of the center of mass of +core+shell (or Drude) pairs, but in the Drude model the actual +relative core-Drude particle motion is thermostated separately as +well. +

    +
    + +

    6.26 Adiabatic core/shell model

    The adiabatic core-shell model by Mitchell and Finchham is a simple method for adding polarizability to a system. In order to mimic the electron shell of -an ion, a ghost atom is attached to it. This way the ions are split -into a core and a shell where the latter is meant to react to the -electrostatic environment inducing polarizability. +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 +the electrostatic environment inducing polarizability.

    Technically, shells are attached to the cores by a spring force f = k*r where k is a parametrized spring constant and r is the distance @@ -2600,6 +2679,70 @@ fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector


    +

    6.27 Drude induced dipoles +

    +

    The thermalized Drude model, similarly to the core-shell +model, representes induced dipoles by a pair of charges (the core atom +and the Drude particle) connected by a harmonic spring. The Drude +model has a number of features aimed at its use in molecular systems +(Lamoureux and Roux): +

    + +

    A detailed tutorial covering the usage of Drude induced dipoles in +LAMMPS is available here. +

    +

    As with the core-shell model, the cores and Drude particles should +appear in the data file as standard atoms. The same holds for the +springs between them, which are described by standard harmonic bonds. +The nature of the atoms (core, Drude particle or non-polarizable) is +specified via the fix drude command. The special +list of neighbors is automatically refactored to account for the +equivalence of core and Drude particles as regards special 1-2 to 1-4 +screening. It may be necessary to use the extra keyword of the +special_bonds command. If using fix +shake, make sure no Drude particle is in this fix +group. +

    +

    There are two ways to thermostat the Drude particles at a low +temperature: use either fix langevin/drude +for a Langevin thermostat, or fix +drude/transform for a Nose-Hoover +thermostat. The former requires use of the command comm_modify vel +yes. The latter requires two separate integration +fixes like nvt or npt. The correct temperatures of the reduced +degrees of freedom can be calculated using the compute +temp/drude. This requires also to use the +command comm_modify vel yes. +

    +

    Short-range damping of the induced dipole interactions can be achieved +using Thole functions through the the pair style +thole in pair_style hybrid/overlay +with a Coulomb pair style. It may be useful to use coul/long/cs or +similar from the CORESHELL package if the core and Drude particle come +too close, which can cause numerical issues. +

    +
    +
    @@ -2650,4 +2793,8 @@ Phys, 79, 926 (1983).

    (Mitchell and Finchham) Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993).

    + + +

    (Lamoureux and Roux) G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) +

    diff --git a/doc/Section_howto.txt b/doc/Section_howto.txt index d65f405e7a..f6f680af92 100644 --- a/doc/Section_howto.txt +++ b/doc/Section_howto.txt @@ -34,7 +34,9 @@ This section describes how to perform common tasks using LAMMPS. 6.22 "Calculating a diffusion coefficient"_#howto_22 6.23 "Using chunks to calculate system properties"_#howto_23 6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 -6.25 "Adiabatic core/shell model"_#howto_25 :all(b) +6.25 "Polarizable models"_#howto_25 +6.26 "Adiabatic core/shell model"_#howto_26 +6.27 "Drude induced dipoles"_#howto_27 :all(b) The example input scripts included in the LAMMPS distribution and highlighted in "Section_example"_Section_example.html also show how to @@ -2400,14 +2402,89 @@ to specify this command explicitly. :line -6.25 Adiabatic core/shell model :link(howto_25),h4 +6.25 Polarizable models :link(howto_25),h4 + +In polarizable force fields the charge distributions in molecules and +materials respond to their electrostatic environements. Polarizable +systems can be simulated in LAMMPS using three methods: + +the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html +package, :ulb,l +the adiabatic core-shell method, implemented in the +"CORESHELL"_#howto_26 package, :l +the thermalized Drude dipole method, implemented in the +"USER-DRUDE"_#howto_27 package. :l,ule + +The fluctuating charge method calculates instantaneous charges on +interacting atoms based on the electronegativity equalization +principle. It is implemented in the "fix qeq"_fix_qeq.html which is +available in several variants. It is a relatively efficient technique +since no additional particles are introduced. This method allows for +charge transfer between molecules or atom groups. However, because the +charges are located at the interaction sites, off-plane components of +polarization cannot be represented in planar molecules or atom groups. + +The two other methods share the same basic idea: polarizable atoms are +split into one core atom and one satellite particle (called shell or +Drude particle) attached to it by a harmonic spring. Both atoms bear +a charge and they represent collectively an induced electric dipole. +These techniques are computationally more expensive than the QEq +method because of additional particles and bonds. These two +charge-on-spring methods differ in certain features, with the +core-shell model being normally used for ionic/crystalline materials, +whereas the so-called Drude model is normally used for molecular +systems and fluid states. + +The core-shell model is applicable to crystalline materials where the +high symmetry around each site leads to stable trajectories of the +core-shell pairs. However, bonded atoms in molecules can be so close +that a core would interact too strongly or even capture the Drude +particle of a neighbor. The Drude dipole model is relatively more +complex in order to remediate this and other issues. Specifically, the +Drude model includes specific thermostating of the core-Drude pairs +and short-range damping of the induced dipoles. + +The three polarization methods can be implemented through a +self-consistent calculation of charges or induced dipoles at each +timestep. In the fluctuating charge scheme this is done by the matrix +inversion method in "fix qeq/point"_fix_qeq.html, but for core-shell +or Drude-dipoles the relaxed-dipoles technique would require an slow +iterative procedure. These self-consistent solutions yield accurate +trajectories since the additional degrees of freedom representing +polarization are massless. An alternative is to attribute a mass to +the additional degrees of freedom and perform time integration using +an extended Lagrangian technique. For the fluctuating charge scheme +this is done by "fix qeq/dynamic"_fix_qeq.html, and for the +charge-on-spring models by the methods outlined in the next two +sections. The assignment of masses to the additional degrees of +freedom can lead to unphysical trajectories if care is not exerted in +choosing the parameters of the poarizable models and the simulation +conditions. + +In the core-shell model the vibration of the shells is kept faster +than the ionic vibrations to mimic the fast response of the +polarizable electrons. But in molecular systems thermalizing the +core-Drude pairs at temperatures comparable to the rest of the +simulation leads to several problems (kinetic energy transfer, too +short a timestep, etc.) In order to avoid these problems the relative +motion of the Drude particles with respect to their cores is kept +"cold" so the vibration of the core-Drude pairs is very slow, +approaching the self-consistent regime. In both models the +temperature is regulated using the velocities of the center of mass of +core+shell (or Drude) pairs, but in the Drude model the actual +relative core-Drude particle motion is thermostated separately as +well. + +:line + +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 polarizability to a system. In order to mimic the electron shell of -an ion, a ghost atom is attached to it. This way the ions are split -into a core and a shell where the latter is meant to react to the -electrostatic environment inducing polarizability. +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 +the electrostatic environment inducing polarizability. Technically, shells are attached to the cores by a spring force f = k*r where k is a parametrized spring constant and r is the distance @@ -2583,6 +2660,70 @@ CS-Info # header of additional section :pre 8 4 (...) :pre +:line + +6.27 Drude induced dipoles :link(howto_27),h4 + +The thermalized Drude model, similarly to the "core-shell"_#howto_26 +model, representes induced dipoles by a pair of charges (the core atom +and the Drude particle) connected by a harmonic spring. The Drude +model has a number of features aimed at its use in molecular systems +("Lamoureux and Roux"_#Lamoureux): + +Thermostating of the additional degrees of freedom associated with the +induced dipoles at very low temperature, in terms of the reduced +coordinates of the Drude particles with respect to their cores. This +makes the trajectory close to that of relaxed induced dipoles. :ulb,l + +Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle +pair represents a single (polarizable) atom, so the special screening +factors in a covalent structure should be the same for the core and +the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 +special neighbor relations from their respective cores. :l + +Stabilization of the interactions between induced dipoles. Drude +dipoles on covalently bonded atoms interact too strongly due to the +short distances, so an atom may capture the Drude particle of a +neighbor, or the induced dipoles within the same molecule may align +too much. To avoid this, damping at short range can be done by Thole +functions (for which there are physical grounds). This Thole damping +is applied to the point charges composing the induced dipole (the +charge of the Drude particle and the opposite charge on the core, not +to the total charge of the core atom). :l,ule + +A detailed tutorial covering the usage of Drude induced dipoles in +LAMMPS is "available here"_tutorial_drude.html. + +As with the core-shell model, the cores and Drude particles should +appear in the data file as standard atoms. The same holds for the +springs between them, which are described by standard harmonic bonds. +The nature of the atoms (core, Drude particle or non-polarizable) is +specified via the "fix drude"_fix_drude.html command. The special +list of neighbors is automatically refactored to account for the +equivalence of core and Drude particles as regards special 1-2 to 1-4 +screening. It may be necessary to use the {extra} keyword of the +"special_bonds"_special_bonds.html command. If using "fix +shake"_fix_shake.html, make sure no Drude particle is in this fix +group. + +There are two ways to thermostat the Drude particles at a low +temperature: use either "fix langevin/drude"_fix_langevin_drude.html +for a Langevin thermostat, or "fix +drude/transform"_fix_drude_transform.html for a Nose-Hoover +thermostat. The former requires use of the command "comm_modify vel +yes"_comm_modify.html. The latter requires two separate integration +fixes like {nvt} or {npt}. The correct temperatures of the reduced +degrees of freedom can be calculated using the "compute +temp/drude"_compute_temp_drude.html. This requires also to use the +command {comm_modify vel yes}. + +Short-range damping of the induced dipole interactions can be achieved +using Thole functions through the the "pair style +thole"_pair_thole.html in "pair_style hybrid/overlay"_pair_hybrid.html +with a Coulomb pair style. It may be useful to use {coul/long/cs} or +similar from the CORESHELL package if the core and Drude particle come +too close, which can cause numerical issues. + :line :line @@ -2623,3 +2764,6 @@ Phys, 79, 926 (1983). :link(MitchellFinchham) [(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993). + +:link(Lamoureux) +[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) diff --git a/doc/Section_packages.html b/doc/Section_packages.html index 733294f656..51bfa4a382 100644 --- a/doc/Section_packages.html +++ b/doc/Section_packages.html @@ -121,12 +121,13 @@ on how to build LAMMPS with both kinds of auxiliary libraries.

    - + - + + @@ -164,10 +165,14 @@ library from.

    (2) The ATC package was created by Reese Jones, Jeremy Templeton, and Jon Zimmerman (Sandia).

    -

    (3) The COLVARS package was created by Axel Kohlmeyer (Temple U) using +

    (2) The COLVARS package was created by Axel Kohlmeyer (Temple U) using the colvars module library written by Giacomo Fiorin (Temple U) and Jerome Henin (LISM, Marseille, France).

    +

    (3) The DRUDE package was created by Alain Dequidt (U Blaise Pascal +Clermont-Ferrand) and co-authors Julien Devemy (CNRS) and Agilio Padua +(U Blaise Pascal). +

    The "Doc page" column links to either a portion of the Section_howto of the manual, or an input script command implemented as part of the package, or to additional @@ -356,6 +361,29 @@ Arkansas. Contact him directly if you have questions.


    +

    USER-DRUDE package +

    +

    This package implements methods for simulating polarizable systems +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 +Blaise Pascal Clermont-Ferrand (alain.dequidt at univ-bpclermont.fr) +Contact him directly if you have questions. Co-authors: Julien Devemy, +Agilio Padua. +

    +
    +

    USER-EFF package

    This package contains a LAMMPS implementation of the electron Force diff --git a/doc/Section_packages.txt b/doc/Section_packages.txt index fec4b5d8e1..5d0450de25 100644 --- a/doc/Section_packages.txt +++ b/doc/Section_packages.txt @@ -113,12 +113,13 @@ on how to build LAMMPS with both kinds of auxiliary libraries. The current list of user-contributed packages is as follows: Package, Description, Author(s), Doc page, Example, Pic/movie, Library -USER-ATC, atom-to-continuum coupling, Jones & Templeton & Zimmerman (2), "fix atc"_fix_atc.html, USER/atc, "atc"_atc, lib/atc +USER-ATC, atom-to-continuum coupling, Jones & Templeton & Zimmerman (1), "fix atc"_fix_atc.html, USER/atc, "atc"_atc, lib/atc USER-AWPMD, wave-packet MD, Ilya Valuev (JIHT), "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, -, lib/awpmd USER-CG-CMM, coarse-graining model, Axel Kohlmeyer (Temple U), "pair_style lj/sdk"_pair_sdk.html, USER/cg-cmm, "cg"_cg, - -USER-COLVARS, collective variables, Fiorin & Henin & Kohlmeyer (3), "fix colvars"_fix_colvars.html, USER/colvars, "colvars"_colvars, lib/colvars +USER-COLVARS, collective variables, Fiorin & Henin & Kohlmeyer (2), "fix colvars"_fix_colvars.html, USER/colvars, "colvars"_colvars, lib/colvars USER-CUDA, NVIDIA GPU styles, Christian Trott (U Tech Ilmenau), "Section accelerate"_accelerate_cuda.html, USER/cuda, -, lib/cuda USER-DIFFRACTION, virutal x-ray and electron diffraction, Shawn Coleman (ARL),"compute xrd"_compute_xrd.html, USER/diffraction, -, - +USER-DRUDE, Drude oscillators, Dequidt & Devemy & Padua (3), "tutorial"_tutorial_drude.html, USER/drude, -, - USER-EFF, electron force field, Andres Jaramillo-Botero (Caltech), "pair_style eff/cut"_pair_eff.html, USER/eff, "eff"_eff, - USER-FEP, free energy perturbation, Agilio Padua (U Blaise Pascal Clermont-Ferrand), "compute fep"_compute_fep.html, USER/fep, -, - USER-INTEL, Vectorized CPU and Intel(R) coprocessor styles, W. Michael Brown (Intel), "Section accelerate"_accelerate_intel.html, examples/intel, -, - @@ -151,10 +152,14 @@ library from. (2) The ATC package was created by Reese Jones, Jeremy Templeton, and Jon Zimmerman (Sandia). -(3) The COLVARS package was created by Axel Kohlmeyer (Temple U) using +(2) The COLVARS package was created by Axel Kohlmeyer (Temple U) using the colvars module library written by Giacomo Fiorin (Temple U) and Jerome Henin (LISM, Marseille, France). +(3) The DRUDE package was created by Alain Dequidt (U Blaise Pascal +Clermont-Ferrand) and co-authors Julien Devemy (CNRS) and Agilio Padua +(U Blaise Pascal). + The "Doc page" column links to either a portion of the "Section_howto"_Section_howto.html of the manual, or an input script command implemented as part of the package, or to additional @@ -343,6 +348,29 @@ Arkansas. Contact him directly if you have questions. :line +USER-DRUDE package :h4 + +This package implements methods for simulating polarizable systems +in LAMMPS using thermalized Drude oscillators. + +See these doc pages and their related commands to get started: + +"Drude tutorial"_tutorial_drude.html +"fix drude"_fix_drude.html +"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 + +There are auxiliary tools for using this package in tools/drude. + +The person who created this package is Alain Dequidt at Universite +Blaise Pascal Clermont-Ferrand (alain.dequidt at univ-bpclermont.fr) +Contact him directly if you have questions. Co-authors: Julien Devemy, +Agilio Padua. + +:line + USER-EFF package :h4 This package contains a LAMMPS implementation of the electron Force

    Package Description Author(s) Doc page Example Pic/movie Library
    USER-ATC atom-to-continuum coupling Jones & Templeton & Zimmerman (2) fix atc USER/atc atc lib/atc
    USER-ATC atom-to-continuum coupling Jones & Templeton & Zimmerman (1) fix atc USER/atc atc lib/atc
    USER-AWPMD wave-packet MD Ilya Valuev (JIHT) pair_style awpmd/cut USER/awpmd - lib/awpmd
    USER-CG-CMM coarse-graining model Axel Kohlmeyer (Temple U) pair_style lj/sdk USER/cg-cmm cg -
    USER-COLVARS collective variables Fiorin & Henin & Kohlmeyer (3) fix colvars USER/colvars colvars lib/colvars
    USER-COLVARS collective variables Fiorin & Henin & Kohlmeyer (2) fix colvars USER/colvars colvars lib/colvars
    USER-CUDA NVIDIA GPU styles Christian Trott (U Tech Ilmenau) Section accelerate USER/cuda - lib/cuda
    USER-DIFFRACTION virutal x-ray and electron diffraction Shawn Coleman (ARL)compute xrd USER/diffraction - -
    USER-DRUDE Drude oscillators Dequidt & Devemy & Padua (3) tutorial USER/drude - -
    USER-EFF electron force field Andres Jaramillo-Botero (Caltech) pair_style eff/cut USER/eff eff -
    USER-FEP free energy perturbation Agilio Padua (U Blaise Pascal Clermont-Ferrand) compute fep USER/fep - -
    USER-INTEL Vectorized CPU and Intel(R) coprocessor styles W. Michael Brown (Intel) Section accelerate examples/intel - -