Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F80608048
fix_drude_transform.txt
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Sep 1, 15:45
Size
6 KB
Mime Type
text/x-tex
Expires
Tue, Sep 3, 15:45 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20406202
Attached To
rLAMMPS lammps
fix_drude_transform.txt
View Options
<script type="text/javascript"
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } });
</script>
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix drude/transform/direct command :h3
fix drude/transform/inverse command :h3
[Syntax:]
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
[Examples:]
fix 3 all drude/transform/direct
fix 1 all drude/transform/inverse temp yes :pre
[Description:]
Transform the coordinates of Drude oscillators from real to reduced
and back for thermalizing the Drude oscillators as described in
"(Lamoureux)"_#Lamoureux using a Nose-Hoover thermostat. This fix 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.
Drude oscillators are a pair of atoms representing a single
polarizable atom. Ideally, the mass of Drude particles would vanish
and their positions would be determined self-consistently by iterative
minimization of the energy, the cores' positions being fixed. It is
however more efficient and it yields comparable results, if the Drude
oscillators (the motion of the Drude particle relative to the core)
are thermalized at a low temperature. In that case, the Drude
particles need a small mass.
The thermostats act on the reduced degrees of freedom, which are
defined by the following equations. Note that in these equations
upper case denotes atomic or center of mass values and lower case
denotes Drude particle or dipole values. Primes denote the transformed
(reduced) values, while bare letters denote the original values.
Masses: \begin\{equation\} M' = M + m \end\{equation\}
\begin\{equation\} m' = \frac \{M\, m \} \{M'\} \end\{equation\}
Positions: \begin\{equation\} X' = \frac \{M\, X + m\, x\} \{M'\}
\end\{equation\} \begin\{equation\} x' = x - X \end\{equation\}
Velocities: \begin\{equation\} V' = \frac \{M\, V + m\, v\} \{M'\}
\end\{equation\} \begin\{equation\} v' = v - V \end\{equation\}
Forces: \begin\{equation\} F' = F + f \end\{equation\}
\begin\{equation\} f' = \frac \{ M\, f - m\, F\} \{M'\}
\end\{equation\}
This transform conserves the total kinetic energy
\begin\{equation\} \frac 1 2 \, (M\, V^2\ + m\, v^2)
= \frac 1 2 \, (M'\, V'^2\ + m'\, v'^2) \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.
:line
This fix requires each atom know whether it is a Drude particle or
not. You must therefore use the "fix drude"_fix_drude.html command to
specify the Drude status of each atom type.
IMPORTANT NOTE: only the Drude core atoms need to be in the group
specified for this fix. A Drude electron will be transformed together
with its cores even if it is not itself in the group. It is safe to
include Drude electrons or non-polarizable atoms in the group. The
non-polarizable atoms will simply not be transformed.
:line
This fix does NOT perform time integration. It only transform masses,
coordinates, velocities and forces. Thus you must use separate time
integration fixes, like "fix nve"_fix_nve.html or "fix
npt"_fix_nh.html to actually update the velocities and positions of
atoms. In order to thermalize the reduced degrees of freedom at
different temperatures, two Nose-Hoover thermostats must be defined,
acting on two distinct groups.
IMPORTANT NOTE: The {fix drude/transform/direct} command must appear
before any Nose-Hoover thermostating fixes. The {fix
drude/transform/inverse} command must appear after any Nose-Hoover
thermostating fixes.
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
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.
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},
the other one should be {nvt}. You must add a {compute temp/com} and a
{fix_modify} command so that the temperature of the {npt} fix be just
that of its group but the pressure be the overall pressure
{thermo_press}.
Example: :b
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
fix_modify fNPT temp cTEMP_CORE press thermo_press
fix fNVT gDRUDES nvt temp 5.0 5.0 100.0
fix fINVERSE all drude/transform/inverse :pre
In this example, {gCORES} is the group of the atom cores and {gDRUDES}
is the group of the Drude particles. The centers of mass of the Drude
oscillators will be thermostated at 298.0 and the internal degrees of
freedom will be thermostated at 5.0. The whole system will be
barostated at 1.0.
In order to avoid the flying ice cube problem (irreversible transfer
of linear momentum to the center of mass of the system), you may need
to add a {fix momentum} command like such as
fix fMOMENTUM all momentum 100 linear 1 1 1 :pre
:line
[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.
[Restrictions:] none
[Related commands:]
"fix drude"_fix_drude.html,
"fix langevin/drude"_fix_langevin_drude.html,
"compute temp/drude"_compute_temp_drude.html,
"pair_style thole"_pair_thole.html
[Default:]
The option defaults are temp = no.
:line
:link(Lamoureux)
[(Lamoureux)] Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003).
Event Timeline
Log In to Comment