diff --git a/doc/Section_commands.html b/doc/Section_commands.html index 8ee34eb1aa..64a1b05bd8 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -313,9 +313,8 @@ in the command's documentation.
-

Fix commands. See the fix command for one-line -descriptions of each style or click on the style itself for a full -description: +

Fix styles. See the fix command for one-line descriptions +of each style or click on the style itself for a full description:

@@ -329,17 +328,24 @@ description:
-

Compute commands. See the compute command for one-line +

Compute styles. See the compute command for one-line descriptions of each style or click on the style itself for a full description:

addforceaveforceave/atomave/spatialave/timecomdeformdeposit
- +
attribute/atomcentro/atomcoord/atomebond/atomepair/atomke/atom
pressurerotate/dipolerotate/granstress/atomsum/atomtemp
temp/deformtemp/aspheretemp/dipoletemp/partialtemp/ramptemp/region
temp/aspheretemp/deformtemp/dipoletemp/partialtemp/ramptemp/region
variablevariable/atom
+

These are compute styles contributed by users, which can be used if +LAMMPS is built with the appropriate package. +

+
+
ackland +
+

Pair_style potentials. See the pair_style command @@ -347,17 +353,25 @@ for an overview of pair potentials. Click on the style itself for a full description:

- - - - - - - - - - - + + + + + + + + + + +
nonehybridairebobuck
buck/coul/cutbuck/coul/longcolloiddipole/cut
dpdeameam/opteam/alloy
eam/alloy/opteam/fseam/fs/optgayberne
gran/hertziangran/historygran/no_historylj/charmm/coul/charmm
lj/charmm/coul/charmm/implicitlj/charmm/coul/longlj/charmm/coul/long/optlj/class2
lj/class2/coul/cutlj/class2/coul/longlj/cutlj/cut/opt
lj/cut/coul/cutlj/cut/coul/debyelj/cut/coul/longlj/cut/coul/long/tip4p
lj/expandlj/smoothmeammorse
morse/optsoftswtable
tersoffyukawa +
nonehybridhybrid/overlayairebo
buckbuck/coul/cutbuck/coul/longcolloid
coul/cutcoul/longdipole/cutdpd
eameam/opteam/alloyeam/alloy/opt
eam/fseam/fs/optgaybernegran/hertzian
gran/historygran/no_historylj/charmm/coul/charmmlj/charmm/coul/charmm/implicit
lj/charmm/coul/longlj/charmm/coul/long/optlj/class2lj/class2/coul/cut
lj/class2/coul/longlj/cutlj/cut/optlj/cut/coul/cut
lj/cut/coul/debyelj/cut/coul/longlj/cut/coul/long/tip4plj/expand
lj/smoothmeammorsemorse/opt
softswtabletersoff
yukawa +
+ +

These are pair styles contributed by users, which can be used if +LAMMPS is built with the appropriate package. +

+
+
buck/coullj/coul

@@ -417,4 +431,11 @@ description: ewaldpppmpppm/tip4p +

These are Kspace solvers contributed by users, which can be used if +LAMMPS is built with the appropriate package. +

