forked from lijiext/lammps
215 lines
8.7 KiB
Plaintext
215 lines
8.7 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,Commands_all.html)
|
|
|
|
: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} or {GAMMA} :l
|
|
{file} is the file that contains the mapping info between atom ID and the lattice indices. :pre
|
|
|
|
{GAMMA} flags to treate the whole simulation box as a unit cell, so that the mapping
|
|
info can be generated internally. In this case, dynamical matrix at only the gamma-point
|
|
will/can be evaluated. :pre
|
|
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 the same as the MD model 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
|
|
fix 1 all phonon 10 5000 500000 GAMMA EAM0D nasr 100 :pre
|
|
|
|
[Description:]
|
|
|
|
Calculate 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 labeled
|
|
\(l = (l_1, l_2, l_3)\) where \(l_i\) are integers. Each unit cell is
|
|
defined by three linearly independent vectors \(\mathbf\{a\}_1\),
|
|
\(\mathbf\{a\}_2\), \(\mathbf\{a\}_3\) forming a parallelepiped,
|
|
containing \(K\) basis atoms labeled \(k\).
|
|
|
|
Based on fluctuation-dissipation theory, the force constant
|
|
coefficients of the system in reciprocal space are given by
|
|
("Campana"_#Campana , "Kong"_#Kong)
|
|
|
|
\begin\{equation\}
|
|
\mathbf\{\Phi\}_\{k\alpha,k^\prime \beta\}(\mathbf\{q\}) = k_B T \mathbf\{G\}^\{-1\}_\{k\alpha,k^\prime \beta\}(\mathbf\{q\})
|
|
\end\{equation\}
|
|
|
|
where \(\mathbf\{G\}\) is the Green's functions coefficients given by
|
|
|
|
\begin\{equation\}
|
|
\mathbf\{G\}_\{k\alpha,k^\prime \beta\}(\mathbf\{q\}) = \left< \mathbf\{u\}_\{k\alpha\}(\mathbf\{q\}) \bullet \mathbf\{u\}_\{k^\prime \beta\}^*(\mathbf\{q\}) \right>
|
|
\end\{equation\}
|
|
|
|
where \(\left< \ldots \right>\) denotes the ensemble average, and
|
|
|
|
\begin\{equation\}
|
|
\mathbf\{u\}_\{k\alpha\}(\mathbf\{q\}) = \sum_l \mathbf\{u\}_\{l k \alpha\} \exp\{(i\mathbf\{qr\}_l)\}
|
|
\end\{equation\}
|
|
|
|
is the \(\alpha\) component of the atomic displacement for the \(k\)
|
|
th atom in the unit cell in reciprocal space at \(\mathbf\{q\}\). In
|
|
practice, the Green's functions coefficients can also be measured
|
|
according to the following formula,
|
|
|
|
\begin\{equation\}
|
|
\mathbf\{G\}_\{k\alpha,k^\prime \beta\}(\mathbf\{q\}) =
|
|
\left< \mathbf\{R\}_\{k \alpha\}(\mathbf\{q\}) \bullet \mathbf\{R\}^*_\{k^\prime \beta\}(\mathbf\{q\}) \right>
|
|
- \left<\mathbf\{R\}\right>_\{k \alpha\}(\mathbf\{q\}) \bullet \left<\mathbf\{R\}\right>^*_\{k^\prime \beta\}(\mathbf\{q\})
|
|
\end\{equation\}
|
|
|
|
where \(\mathbf\{R\}\) is the instantaneous positions of atoms, and
|
|
\(\left<\mathbf\{R\}\right>\) is the averaged atomic positions. It
|
|
gives essentially the same results as the displacement method and is
|
|
easier to implement in an MD code.
|
|
|
|
Once the force constant matrix is known, the dynamical matrix
|
|
\(\mathbf\{D\}\) can then be obtained by
|
|
|
|
\begin\{equation\}
|
|
\mathbf\{D\}_\{k\alpha, k^\prime\beta\}(\mathbf\{q\}) =
|
|
(m_k m_\{k^\prime\})^\{-\frac\{1\}\{2\}\} \mathbf\{\Phi\}_\{k \alpha, k^\prime \beta\}(\mathbf\{q\})
|
|
\end\{equation\}
|
|
|
|
whose eigenvalues are exactly the phonon frequencies at \(\mathbf\{q\}\).
|
|
|
|
This fix uses positions of atoms in the specified group and calculates
|
|
two-point correlations. To achieve this. the positions of the atoms
|
|
are examined every {Nevery} steps and are Fourier-transformed into
|
|
reciprocal space, where the averaging process and correlation
|
|
computation is then done. After every {Noutput} measurements, the
|
|
matrix \(\mathbf\{G\}(\mathbf\{q\})\) is calculated and inverted to
|
|
obtain the elastic stiffness coefficients. The dynamical matrices are
|
|
then constructed and written to {prefix}.bin.timestep files in binary
|
|
format and to the file {prefix}.log for each wave-vector
|
|
\(\mathbf\{q\}\).
|
|
|
|
A detailed description of this method can be found in
|
|
("Kong2011"_#Kong2011).
|
|
|
|
The {sysdim} keyword is optional. If specified with a value smaller
|
|
than the dimensionality of the LAMMPS simulation, its value is used
|
|
for the dynamical matrix calculation. For example, using LAMMPS ot
|
|
model a 2D or 3D system, the phonon dispersion of a 1D atomic chain
|
|
can be computed using {sysdim} = 1.
|
|
|
|
The {nasr} keyword is optional. An iterative procedure is employed to
|
|
enforce the acoustic sum rule on \(\Phi\) at \(\Gamma\), and the number
|
|
provided by keyword {nasr} gives the total number of iterations. For a
|
|
system whose unit cell has only one atom, {nasr} = 1 is sufficient;
|
|
for other systems, {nasr} = 10 is typically sufficient.
|
|
|
|
The {map_file} contains the mapping information between the lattice
|
|
indices and the atom IDs, which 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.
|
|
|
|
In case one simulates a non-periodic system, where the whole simulation
|
|
box is treated as a unit cell, one can set {map_file} as {GAMMA}, so
|
|
that the mapping info will be generated internally and a file is not
|
|
needed. In this case, the dynamical matrix at only the gamma-point
|
|
will/can be evaluated. Please keep in mind that fix-phonon is designed
|
|
for cyrstals, it will be inefficient and even degrade the performance
|
|
of lammps in case the unit cell is too large.
|
|
|
|
The calculated dynamical matrix elements are written out in
|
|
"energy/distance^2/mass"_units.html units. The coordinates for {q}
|
|
points in the log file is in the units 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"_Howto_output.html.
|
|
|
|
Instead, this fix outputs its initialization information (including
|
|
mapping information) and the calculated dynamical matrices to the file
|
|
{prefix}.log, with the specified {prefix}. The dynamical matrices are
|
|
also written to files {prefix}.bin.timestep in binary format. These
|
|
can be read by the post-processing tool in tools/phonon to compute the
|
|
phonon density of states and/or phonon dispersion curves.
|
|
|
|
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 the system in its solid state.
|
|
|
|
This fix is part of the USER-PHONON package. It is only enabled if
|
|
LAMMPS was built with that package. See the "Build
|
|
package"_Build_package.html doc page for more info.
|
|
|
|
This fix requires LAMMPS be built with an FFT library. See the "Build
|
|
settings"_Build_settings.html doc page for details.
|
|
|
|
[Related commands:]
|
|
|
|
"compute msd"_compute_msd.html,
|
|
"dynamical_matrix"_dynamical_matrix.html
|
|
|
|
[Default:]
|
|
|
|
The option defaults are sysdim = the same dimension as specified by
|
|
the "dimension"_dimension.html command, and nasr = 20.
|
|
|
|
:line
|
|
|
|
:link(Campana)
|
|
[(Campana)] C. Campana and
|
|
M. H. Muser, {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. Campana,
|
|
C. Denniston, and Martin H. Muser, {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. Muser,
|
|
{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
|