diff --git a/doc/Section_commands.html b/doc/Section_commands.html index 107bfe1a60..ff9a0aa91f 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -382,7 +382,7 @@ package.
-
addtorqueatccolvarsimdlangevin/effmeso
meso/stationarynph/effnpt/effnve/effnvt/effnvt/sllod/eff
qeq/reaxreax/c/bondssmdtemp/rescale/eff +
phononqeq/reaxreax/c/bondssmdtemp/rescale/eff

These are accelerated fix styles, which can be used if LAMMPS is diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 7aa4be5208..33e724d38f 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -535,6 +535,7 @@ package"_Section_start.html#start_3. "nve/eff"_fix_nve_eff.html, "nvt/eff"_fix_nh_eff.html, "nvt/sllod/eff"_fix_nvt_sllod_eff.html, +"phonon"_fix_phonon.html, "qeq/reax"_fix_qeq_reax.html, "reax/c/bonds"_fix_reax_bonds.html, "smd"_fix_smd.html, diff --git a/doc/Section_tools.html b/doc/Section_tools.html index 991a536ad3..c72e929b82 100644 --- a/doc/Section_tools.html +++ b/doc/Section_tools.html @@ -62,6 +62,7 @@ own sub-directories with their own Makefiles.

  • micelle2d
  • moltemplate
  • msi2lmp +
  • phonon
  • pymol_asphere
  • python
  • reax @@ -340,6 +341,20 @@ experiment with it yourself.


    +

    phonon tool +

    +

    The phonon sub-directory contains a post-processing tool useful for +analyzing the output of the fix phonon command in +the USER-PHONON package. +

    +

    See the README file for instruction on building the tool and what +library it needs. And see the examples/USER/phonon directory +for example problems that can be post-processed with this tool. +

    +

    This tool was written by Ling-Ti Kong. +

    +
    +

    pymol_asphere tool

    The pymol_asphere sub-directory contains a tool for converting a diff --git a/doc/Section_tools.txt b/doc/Section_tools.txt index ff9e807613..0e05ccc010 100644 --- a/doc/Section_tools.txt +++ b/doc/Section_tools.txt @@ -58,6 +58,7 @@ own sub-directories with their own Makefiles. "micelle2d"_#micelle "moltemplate"_#moltemplate "msi2lmp"_#msi +"phonon"_#phonon "pymol_asphere"_#pymol "python"_#pythontools "reax"_#reax @@ -336,6 +337,20 @@ experiment with it yourself. :line +phonon tool :h4,link(phonon) + +The phonon sub-directory contains a post-processing tool useful for +analyzing the output of the "fix phonon"_fix_phonon.html command in +the USER-PHONON package. + +See the README file for instruction on building the tool and what +library it needs. And see the examples/USER/phonon directory +for example problems that can be post-processed with this tool. + +This tool was written by Ling-Ti Kong. + +:line + pymol_asphere tool :h4,link(pymol) The pymol_asphere sub-directory contains a tool for converting a diff --git a/doc/fix_phonon.html b/doc/fix_phonon.html new file mode 100644 index 0000000000..a97aa93c9f --- /dev/null +++ b/doc/fix_phonon.html @@ -0,0 +1,210 @@ + +

    LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
    + + + + + + +
    + +

    fix phonon command +

    +

    Syntax: +

    +
    fix ID group-ID phonon N Noutput Nwait map_file prefix keyword values ... 
    +
    + +

    Examples: +

    +
    fix 1 all phonon 20 5000 200000 map.in LJ1D sysdim 1
    +fix 1 all phonon 20 5000 200000 map.in EAM3D 
    +
    +

    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 += (l1,l2,l3) where li +are integers. Each unit cell is defined by three linearly independent +vectors a1, a2, a3 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ñá , Kong) +

    Φkα,k'β(q) = +kBT +G-1kα,k'β(q),
    +

    +

    where G is the Green's functions coefficients given by +

    +
    Gkα,k'β(q) = +<u(q)•uk'β*(q)>,
    + +

    where <...> denotes the enssemble average and +

    u(q) = ∑l +ulkα exp(iqrl)
    +

    +

    is the α component of the atomic displacement for the kth 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, +

    +
    Gkα,k'β(q) = +<R(q)•R*k'β(q)> +- <R>(q)•<R>*k'β(q), +
    + +

    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 +

    +
    Dkα, k'β(q) = (mkmk')-1/2 Φkα,k'β(q)
    + +

    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 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). +

    +

    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, can be employed to +generate the compatible map file for various crystals. +

    +

    The unit of the measured dynamical matrix is +energy/distance^2/mass. 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. +

    +

    The fix_modify 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. +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 command. +

    +

    This fix is not invoked during energy minimization. +

    +

    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 +

    +

    fix gfc +

    +

    Note: Compiling of this fix along with LAMMPS requires that the +FFT3d wrappers of kspace of LAMMPS is included +while compiling. +

    +

    Default: +

    +

    The option defaults are sysdim = domain->dimension, nasr = 20. +

    +
    + + + +

    (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) +

    + + +

    (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). +

    +

    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). +

    + + +

    (Kong2011) L.T. Kong, Phonon dispersion measured directly from +molecular dynamics simulations, Computer Physics Communications +182(10):2201-2207, +(2011). +

    + diff --git a/doc/fix_phonon.txt b/doc/fix_phonon.txt new file mode 100644 index 0000000000..14e9bac029 --- /dev/null +++ b/doc/fix_phonon.txt @@ -0,0 +1,192 @@ +"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 += (l1,l2,l3)} where {li} +are integers. Each unit cell is defined by three linearly independent +vectors [a]1, [a]2, [a]3 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) +
    Φkα,k'β(q) = +kBT +G-1kα,k'β(q),
    + +where [G] is the Green's functions coefficients given by + +
    Gkα,k'β(q) = +<u(q)•uk'β*(q)>,
    + +where <...> denotes the enssemble average and +
    [u](q) = ∑l +ulkα exp(i[qr]l)
    + +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, + +
    Gkα,k'β(q) = +<R(q)•R*k'β(q)> +- <R>(q)•<R>*k'β(q), +
    + +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 + +
    Dkα, k'β(q) = (mkmk')-1/2 Φkα,k'β(q)
    + +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