+
+
ewald/n +
+ diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 2a6f706ea3..2e75cbbf2e 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -372,9 +372,8 @@ in the command's documentation. :line -Fix commands. See the "fix"_fix.html command for one-line -descriptions of each style or click on the style itself for a full -description: +Fix styles. See the "fix"_fix.html command for one-line descriptions +of each style or click on the style itself for a full description: "addforce"_fix_addforce.html, "aveforce"_fix_aveforce.html, @@ -433,7 +432,7 @@ description: :line -Compute commands. See the "compute"_compute.html command for one-line +Compute styles. See the "compute"_compute.html command for one-line descriptions of each style or click on the style itself for a full description: @@ -449,8 +448,8 @@ description: "stress/atom"_compute_stress_atom.html, "sum/atom"_compute_sum_atom.html, "temp"_compute_temp.html, -"temp/deform"_compute_temp_deform.html, "temp/asphere"_compute_temp_asphere.html, +"temp/deform"_compute_temp_deform.html, "temp/dipole"_compute_temp_dipole.html, "temp/partial"_compute_temp_partial.html, "temp/ramp"_compute_temp_ramp.html, @@ -458,6 +457,11 @@ description: "variable"_compute_variable.html, "variable/atom"_compute_variable_atom.html :tb(c=6,ea=c) +These are compute styles contributed by users, which can be used if +"LAMMPS is built with the appropriate package"_Section_start.html#2_3. + +"ackland"_compute_ackland.html :tb(c=6,ea=c) + :line Pair_style potentials. See the "pair_style"_pair_style.html command @@ -466,11 +470,14 @@ full description: "none"_pair_none.html, "hybrid"_pair_hybrid.html, +"hybrid/overlay"_pair_hybrid.html, "airebo"_pair_airebo.html, "buck"_pair_buck.html, "buck/coul/cut"_pair_buck.html, "buck/coul/long"_pair_buck.html, "colloid"_pair_colloid.html, +"coul/cut"_pair_coul.html, +"coul/long"_pair_long.html, "dipole/cut"_pair_dipole/cut.html, "dpd"_pair_dpd.html, "eam"_pair_eam.html, @@ -507,6 +514,12 @@ full description: "tersoff"_pair_tersoff.html, "yukawa"_pair_yukawa.html :tb(c=4,ea=c) +These are pair styles contributed by users, which can be used if +"LAMMPS is built with the appropriate package"_Section_start.html#2_3. + +"buck/coul"_pair_buck_coul.html, +"lj/coul"_pair_lj_coul.html :tb(c=4,ea=c) + :line Bond_style potentials. See the "bond_style"_bond_style.html command @@ -575,3 +588,8 @@ description: "ewald"_kspace_style.html, "pppm"_kspace_style.html, "pppm/tip4p"_kspace_style.html :tb(c=4,ea=c,w=100) + +These are Kspace solvers contributed by users, which can be used if +"LAMMPS is built with the appropriate package"_Section_start.html#2_3. + +"ewald/n"_ewald_n.html :tb(c=4,ea=c,w=100) diff --git a/doc/Section_start.html b/doc/Section_start.html index 19c62b0a4b..ef237a45bd 100644 --- a/doc/Section_start.html +++ b/doc/Section_start.html @@ -264,14 +264,18 @@ build it. In the src/MAKE/Windows directory are some notes from users on how they built LAMMPS under Windows, so you can look at their instructions for tips. Good luck - we can't help you on this one.

+
+

2.3 Making LAMMPS with optional packages

The source code for LAMMPS is structured as a large set of core files -that are always used plus additional packages, which are groups of -files that enable a specific set of features. For example, force -fields for molecular systems or granular systems are in packages. You -can see the list of packages by typing "make package". The current -list of packages is as follows: +that are always used plus additional optional packages, which are +groups of files that enable a specific set of features. For example, +force fields for molecular systems or granular systems are in +packages. You can see the list of both standard and user-contributed +packages by typing "make package". +

+

The current list of standard packages is as follows:

@@ -289,27 +293,86 @@ list of packages is as follows:
asphere aspherical particles and force fields
xtc dump atom snapshots in XTC format
+

There are also user-contributed packages which may be as simple as a +single additional file (class) or many files grouped together which +add a specific functionality to the code. The difference between a +standard package versus a user package is as follows. +

+

Standard packages are supported by the LAMMPS developers and are +written in a syntax and style consistent with the rest of LAMMPS. +This means we will answer questions about them, debug and fix them if +necessary, and keep them compatible with future changes to LAMMPS. +

+

User packages don't necessarily meet these requirements. If you have +problems using a feature provided in a user package, you will likely +need to contact the contributor directly to get help. +

+

We encourage users to submit new features to the +developers that they add to +LAMMPS, especially if you think they will be useful to other users. +If they are broadly useful and meet the requirements listed above, we +may add them as core files to LAMMPS or as part of a standard package. +Else we will add them as a user package. +

+

With user packages, all we are really providing (aside from the fame +and fortune that accompanies having your name in the source code and +on the Authors page of the +LAMMPS WWW site), is a means for you to distribute your work to +the LAMMPS user community and a mechanism for others to easily try out +your new feature. This may help you find bugs or make contact with +new collaborators. +

+

