forked from lijiext/lammps
193 lines
7.8 KiB
Plaintext
193 lines
7.8 KiB
Plaintext
|
"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 phonon command :h3
|
||
|
|
||
|
[Syntax:]
|
||
|
|
||
|
fix ID group-ID phonon N Noutput Nwait map_file prefix keyword values ... :pre
|
||
|
|
||
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||
|
phonon = style name of this fix command :l
|
||
|
N = measure the Green's function every this many timesteps :l
|
||
|
Noutput = output the dynamical matrix every this many measurements :l
|
||
|
Nwait = wait this many timesteps before measuring :l
|
||
|
map_file = file containing the mapping info between atom ID and the lattice indices :l
|
||
|
prefix = prefix for output files :l
|
||
|
one or none keyword/value pairs may be appended :l
|
||
|
keyword = {sysdim} or {nasr} :l
|
||
|
{sysdim} value = d
|
||
|
d = dimension of the system, usually is the same as the MD dimension.
|
||
|
{nasr} value = n
|
||
|
n = number of iterations to enforce the acoustic sum rule. :pre
|
||
|
:ule
|
||
|
|
||
|
[Examples:]
|
||
|
|
||
|
fix 1 all phonon 20 5000 200000 map.in LJ1D sysdim 1
|
||
|
fix 1 all phonon 20 5000 200000 map.in EAM3D :pre
|
||
|
|
||
|
[Description:]
|
||
|
|
||
|
To measure the dynamical matrix from molecular dynamics simulations
|
||
|
based on fluctuation-dissipation theory for a group of atoms.
|
||
|
|
||
|
Consider a crystal with {N} unit cells in three dimensions labelled {l
|
||
|
= (l<sub>1</sub>,l<sub>2</sub>,l<sub>3</sub>)} where {l<sub>i</sub>}
|
||
|
are integers. Each unit cell is defined by three linearly independent
|
||
|
vectors [a]<sub>1</sub>, [a]<sub>2</sub>, [a]<sub>3</sub> forming a
|
||
|
parallelipiped, containing {K} basis atoms labelled {k}.
|
||
|
|
||
|
Based on fluctuation-dissipation theory, the force costant
|
||
|
coefficients of the system in the reciprocal space could be given by
|
||
|
("Campañá"_#campana , "Kong"_#kong)
|
||
|
<center><b>Φ</b><sub>kα,k'β</sub>(<b>q</b>) =
|
||
|
k<sub>B</sub>T
|
||
|
<b>G</b><sup>-1</sup><sub>kα,k'β</sub>(<b>q</b>),</center>
|
||
|
|
||
|
where [G] is the Green's functions coefficients given by
|
||
|
|
||
|
<center><b>G</b><sub>kα,k'β</sub>(<b>q</b>) =
|
||
|
<<b>u</b><sub>kα</sub>(<b>q</b>)•<b>u</b><sub>k'β</sub><sup>*</sup>(<b>q</b>)>,</center>
|
||
|
|
||
|
where <...> denotes the enssemble average and
|
||
|
<center>[u]<sub>kα</sub>(<b>q</b>) = ∑<sub>l</sub>
|
||
|
<b>u</b><sub>lkα</sub> exp(i[qr]<sub>l</sub>)</center>
|
||
|
|
||
|
is the α component of the atomic displacement for the {k}th atom
|
||
|
in the unit cell in the reciprocal space at [q]. In practice, the
|
||
|
Green's functions coefficients can also be measured according to the
|
||
|
following formula,
|
||
|
|
||
|
<center><b>G</b><sub>kα,k'β</sub>(<b>q</b>) =
|
||
|
<<b>R</b><sub>kα</sub>(<b>q</b>)•<b>R</b><sup>*</sup><sub>k'β</sub>(<b>q</b>)>
|
||
|
- <<b>R</b>><sub>kα</sub>(<b>q</b>)•<<b>R</b>><sup>*</sup><sub>k'β</sub>(<b>q</b>),
|
||
|
</center>
|
||
|
|
||
|
where [R] is the instantaneous positions of atoms, and <[R]> is the
|
||
|
averaged atomic positions. It gives essentially the same
|
||
|
results as the displacement method and is easier to implement into an MD code.
|
||
|
|
||
|
Once the force constant matrix is known, the dynamical matrix [D]
|
||
|
could then be obtained by
|
||
|
|
||
|
<center><b>D</b><sub>kα, k'β</sub>(<b>q</b>) = (m<sub>k</sub>m<sub>k'</sub>)<sup>-1/2</sup> <b>Φ</b><sub>kα,k'β</sub>(<b>q</b>)</center>
|
||
|
|
||
|
whose eigenvalues are exactly the phonon frequencies at [q].
|
||
|
|
||
|
This fix observes the positions of atoms in the corresponding group
|
||
|
and the two-point correlations. To achieve this the positions of the
|
||
|
atoms are examined every Nevery steps and are Fourier-transformed
|
||
|
(with "FFT3d wrapper"_kspace_style.html from kspace package of LAMMPS)
|
||
|
into reciprocal space, in which the averaging process and correlation
|
||
|
computation is then done. After every Noutput measurements, the matrix
|
||
|
[G]([q]) is calculated and inverted to get the elastic stiffness
|
||
|
coefficients. The dynamical matrices are then constructed and written
|
||
|
to file "prefix".bin."timestep" in binary format and to file
|
||
|
"prefix".log for each wavevector [q].
|
||
|
|
||
|
A detailed description of this method can be found in ("Kong2011"_#kong2011).
|
||
|
|
||
|
The {sysdim} keyword is optional, if specified and its value is
|
||
|
smaller than the dimensionality of the molecular dynamics simulation,
|
||
|
its value will be taken as the dimensionality of the system under
|
||
|
study. For example, in LAMMPS, one can simulate a 2D or 3D system,
|
||
|
while if one wants to study the phonon dispersion of a 1D atomic
|
||
|
chain, one can set the {sysdim} keyword to be {1} and the code will
|
||
|
assume a 1D system is studied.
|
||
|
|
||
|
The {nasr} keyword is optional. An iterative procedure is employed to
|
||
|
enforce the acoustic sum rule on Φ at Γ, and the number
|
||
|
provided by keyword {nasr} gives the total number of iterations. For
|
||
|
system whose unit cell has only one atom, {nasr} = 1 is sufficient;
|
||
|
while for other systems, {nasr} = 10 should be enough.
|
||
|
|
||
|
The {map_file} contains the mapping information between the lattice
|
||
|
indices and the atom IDs, which simply tells the code which atom sits
|
||
|
at which lattice point; the lattice indices start from 0. An auxiliary
|
||
|
code, "latgen"_http://code.google.com/p/latgen, can be employed to
|
||
|
generate the compatible map file for various crystals.
|
||
|
|
||
|
The unit of the measured dynamical matrix is
|
||
|
"energy/distance^2/mass"_units.html. The coordinates for {q} points
|
||
|
in the log file is in unit of the basis vectors of the corresponding
|
||
|
reciprocal lattice.
|
||
|
|
||
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||
|
|
||
|
No information about this fix is written to "binary restart
|
||
|
files"_restart.html.
|
||
|
|
||
|
The "fix_modify"_fix_modify.html {temp} option
|
||
|
is supported by this fix. You can use it to change the
|
||
|
temperature compute from thermo_temp to the one that reflects the true
|
||
|
temperature of atoms in the group.
|
||
|
|
||
|
No global scalar or vector or per-atom
|
||
|
quantities are stored by this fix for access by various "output
|
||
|
commands"_Section_howto.html#4_15.
|
||
|
Instead, this fix outputs the initialization information (in which the
|
||
|
mapping information can be found) and the calculated
|
||
|
dynamical matrices into file "prefix".log, where "prefix" will be
|
||
|
replaced by the prefix given; besides, the
|
||
|
dynamical matrices will also be written to file
|
||
|
"prefix".bin."timestep" in binary format, which could be
|
||
|
used by a postprocessing code {phana} to get the phonon density of states
|
||
|
and/or phonon dispersion curves.
|
||
|
At the end of run, these information will also be written.
|
||
|
|
||
|
No parameter of this fix can be used with the {start/stop} keywords
|
||
|
of the "run"_run.html command.
|
||
|
|
||
|
This fix is not invoked during "energy minimization"_minimize.html.
|
||
|
|
||
|
[Restrictions:]
|
||
|
|
||
|
This fix assumes a crystalline system with periodical lattice. The temperature
|
||
|
of the system should not exceed the melting temperature to keep in solid state.
|
||
|
|
||
|
[Related commands:]
|
||
|
|
||
|
"compute msd"_compute_msd.html
|
||
|
|
||
|
"fix gfc"_http://code.google.com/p/fix-gfmd
|
||
|
|
||
|
[Note:] Compiling of this fix along with LAMMPS requires that the
|
||
|
"FFT3d wrappers of kspace"_kspace_style.html of LAMMPS is included
|
||
|
while compiling.
|
||
|
|
||
|
[Default:]
|
||
|
|
||
|
The option defaults are {sysdim} = domain->dimension, {nasr} = 20.
|
||
|
|
||
|
:line
|
||
|
|
||
|
:link(campana)
|
||
|
[(Campañá)] C. Campañá and
|
||
|
M. H. Müser, {Practical Green's function approach to the
|
||
|
simulation of elastic semi-infinite solids}, "Phys. Rev. B [74],
|
||
|
075420 (2006)"_http://dx.doi.org/10.1103/PhysRevB.74.075420
|
||
|
|
||
|
:link(kong)
|
||
|
[(Kong)] L.T. Kong, G. Bartels, C. Campañá,
|
||
|
C. Denniston, and Martin H. Müser, {Implementation of Green's
|
||
|
function molecular dynamics: An extension to LAMMPS}, "Computer
|
||
|
Physics Communications [180](6):1004-1010
|
||
|
(2009)."_http://dx.doi.org/10.1016/j.cpc.2008.12.035
|
||
|
|
||
|
L.T. Kong, C. Denniston, and Martin H. Müser,
|
||
|
{An improved version of the Green's function molecular dynamics
|
||
|
method}, "Computer Physics Communications [182](2):540-541
|
||
|
(2011)."_http://dx.doi.org/10.1016/j.cpc.2010.10.006
|
||
|
|
||
|
:link(kong2011)
|
||
|
[(Kong2011)] L.T. Kong, {Phonon dispersion measured directly from
|
||
|
molecular dynamics simulations}, "Computer Physics Communications
|
||
|
[182](10):2201-2207,
|
||
|
(2011)."_http://dx.doi.org/10.1016/j.cpc.2011.04.019
|