diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index b276794a5..441e9cc8f 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,340 +1,340 @@ LAMMPS Users Manual - + "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

LAMMPS Documentation :c,h3 -22 Sep 2016 version :c,h4 +21 Sep 2016 version :c,h4 Version info: :h4 The LAMMPS "version" is the date when it was released, such as 1 May 2010. LAMMPS is updated continuously. Whenever we fix a bug or add a feature, we release it immediately, and post a notice on "this page of the WWW site"_bug. Every 2-4 months one of the incremental releases is subjected to more thorough testing and labeled as a {stable} version. Each dated copy of LAMMPS contains all the features and bug-fixes up to and including that version date. The version date is printed to the screen and logfile every time you run LAMMPS. It is also in the file src/version.h and in the LAMMPS directory name created when you unpack a tarball, and at the top of the first page of the manual (this page). If you browse the HTML doc pages on the LAMMPS WWW site, they always describe the most current version of LAMMPS. :ulb,l If you browse the HTML doc pages included in your tarball, they describe the version you have. :l The "PDF file"_Manual.pdf on the WWW site or in the tarball is updated about once per month. This is because it is large, and we don't want it to be part of every patch. :l There is also a "Developer.pdf"_Developer.pdf file in the doc directory, which describes the internal structure and algorithms of LAMMPS. :l :ule LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS is a classical molecular dynamics simulation code designed to run efficiently on parallel computers. It was developed at Sandia National Laboratories, a US Department of Energy facility, with funding from the DOE. It is an open-source code, distributed freely under the terms of the GNU Public License (GPL). The current core group of LAMMPS developers is at Sandia National Labs and Temple University: "Steve Plimpton"_sjp, sjplimp at sandia.gov :ulb,l Aidan Thompson, athomps at sandia.gov :l Stan Moore, stamoore at sandia.gov :l "Axel Kohlmeyer"_ako, akohlmey at gmail.com :l :ule Past core developers include Paul Crozier, Ray Shan and Mark Stevens, all at Sandia. The [LAMMPS home page] at "http://lammps.sandia.gov"_http://lammps.sandia.gov has more information about the code and its uses. Interaction with external LAMMPS developers, bug reports and feature requests are mainly coordinated through the "LAMMPS project on GitHub."_https://github.com/lammps/lammps The lammps.org domain, currently hosting "public continuous integration testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux RPM and Windows installer packages"_http://rpm.lammps.org is located at Temple University and managed by Richard Berger, richard.berger at temple.edu. :link(bug,http://lammps.sandia.gov/bug.html) :link(sjp,http://www.sandia.gov/~sjplimp) :link(ako,http://goo.gl/1wk0) :line The LAMMPS documentation is organized into the following sections. If you find errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so we can improve the LAMMPS documentation. Once you are familiar with LAMMPS, you may want to bookmark "this page"_Section_commands.html#comm at Section_commands.html#comm since it gives quick access to documentation for all LAMMPS commands. "PDF file"_Manual.pdf of the entire manual, generated by "htmldoc"_http://freecode.com/projects/htmldoc "Introduction"_Section_intro.html :olb,l 1.1 "What is LAMMPS"_intro_1 :ulb,b 1.2 "LAMMPS features"_intro_2 :b 1.3 "LAMMPS non-features"_intro_3 :b 1.4 "Open source distribution"_intro_4 :b 1.5 "Acknowledgments and citations"_intro_5 :ule,b "Getting started"_Section_start.html :l 2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b 2.2 "Making LAMMPS"_start_2 :b 2.3 "Making LAMMPS with optional packages"_start_3 :b 2.4 "Building LAMMPS via the Make.py script"_start_4 :b 2.5 "Building LAMMPS as a library"_start_5 :b 2.6 "Running LAMMPS"_start_6 :b 2.7 "Command-line options"_start_7 :b 2.8 "Screen output"_start_8 :b 2.9 "Tips for users of previous versions"_start_9 :ule,b "Commands"_Section_commands.html :l 3.1 "LAMMPS input script"_cmd_1 :ulb,b 3.2 "Parsing rules"_cmd_2 :b 3.3 "Input script structure"_cmd_3 :b 3.4 "Commands listed by category"_cmd_4 :b 3.5 "Commands listed alphabetically"_cmd_5 :ule,b "Packages"_Section_packages.html :l 4.1 "Standard packages"_pkg_1 :ulb,b 4.2 "User packages"_pkg_2 :ule,b "Accelerating LAMMPS performance"_Section_accelerate.html :l 5.1 "Measuring performance"_acc_1 :ulb,b 5.2 "Algorithms and code options to boost performace"_acc_2 :b 5.3 "Accelerator packages with optimized styles"_acc_3 :b 5.3.1 "GPU package"_accelerate_gpu.html :ulb,b 5.3.2 "USER-INTEL package"_accelerate_intel.html :b 5.3.3 "KOKKOS package"_accelerate_kokkos.html :b 5.3.4 "USER-OMP package"_accelerate_omp.html :b 5.3.5 "OPT package"_accelerate_opt.html :ule,b 5.4 "Comparison of various accelerator packages"_acc_4 :ule,b "How-to discussions"_Section_howto.html :l 6.1 "Restarting a simulation"_howto_1 :ulb,b 6.2 "2d simulations"_howto_2 :b 6.3 "CHARMM and AMBER force fields"_howto_3 :b 6.4 "Running multiple simulations from one input script"_howto_4 :b 6.5 "Multi-replica simulations"_howto_5 :b 6.6 "Granular models"_howto_6 :b 6.7 "TIP3P water model"_howto_7 :b 6.8 "TIP4P water model"_howto_8 :b 6.9 "SPC water model"_howto_9 :b 6.10 "Coupling LAMMPS to other codes"_howto_10 :b 6.11 "Visualizing LAMMPS snapshots"_howto_11 :b 6.12 "Triclinic (non-orthogonal) simulation boxes"_howto_12 :b 6.13 "NEMD simulations"_howto_13 :b 6.14 "Finite-size spherical and aspherical particles"_howto_14 :b 6.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_howto_15 :b 6.16 "Thermostatting, barostatting, and compute temperature"_howto_16 :b 6.17 "Walls"_howto_17 :b 6.18 "Elastic constants"_howto_18 :b 6.19 "Library interface to LAMMPS"_howto_19 :b 6.20 "Calculating thermal conductivity"_howto_20 :b 6.21 "Calculating viscosity"_howto_21 :b 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 "Polarizable models"_howto_25 :b 6.26 "Adiabatic core/shell model"_howto_26 :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 "Modifying & extending LAMMPS"_Section_modify.html :l 10.1 "Atom styles"_mod_1 :ulb,b 10.2 "Bond, angle, dihedral, improper potentials"_mod_2 :b 10.3 "Compute styles"_mod_3 :b 10.4 "Dump styles"_mod_4 :b 10.5 "Dump custom output options"_mod_5 :b 10.6 "Fix styles"_mod_6 :b 10.7 "Input script commands"_mod_7 :b 10.8 "Kspace computations"_mod_8 :b 10.9 "Minimization styles"_mod_9 :b 10.10 "Pairwise potentials"_mod_10 :b 10.11 "Region styles"_mod_11 :b 10.12 "Body styles"_mod_12 :b 10.13 "Thermodynamic output options"_mod_13 :b 10.14 "Variable options"_mod_14 :b 10.15 "Submitting new features for inclusion in LAMMPS"_mod_15 :ule,b "Python interface"_Section_python.html :l 11.1 "Overview of running LAMMPS from Python"_py_1 :ulb,b 11.2 "Overview of using Python from a LAMMPS script"_py_2 :b 11.3 "Building LAMMPS as a shared library"_py_3 :b 11.4 "Installing the Python wrapper into Python"_py_4 :b 11.5 "Extending Python with MPI to run in parallel"_py_5 :b 11.6 "Testing the Python-LAMMPS interface"_py_6 :b 11.7 "Using LAMMPS from Python"_py_7 :b 11.8 "Example Python scripts that use LAMMPS"_py_8 :ule,b "Errors"_Section_errors.html :l 12.1 "Common problems"_err_1 :ulb,b 12.2 "Reporting bugs"_err_2 :b 12.3 "Error & warning messages"_err_3 :ule,b "Future and history"_Section_history.html :l 13.1 "Coming attractions"_hist_1 :ulb,b 13.2 "Past versions"_hist_2 :ule,b :ole :link(intro_1,Section_intro.html#intro_1) :link(intro_2,Section_intro.html#intro_2) :link(intro_3,Section_intro.html#intro_3) :link(intro_4,Section_intro.html#intro_4) :link(intro_5,Section_intro.html#intro_5) :link(start_1,Section_start.html#start_1) :link(start_2,Section_start.html#start_2) :link(start_3,Section_start.html#start_3) :link(start_4,Section_start.html#start_4) :link(start_5,Section_start.html#start_5) :link(start_6,Section_start.html#start_6) :link(start_7,Section_start.html#start_7) :link(start_8,Section_start.html#start_8) :link(start_9,Section_start.html#start_9) :link(cmd_1,Section_commands.html#cmd_1) :link(cmd_2,Section_commands.html#cmd_2) :link(cmd_3,Section_commands.html#cmd_3) :link(cmd_4,Section_commands.html#cmd_4) :link(cmd_5,Section_commands.html#cmd_5) :link(pkg_1,Section_packages.html#pkg_1) :link(pkg_2,Section_packages.html#pkg_2) :link(acc_1,Section_accelerate.html#acc_1) :link(acc_2,Section_accelerate.html#acc_2) :link(acc_3,Section_accelerate.html#acc_3) :link(acc_4,Section_accelerate.html#acc_4) :link(howto_1,Section_howto.html#howto_1) :link(howto_2,Section_howto.html#howto_2) :link(howto_3,Section_howto.html#howto_3) :link(howto_4,Section_howto.html#howto_4) :link(howto_5,Section_howto.html#howto_5) :link(howto_6,Section_howto.html#howto_6) :link(howto_7,Section_howto.html#howto_7) :link(howto_8,Section_howto.html#howto_8) :link(howto_9,Section_howto.html#howto_9) :link(howto_10,Section_howto.html#howto_10) :link(howto_11,Section_howto.html#howto_11) :link(howto_12,Section_howto.html#howto_12) :link(howto_13,Section_howto.html#howto_13) :link(howto_14,Section_howto.html#howto_14) :link(howto_15,Section_howto.html#howto_15) :link(howto_16,Section_howto.html#howto_16) :link(howto_17,Section_howto.html#howto_17) :link(howto_18,Section_howto.html#howto_18) :link(howto_19,Section_howto.html#howto_19) :link(howto_20,Section_howto.html#howto_20) :link(howto_21,Section_howto.html#howto_21) :link(howto_22,Section_howto.html#howto_22) :link(howto_23,Section_howto.html#howto_23) :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) :link(mod_3,Section_modify.html#mod_3) :link(mod_4,Section_modify.html#mod_4) :link(mod_5,Section_modify.html#mod_5) :link(mod_6,Section_modify.html#mod_6) :link(mod_7,Section_modify.html#mod_7) :link(mod_8,Section_modify.html#mod_8) :link(mod_9,Section_modify.html#mod_9) :link(mod_10,Section_modify.html#mod_10) :link(mod_11,Section_modify.html#mod_11) :link(mod_12,Section_modify.html#mod_12) :link(mod_13,Section_modify.html#mod_13) :link(mod_14,Section_modify.html#mod_14) :link(mod_15,Section_modify.html#mod_15) :link(py_1,Section_python.html#py_1) :link(py_2,Section_python.html#py_2) :link(py_3,Section_python.html#py_3) :link(py_4,Section_python.html#py_4) :link(py_5,Section_python.html#py_5) :link(py_6,Section_python.html#py_6) :link(err_1,Section_errors.html#err_1) :link(err_2,Section_errors.html#err_2) :link(err_3,Section_errors.html#err_3) :link(hist_1,Section_history.html#hist_1) :link(hist_2,Section_history.html#hist_2) diff --git a/doc/src/fix_phonon.txt b/doc/src/fix_phonon.txt index 2ed63a96c..254cf4740 100644 --- a/doc/src/fix_phonon.txt +++ b/doc/src/fix_phonon.txt @@ -1,211 +1,213 @@ "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} 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 labelled \(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 -parallelipiped, containing \(K\) basis atoms labeled \(k\). +Consider a crystal with \(N\) unit cells in three dimensions labelled +\(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 parallelipiped, +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, +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. +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 +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 wavevector \(\mathbf\{q\}\). +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 wavevector +\(\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 an aperiodic 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. +In case one simulates an aperiodic 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"_Section_howto.html#howto_15. 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 "Making LAMMPS"_Section_start.html#start_3 section for more info. This fix requires LAMMPS be built with an FFT library. See the "Making LAMMPS"_Section_start.html#start_2 section for more info. [Related commands:] "compute msd"_compute_msd.html [Default:] The option defaults are sysdim = the same dimemsion as specified by the "dimension"_dimension 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 diff --git a/doc/src/fix_wall_region.txt b/doc/src/fix_wall_region.txt index 2d90fbb5b..ca5335e3f 100644 --- a/doc/src/fix_wall_region.txt +++ b/doc/src/fix_wall_region.txt @@ -1,216 +1,218 @@ "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 wall/region command :h3 [Syntax:] fix ID group-ID wall/region region-ID style epsilon sigma cutoff :pre ID, group-ID are documented in "fix"_fix.html command wall/region = style name of this fix command region-ID = region whose boundary will act as wall style = {lj93} or {lj126} or {colloid} or {harmonic} epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units) sigma = size factor for wall-particle interaction (distance units) cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :ul [Examples:] fix wall all wall/region mySphere lj93 1.0 1.0 2.5 :pre [Description:] Treat the surface of the geometric region defined by the {region-ID} as a bounding wall which interacts with nearby particles according to the specified style. The distance between a particle and the surface is the distance to the nearest point on the surface and the force the wall exerts on the particle is along the direction between that point and the particle, which is the direction normal to the surface at that point. Note that if the region surface is comprised of multiple "faces", then each face can exert a force on the particle if it is close enough. E.g. for "region_style block"_region.html, a particle in the interior, near a corner of the block, could feel wall forces from 1, 2, or 3 faces of the block. Regions are defined using the "region"_region.html command. Note that the region volume can be interior or exterior to the bounding surface, which will determine in which direction the surface interacts with particles, i.e. the direction of the surface normal. The surface of the region only exerts forces on particles "inside" the region; if a particle is "outside" the region it will generate an error, because it has moved through the wall. Regions can either be primitive shapes (block, sphere, cylinder, etc) or combinations of primitive shapes specified via the {union} or {intersect} region styles. These latter styles can be used to construct particle containers with complex shapes. Regions can also change over time via the "region"_region.html command keywords (move) and {rotate}. If such a region is used with this fix, then the of region surface will move over time in the corresponding manner. NOTE: As discussed on the "region"_region.html command doc page, regions in LAMMPS do not get wrapped across periodic boundaries. It is up to you to insure that periodic or non-periodic boundaries are specified appropriately via the "boundary"_boundary.html command when using a region as a wall that bounds particle motion. This also means that if you embed a region in your simulation box and want it to repulse particles from its surface (using the "side out" option in the "region"_region.html command), that its repulsive force will not be felt across a periodic boundary. NOTE: For primitive regions with sharp corners and/or edges (e.g. a block or cylinder), wall/particle forces are computed accurately for both interior and exterior regions. For {union} and {intersect} regions, additional sharp corners and edges may be present due to the intersection of the surfaces of 2 or more primitive volumes. These corners and edges can be of two types: concave or convex. Concave points/edges are like the corners of a cube as seen by particles in the interior of a cube. Wall/particle forces around these features are computed correctly. Convex points/edges are like the corners of a cube as seen by particles exterior to the cube, i.e. the points jut into the volume where particles are present. LAMMPS does NOT compute the location of these convex points directly, and hence wall/particle forces in the cutoff volume around these points suffer from inaccuracies. The basic problem is that the outward normal of the surface is not continuous at these points. This can cause particles to feel no force (they don't "see" the wall) when in one location, then move a distance epsilon, and suddenly feel a large force because they now "see" the wall. In a worst-case scenario, this can blow particles out of the simulation box. Thus, as a general rule you -should not use the fix wall/region command with {union} or -{interesect} regions that have convex points or edges. +should not use the fix wall/gran/region command with {union} or +{interesect} regions that have convex points or edges resulting from +the union/intersection (convex points/edges in the union/intersection +due to a single sub-region are still OK). NOTE: Similarly, you should not define {union} or {intersert} regions for use with this command that share an overlapping common face that is part of the overall outer boundary (interior boundary is OK), even if the face is smooth. E.g. two regions of style block in a {union} region, where the two blocks overlap on one or more of their faces. This is because LAMMPS discards points that are part of multiple sub-regions when calculating wall/particle interactions, to avoid double-counting the interaction. Having two coincident faces could cause the face to become invisible to the particles. The solution is to make the two faces differ by epsilon in their position. The energy of wall-particle interactions depends on the specified style. For style {lj93}, the energy E is given by the 9/3 potential: :c,image(Eqs/fix_wall_lj93.jpg) For style {lj126}, the energy E is given by the 12/6 potential: :c,image(Eqs/pair_lj.jpg) For style {colloid}, the energy E is given by an integrated form of the "pair_style colloid"_pair_colloid.html potential: :c,image(Eqs/fix_wall_colloid.jpg) For style {wall/harmonic}, the energy E is given by a harmonic spring potential: :c,image(Eqs/fix_wall_harmonic.jpg) In all cases, {r} is the distance from the particle to the region surface, and Rc is the {cutoff} distance at which the particle and surface no longer interact. The energy of the wall potential is shifted so that the wall-particle interaction energy is 0.0 at the cutoff distance. For the {lj93} and {lj126} styles, {epsilon} and {sigma} are the usual Lennard-Jones parameters, which determine the strength and size of the particle as it interacts with the wall. Epsilon has energy units. Note that this {epsilon} and {sigma} may be different than any {epsilon} or {sigma} values defined for a pair style that computes particle-particle interactions. The {lj93} interaction is derived by integrating over a 3d half-lattice of Lennard-Jones 12/6 particles. The {lj126} interaction is effectively a harder, more repulsive wall interaction. For the {colloid} style, {epsilon} is effectively a Hamaker constant with energy units for the colloid-wall interaction, {R} is the radius of the colloid particle, {D} is the distance from the surface of the colloid particle to the wall (r-R), and {sigma} is the size of a constituent LJ particle inside the colloid particle. Note that the cutoff distance Rc in this case is the distance from the colloid particle center to the wall. The {colloid} interaction is derived by integrating over constituent LJ particles of size {sigma} within the colloid particle and a 3d half-lattice of Lennard-Jones 12/6 particles of size {sigma} in the wall. For the {wall/harmonic} style, {epsilon} is effectively the spring constant K, and has units (energy/distance^2). The input parameter {sigma} is ignored. The minimum energy position of the harmonic spring is at the {cutoff}. This is a repulsive-only spring since the interaction is truncated at the {cutoff} NOTE: For all of the styles, you must insure that r is always > 0 for all particles in the group, or LAMMPS will generate an error. This means you cannot start your simulation with particles on the region surface (r = 0) or with particles on the wrong side of the region surface (r < 0). For the {wall/lj93} and {wall/lj126} styles, the energy of the wall/particle interaction (and hence the force on the particle) blows up as r -> 0. The {wall/colloid} style is even more restrictive, since the energy blows up as D = r-R -> 0. This means the finite-size particles of radius R must be a distance larger than R from the region surface. The {harmonic} style is a softer potential and does not blow up as r -> 0, but you must use a large enough {epsilon} that particles always reamin on the correct side of the region surface (r > 0). [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 {energy} option is supported by this fix to add the energy of interaction between atoms and the wall to the system's potential energy as part of "thermodynamic output"_thermo_style.html. The "fix_modify"_fix_modify.html {respa} option is supported by this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-length vector of forces, which can be accessed by various "output commands"_Section_howto.html#howto_15. The scalar energy is the sum of energy interactions for all particles interacting with the wall represented by the region surface. The 3 vector quantities are the x,y,z components of the total force acting on the wall due to the particles. The scalar and vector values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. NOTE: If you want the atom/wall interaction energy to be included in the total potential energy of the system (the quantity being minimized), you MUST enable the "fix_modify"_fix_modify.html {energy} option for this fix. [Restrictions:] none [Related commands:] "fix wall/lj93"_fix_wall.html, "fix wall/lj126"_fix_wall.html, "fix wall/colloid"_fix_wall.html, "fix wall/gran"_fix_wall_gran.html [Default:] none diff --git a/src/version.h b/src/version.h index c6df1e417..3f90b4fc5 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "22 Sep 2016" +#define LAMMPS_VERSION "21 Sep 2016"