This section of the documentation describes how +to add new features of various kinds to LAMMPS. Packages are simply +collections of these kinds of new class files which are typically +invoked as a new "style" within a LAMMPS input script. If designed +correctly, these additions do not require changes to the main core of +LAMMPS; they are simply add-on files. If you think your new feature +requires something else in LAMMPS to change, you'll need to +communicate with the +developers. +

+

Examples of user-contributed packages are in src sub-directories that +start with USER. We impose only a few minor restrictions on the +source files you submit. They need to have the LAMMPS copyright, GPL +notice, and your name at the top. They need to create a class that is +inside the LAMMPS namespace. You need to provide the Install.csh and +style*.h files that enable the package to be installed/un-installed. +See any of the other LAMMPS source or package files for examples. +Following this pattern will save you and us time when you submit the +files. +

+

Finally, you also need to include a README file with your package, so +that other users can get a quick idea of what it does and know how to +contact you. You also need to include a doc file in text format for +each of the new styles you are adding, which we will convert to HTML. +See the doc directory for numerous examples of these *.txt files; you +should use one of them as a template for the feature you are adding. +

+
+

Any or all packages can be included or excluded when LAMMPS is built. -The one exception is that to use the "opt" package, you must also be -using the "molecule" and "manybody" packages. You may wish to exclude -certain packages if you will never run certain kinds of simulations. -This will keep you from having to build auxiliary libraries (see -below) and will produce a smaller executable which may run a bit -faster. +The one exception is that to use the standard "opt" package, you must +also be using the "molecule" and "manybody" packages. You may wish to +exclude certain packages if you will never run certain kinds of +simulations. This will keep you from having to build auxiliary +libraries (see below) and will produce a smaller executable which may +run a bit faster.

By default, LAMMPS includes only the "kspace", "manybody", and -"molecule" packages. As described below, some packages require LAMMPS -be linked to separately built library files, which will require -editing of your src/MAKE/Makefile.machine. +"molecule" packages. As described below, some standard packages +require LAMMPS be linked to separately built library files, which will +require editing of your src/MAKE/Makefile.machine.

Packages are included or excluded by typing "make yes-name" or "make no-name", where "name" is the name of the package. You can also type -"make yes-all" or "make no-all" to include/exclude all optional -packages. These commands work by simply moving files back and forth -between the main src directory and sub-directories with the package -name, so that the files are seen or not seen when LAMMPS is built. -After you have included or excluded a package, you must re-make -LAMMPS. +"make yes-standard", "make no-standard", "make yes-user", "make +no-user", "make yes-all" or "make no-all" to include/exclude various +sets of packages. These commands work by simply moving files back and +forth between the main src directory and sub-directories with the +package name, so that the files are seen or not seen when LAMMPS is +built. After you have included or excluded a package, you must +re-build LAMMPS.

Additional make options exist to help manage LAMMPS files that exist in both the src directory and in package sub-directories. You do not @@ -356,6 +419,8 @@ directory with the appropriate Makefile, e.g. "make -f Makefile.g++". If one of the provided Makefiles is not appropriate for your system you can edit or add one as needed.

+
+

2.4 Building LAMMPS as a library

LAMMPS can be built as a library, which can then be called from diff --git a/doc/Section_start.txt b/doc/Section_start.txt index 5a0794b4ba..010f40568e 100644 --- a/doc/Section_start.txt +++ b/doc/Section_start.txt @@ -259,14 +259,18 @@ build it. In the src/MAKE/Windows directory are some notes from users on how they built LAMMPS under Windows, so you can look at their instructions for tips. Good luck - we can't help you on this one. +:line + 2.3 Making LAMMPS with optional packages :h4,link(2_3) The source code for LAMMPS is structured as a large set of core files -that are always used plus additional packages, which are groups of -files that enable a specific set of features. For example, force -fields for molecular systems or granular systems are in packages. You -can see the list of packages by typing "make package". The current -list of packages is as follows: +that are always used plus additional optional packages, which are +groups of files that enable a specific set of features. For example, +force fields for molecular systems or granular systems are in +packages. You can see the list of both standard and user-contributed +packages by typing "make package". + +The current list of standard packages is as follows: asphere : aspherical particles and force fields class2 : class 2 force fields @@ -282,27 +286,86 @@ opt : optimized versions of a few pair potentials poems : coupled rigid body motion xtc : dump atom snapshots in XTC format :tb(s=:) +There are also user-contributed packages which may be as simple as a +single additional file (class) or many files grouped together which +add a specific functionality to the code. The difference between a +{standard} package versus a {user} package is as follows. + +Standard packages are supported by the LAMMPS developers and are +written in a syntax and style consistent with the rest of LAMMPS. +This means we will answer questions about them, debug and fix them if +necessary, and keep them compatible with future changes to LAMMPS. + +User packages don't necessarily meet these requirements. If you have +problems using a feature provided in a user package, you will likely +need to contact the contributor directly to get help. + +We encourage users to submit new features to "the +developers"_http://lammps.sandia.gov/authors.html that they add to +LAMMPS, especially if you think they will be useful to other users. +If they are broadly useful and meet the requirements listed above, we +may add them as core files to LAMMPS or as part of a standard package. +Else we will add them as a user package. + +With user packages, all we are really providing (aside from the fame +and fortune that accompanies having your name in the source code and +on the "Authors page"_http://lammps.sandia.gov/authors.html of the +"LAMMPS WWW site"_lws), is a means for you to distribute your work to +the LAMMPS user community and a mechanism for others to easily try out +your new feature. This may help you find bugs or make contact with +new collaborators. + +"This section"_Section_modify.html of the documentation describes how +to add new features of various kinds to LAMMPS. Packages are simply +collections of these kinds of new class files which are typically +invoked as a new "style" within a LAMMPS input script. If designed +correctly, these additions do not require changes to the main core of +LAMMPS; they are simply add-on files. If you think your new feature +requires something else in LAMMPS to change, you'll need to +"communicate with the +developers"_http://lammps.sandia.gov/authors.html. + +Examples of user-contributed packages are in src sub-directories that +start with USER. We impose only a few minor restrictions on the +source files you submit. They need to have the LAMMPS copyright, GPL +notice, and your name at the top. They need to create a class that is +inside the LAMMPS namespace. You need to provide the Install.csh and +style*.h files that enable the package to be installed/un-installed. +See any of the other LAMMPS source or package files for examples. +Following this pattern will save you and us time when you submit the +files. + +Finally, you also need to include a README file with your package, so +that other users can get a quick idea of what it does and know how to +contact you. You also need to include a doc file in text format for +each of the new styles you are adding, which we will convert to HTML. +See the doc directory for numerous examples of these *.txt files; you +should use one of them as a template for the feature you are adding. + +:line + Any or all packages can be included or excluded when LAMMPS is built. -The one exception is that to use the "opt" package, you must also be -using the "molecule" and "manybody" packages. You may wish to exclude -certain packages if you will never run certain kinds of simulations. -This will keep you from having to build auxiliary libraries (see -below) and will produce a smaller executable which may run a bit -faster. +The one exception is that to use the standard "opt" package, you must +also be using the "molecule" and "manybody" packages. You may wish to +exclude certain packages if you will never run certain kinds of +simulations. This will keep you from having to build auxiliary +libraries (see below) and will produce a smaller executable which may +run a bit faster. By default, LAMMPS includes only the "kspace", "manybody", and -"molecule" packages. As described below, some packages require LAMMPS -be linked to separately built library files, which will require -editing of your src/MAKE/Makefile.machine. +"molecule" packages. As described below, some standard packages +require LAMMPS be linked to separately built library files, which will +require editing of your src/MAKE/Makefile.machine. Packages are included or excluded by typing "make yes-name" or "make no-name", where "name" is the name of the package. You can also type -"make yes-all" or "make no-all" to include/exclude all optional -packages. These commands work by simply moving files back and forth -between the main src directory and sub-directories with the package -name, so that the files are seen or not seen when LAMMPS is built. -After you have included or excluded a package, you must re-make -LAMMPS. +"make yes-standard", "make no-standard", "make yes-user", "make +no-user", "make yes-all" or "make no-all" to include/exclude various +sets of packages. These commands work by simply moving files back and +forth between the main src directory and sub-directories with the +package name, so that the files are seen or not seen when LAMMPS is +built. After you have included or excluded a package, you must +re-build LAMMPS. Additional make options exist to help manage LAMMPS files that exist in both the src directory and in package sub-directories. You do not @@ -349,6 +412,8 @@ directory with the appropriate Makefile, e.g. "make -f Makefile.g++". If one of the provided Makefiles is not appropriate for your system you can edit or add one as needed. +:line + 2.4 Building LAMMPS as a library :h4,link(2_4) LAMMPS can be built as a library, which can then be called from diff --git a/doc/fix.html b/doc/fix.html index 0a9aacba19..7581c19e69 100644 --- a/doc/fix.html +++ b/doc/fix.html @@ -88,6 +88,7 @@ for individual fixes for info on which ones can be restarted.

  • fix gran/diag - compute granular diagnostics
  • fix gravity - add gravity to atoms in a granular simulation
  • fix gyration - compute radius of gyration +
  • fix heat - add/subtract momentum-conserving heat
  • fix indent - impose force due to an indenter
  • fix langevin - Langevin temperature control
  • fix lineforce - constrain atoms to move in a line diff --git a/doc/fix.txt b/doc/fix.txt index 2841bf1e51..2e96c71036 100644 --- a/doc/fix.txt +++ b/doc/fix.txt @@ -85,6 +85,7 @@ Here is an alphabetic list of fix styles available in LAMMPS: "fix gran/diag"_fix_gran_diag.html - compute granular diagnostics "fix gravity"_fix_gravity.html - add gravity to atoms in a granular simulation "fix gyration"_fix_gyration.html - compute radius of gyration +"fix heat"_fix_gyration.html - add/subtract momentum-conserving heat "fix indent"_fix_indent.html - impose force due to an indenter "fix langevin"_fix_langevin.html - Langevin temperature control "fix lineforce"_fix_lineforce.html - constrain atoms to move in a line diff --git a/doc/kspace_style.html b/doc/kspace_style.html index 6a4d518812..69f337f524 100644 --- a/doc/kspace_style.html +++ b/doc/kspace_style.html @@ -34,12 +34,12 @@ kspace_style none

    Description:

    -

    Define a K-space solver for LAMMPS to use each timestep to compute -long-range Coulombic interactions. When such a solver is used in -conjunction with an appropriate pair style, the cutoff for Coulombic -interactions is effectively infinite; each charge in the system -interacts with charges in an infinite array of periodic images of the -simulation domain. +

    Define a reciprocal (K-space) solver for LAMMPS to use each timestep +to compute long-range Coulombic interactions. When such a solver is +used in conjunction with an appropriate pair style, the cutoff for +Coulombic interactions is effectively infinite; each charge in the +system interacts with charges in an infinite array of periodic images +of the simulation domain.

    The ewald style performs a standard Ewald summation as described in any solid-state physics text. diff --git a/doc/kspace_style.txt b/doc/kspace_style.txt index e7e5e24479..8dafaf56c3 100644 --- a/doc/kspace_style.txt +++ b/doc/kspace_style.txt @@ -29,12 +29,12 @@ kspace_style none :pre [Description:] -Define a K-space solver for LAMMPS to use each timestep to compute -long-range Coulombic interactions. When such a solver is used in -conjunction with an appropriate pair style, the cutoff for Coulombic -interactions is effectively infinite; each charge in the system -interacts with charges in an infinite array of periodic images of the -simulation domain. +Define a reciprocal (K-space) solver for LAMMPS to use each timestep +to compute long-range Coulombic interactions. When such a solver is +used in conjunction with an appropriate pair style, the cutoff for +Coulombic interactions is effectively infinite; each charge in the +system interacts with charges in an infinite array of periodic images +of the simulation domain. The {ewald} style performs a standard Ewald summation as described in any solid-state physics text. diff --git a/doc/pair_coeff.html b/doc/pair_coeff.html index 73a362aed7..1db5c00c51 100644 --- a/doc/pair_coeff.html +++ b/doc/pair_coeff.html @@ -84,15 +84,25 @@ the style to display the formula it computes, arguments specified in the pair_style command, and coefficients specified by the associated pair_coeff command:

    + +