Merge branch 'master' into chem_snap
This commit is contained in:
5
.github/CODEOWNERS
vendored
5
.github/CODEOWNERS
vendored
@ -10,6 +10,7 @@ lib/molfile/* @akohlmey
|
||||
lib/qmmm/* @akohlmey
|
||||
lib/vtk/* @rbberger
|
||||
lib/kim/* @ellio167
|
||||
lib/mesont/* @iafoss
|
||||
|
||||
# whole packages
|
||||
src/COMPRESS/* @akohlmey
|
||||
@ -25,6 +26,7 @@ src/USER-COLVARS/* @giacomofiorin
|
||||
src/USER-INTEL/* @wmbrownintel
|
||||
src/USER-MANIFOLD/* @Pakketeretet2
|
||||
src/USER-MEAMC/* @martok
|
||||
src/USER-MESONT/* @iafoss
|
||||
src/USER-MOFFF/* @hheenen
|
||||
src/USER-MOLFILE/* @akohlmey
|
||||
src/USER-NETCDF/* @pastewka
|
||||
@ -111,6 +113,7 @@ src/fix_nh.* @athomps
|
||||
src/info.* @akohlmey @rbberger
|
||||
src/timer.* @akohlmey
|
||||
src/min* @sjplimp @stanmoore1
|
||||
src/utils.* @akohlmey @rbberger
|
||||
|
||||
# tools
|
||||
tools/msi2lmp/* @akohlmey
|
||||
@ -123,6 +126,8 @@ unittest/* @akohlmey @rbberger
|
||||
# cmake
|
||||
cmake/* @junghans @rbberger
|
||||
cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin
|
||||
cmake/Modules/Packages/KIM.cmake @junghans @rbberger @ellio167
|
||||
cmake/presets/*.cmake @junghans @rbberger @akohlmey
|
||||
|
||||
# python
|
||||
python/* @rbberger
|
||||
|
||||
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@ -75,7 +75,9 @@ Here is a checklist of steps you need to follow to submit a single file or user
|
||||
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
|
||||
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are files in the [reStructuredText](https://docutils.sourceforge.io/rst.html) markup language, that are then converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.rst` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. An introduction to reStructuredText can be found at [https://docutils.sourceforge.io/docs/user/rst/quickstart.html](https://docutils.sourceforge.io/docs/user/rst/quickstart.html). The text files can include mathematical expressions and symbol in ".. math::" sections or ":math:" expressions or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.rst for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv. Please run at least `make html`, `make pdf` and `make spelling` and carefully inspect and proofread the resulting HTML format doc page as well as the output produced to the screen. Make sure that all spelling errors are fixed or the necessary false positives are added to the `doc/utils/sphinx-config/false_positives.txt` file. For new styles, those usually also need to be added to lists on the respective overview pages. This can be checked for also with `make style_check`.
|
||||
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/USER for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
|
||||
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the *.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
|
||||
* For new utility functions or class (i.e. anything that does not depend on a LAMMPS object), new unit tests should be added to the unittest tree.
|
||||
* When adding a new LAMMPS style, a .yaml file with a test configuration and reference data should be added for the styles where a suitable tester program already exists (e.g. pair styles, bond styles, etc.).
|
||||
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the <name>.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
|
||||
|
||||
Finally, as a general rule-of-thumb, the more clear and self-explanatory you make your documentation and README files, and the easier you make it for people to get started, e.g. by providing example scripts, the more likely it is that users will try out your new feature.
|
||||
|
||||
|
||||
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -34,6 +34,7 @@ By submitting this pull request, I agree, that my contribution will be included
|
||||
- [ ] The added/updated documentation is integrated and tested with the documentation build system
|
||||
- [ ] The feature has been verified to work with the conventional build system
|
||||
- [ ] The feature has been verified to work with the CMake based build system
|
||||
- [ ] Suitable tests have been added to the unittest tree.
|
||||
- [ ] A package specific README file has been included or updated
|
||||
- [ ] One or more example input decks are included
|
||||
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
These are input scripts used to run versions of several of the
|
||||
benchmarks in the top-level bench directory using the GPU accelerator
|
||||
package. The results of running these scripts on two different machines
|
||||
(a desktop with 2 Tesla GPUs and the ORNL Titan supercomputer) are shown
|
||||
on the "GPU (Fermi)" section of the Benchmark page of the LAMMPS WWW
|
||||
site: lammps.sandia.gov/bench.
|
||||
|
||||
Examples are shown below of how to run these scripts. This assumes
|
||||
you have built 3 executables with the GPU package
|
||||
installed, e.g.
|
||||
|
||||
lmp_linux_single
|
||||
lmp_linux_mixed
|
||||
lmp_linux_double
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
To run on just CPUs (without using the GPU styles),
|
||||
do something like the following:
|
||||
|
||||
mpirun -np 1 lmp_linux_double -v x 8 -v y 8 -v z 8 -v t 100 < in.lj
|
||||
mpirun -np 12 lmp_linux_double -v x 16 -v y 16 -v z 16 -v t 100 < in.eam
|
||||
|
||||
The "xyz" settings determine the problem size. The "t" setting
|
||||
determines the number of timesteps.
|
||||
|
||||
These mpirun commands run on a single node. To run on multiple
|
||||
nodes, scale up the "-np" setting.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
To run with the GPU package, do something like the following:
|
||||
|
||||
mpirun -np 12 lmp_linux_single -sf gpu -v x 32 -v y 32 -v z 64 -v t 100 < in.lj
|
||||
mpirun -np 8 lmp_linux_mixed -sf gpu -pk gpu 2 -v x 32 -v y 32 -v z 64 -v t 100 < in.eam
|
||||
|
||||
The "xyz" settings determine the problem size. The "t" setting
|
||||
determines the number of timesteps. The "np" setting determines how
|
||||
many MPI tasks (per node) the problem will run on. The numeric
|
||||
argument to the "-pk" setting is the number of GPUs (per node); 1 GPU
|
||||
is the default. Note that you can use more MPI tasks than GPUs (per
|
||||
node) with the GPU package.
|
||||
|
||||
These mpirun commands run on a single node. To run on multiple nodes,
|
||||
scale up the "-np" setting, and control the number of MPI tasks per
|
||||
node via a "-ppn" setting.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
If the script has "titan" in its name, it was run on the Titan
|
||||
supercomputer at ORNL.
|
||||
@ -1,24 +0,0 @@
|
||||
# bulk Cu lattice
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run $t
|
||||
@ -1,37 +0,0 @@
|
||||
# bulk Cu lattice
|
||||
|
||||
newton off
|
||||
package gpu force/neigh 0 0 1
|
||||
processors * * * grid numa
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
pair_style eam/gpu
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 15
|
||||
run 100
|
||||
@ -1,22 +0,0 @@
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
region box block 0 $x 0 $y 0 $z
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff 1 1 1.0 1.0 2.5
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run $t
|
||||
@ -1,35 +0,0 @@
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
newton off
|
||||
package gpu force/neigh 0 0 1
|
||||
processors * * * grid numa
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
pair_style lj/cut/gpu 2.5
|
||||
pair_coeff 1 1 1.0 1.0 2.5
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify delay 0 every 20 check no
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 15
|
||||
run 100
|
||||
@ -1,30 +0,0 @@
|
||||
# Rhodopsin model
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
replicate $x $y $z
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run $t
|
||||
@ -1,39 +0,0 @@
|
||||
# Rhodopsin model
|
||||
|
||||
newton off
|
||||
package gpu force/neigh 0 0 1
|
||||
processors * * * grid numa
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long/gpu 8.0 ${cutoff}
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm/gpu 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
replicate $x $y $z
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
# thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 15
|
||||
run 100
|
||||
@ -1,42 +0,0 @@
|
||||
# Rhodopsin model
|
||||
|
||||
newton off
|
||||
package gpu force/neigh 0 0 1
|
||||
partition yes 1 processors * * * grid twolevel ${grid} * * * &
|
||||
part 1 2 multiple
|
||||
partition yes 2 processors * * * part 1 2 multiple
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long/gpu 8.0 ${cutoff}
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm/gpu 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
replicate $x $y $z
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
# thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run_style verlet/split
|
||||
run 15
|
||||
run 100
|
||||
@ -1,2 +0,0 @@
|
||||
rc = 4.0
|
||||
delr = 0.1
|
||||
1
bench/POTENTIALS/Ni.meam
Symbolic link
1
bench/POTENTIALS/Ni.meam
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Ni.meam
|
||||
@ -1,17 +0,0 @@
|
||||
# Stillinger-Weber parameters for various elements and mixtures
|
||||
# multiple entries can be added to this file, LAMMPS reads the ones it needs
|
||||
# these entries are in LAMMPS "metal" units:
|
||||
# epsilon = eV; sigma = Angstroms
|
||||
# other quantities are unitless
|
||||
|
||||
# format of a single entry (one or more lines):
|
||||
# element 1, element 2, element 3,
|
||||
# epsilon, sigma, a, lambda, gamma, costheta0, A, B, p, q, tol
|
||||
|
||||
# Here are the original parameters in metal units, for Silicon from:
|
||||
#
|
||||
# Stillinger and Weber, Phys. Rev. B, v. 31, p. 5262, (1985)
|
||||
#
|
||||
|
||||
Si Si Si 2.1683 2.0951 1.80 21.0 1.20 -0.333333333333
|
||||
7.049556277 0.6022245584 4.0 0.0 0.0
|
||||
1
bench/POTENTIALS/Si.sw
Symbolic link
1
bench/POTENTIALS/Si.sw
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Si.sw
|
||||
@ -1,16 +0,0 @@
|
||||
# Tersoff parameters for various elements and mixtures
|
||||
# multiple entries can be added to this file, LAMMPS reads the ones it needs
|
||||
# these entries are in LAMMPS "metal" units:
|
||||
# A,B = eV; lambda1,lambda2,lambda3 = 1/Angstroms; R,D = Angstroms
|
||||
# other quantities are unitless
|
||||
|
||||
# This is the Si parameterization from a particular Tersoff paper:
|
||||
# J. Tersoff, PRB, 37, 6991 (1988)
|
||||
# See the SiCGe.tersoff file for different Si variants.
|
||||
|
||||
# format of a single entry (one or more lines):
|
||||
# element 1, element 2, element 3,
|
||||
# m, gamma, lambda3, c, d, costheta0, n, beta, lambda2, B, R, D, lambda1, A
|
||||
|
||||
Si Si Si 3.0 1.0 1.3258 4.8381 2.0417 0.0000 22.956
|
||||
0.33675 1.3258 95.373 3.0 0.2 3.2394 3264.7
|
||||
1
bench/POTENTIALS/Si.tersoff
Symbolic link
1
bench/POTENTIALS/Si.tersoff
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/Si.tersoff
|
||||
@ -1,24 +0,0 @@
|
||||
# bulk Ni in MEAM
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.52
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
pair_style meam
|
||||
pair_coeff * * library.meam Ni4 Ni.meam Ni4
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
@ -1,22 +0,0 @@
|
||||
# ReaxFF benchmark: simulation of PETN crystal, replicated unit cell
|
||||
|
||||
units real
|
||||
atom_style charge
|
||||
|
||||
read_data data.reax
|
||||
|
||||
#replicate 7 8 10
|
||||
replicate 7 8 5
|
||||
|
||||
velocity all create 300.0 9999
|
||||
|
||||
pair_style reax
|
||||
pair_coeff * * ffield.reax 1 2 3 4
|
||||
|
||||
timestep 0.1
|
||||
fix 2 all nve
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp ke pe pxx pyy pzz etotal
|
||||
|
||||
run 100
|
||||
@ -1,162 +0,0 @@
|
||||
# meam data from vax files fcc,bcc,dia 11/4/92
|
||||
# elt lat z ielement atwt
|
||||
# alpha b0 b1 b2 b3 alat esub asub
|
||||
# t0 t1 t2 t3 rozero ibar
|
||||
|
||||
'Sn5' 'dia' 4. 50 118.
|
||||
5.09 5.00 16.0 04.0 5.0 6.483 3.14 1.00
|
||||
1.0 2.00 5.756 -0.30 1. 0
|
||||
'Sn' 'dia' 4. 50 118.
|
||||
5.09 5.42 8.0 5.0 6.0 6.483 3.14 1.12
|
||||
1.0 3.0 5.707 +0.30 1. 0
|
||||
'Cu' 'fcc' 12. 29 63.54
|
||||
5.10570729 3.634 2.20 6 2.20 3.62 3.54 1.07
|
||||
1.0 3.13803254 2.49438711 2.95269237 1. 0
|
||||
'Ag' 'fcc' 12. 47 107.870
|
||||
5.89222008 4.456 2.20 6 2.20 4.08 2.85 1.06
|
||||
1.0 5.54097609 2.45015783 1.28843988 1. 0
|
||||
'Au' 'fcc' 12. 79 196.967
|
||||
6.34090112 5.449 2.20 6 2.20 4.07 3.93 1.04
|
||||
1.0 1.58956328 1.50776392 2.60609758 1. 0
|
||||
'Ni1' 'fcc' 12. 28 58.71
|
||||
4.99 2.45 2.20 6 2.20 3.52 4.45 1.10
|
||||
1.0 3.57 1.60 3.70 1.0 0
|
||||
'Ni2' 'fcc' 12. 28 58.71
|
||||
4.99 2.45 2.20 6 2.20 3.52 4.45 1.10
|
||||
1.0 3.57 1.60 3.70 1.0 3
|
||||
'Ni3' 'fcc' 12. 28 58.71
|
||||
4.99 2.45 1.50 6 1.50 3.52 4.45 1.10
|
||||
1.0 3.57 1.60 3.70 1.0 3
|
||||
'Ni4' 'fcc' 12. 28 58.71
|
||||
4.99 2.45 1.50 6 1.50 3.52 4.45 1.10
|
||||
1.0 3.57 1.60 3.70 1.0 0
|
||||
'Ni' 'fcc' 12. 28 58.71
|
||||
4.99 2.64 1.50 4.50 1.50 3.52 4.45 1.10
|
||||
1.0 1.692 4.987 3.683 1.0 1
|
||||
'Nix' 'fcc' 12. 28 58.71
|
||||
4.99 2.64 1.50 4.50 1.50 3.52 4.45 1.10
|
||||
1.0 0.00 0.000 3.683 1.0 1
|
||||
'Ni' 'fcc' 12. 28 58.71
|
||||
4.99 3.25 0.80 4 1.50 3.52 4.45 1.07
|
||||
1.0 -4.052 13.14 3.786 1.0 1
|
||||
'Pd' 'fcc' 12. 46 106.4
|
||||
6.43230473 4.975 2.20 6 2.20 3.89 3.91 1.01
|
||||
1.0 2.33573516 1.38343023 4.47989049 1. 0
|
||||
'Pt' 'fcc' 12. 78 195.09
|
||||
6.44221724 4.673 2.20 6 2.20 3.92 5.77 1.04
|
||||
1.0 2.73335406 -1.3759593 3.29322278 1. 0
|
||||
'Al' 'fcc' 12. 13 26.9815
|
||||
4.61 2.21 2.20 6.0 2.20 4.05 3.58 1.07
|
||||
1.0 -1.78 -2.21 8.01 0.6 0
|
||||
'Al' 'fcc' 12. 13 26.9815
|
||||
4.69 1.56 4.00 5.5 0.60 4.05 3.36 1.09
|
||||
1.0 -0.251 -3.450 8.298 0.6 1
|
||||
'Al' 'fcc' 12. 13 26.9815
|
||||
4.69 1.58 1.00 6.0 0.60 4.05 3.36 1.09
|
||||
1.0 -0.808 -2.614 8.298 0.6 1
|
||||
'Pb' 'fcc' 12. 82 207.19
|
||||
6.0564428 5.306 2.20 6 2.20 4.95 2.04 1.01
|
||||
1.0 2.74022352 3.06323991 1.2 1. 0
|
||||
'Rh' 'fcc' 12. 45 102.905
|
||||
6.0045385 1.131 1.00 2 1.00 3.8 5.75 1.05
|
||||
1.0 2.9900 4.60231784 4.8 1. 0
|
||||
'Ir' 'fcc' 12. 77 192.2
|
||||
6.52315787 1.13 1.00 2 1.00 3.84 6.93 1.05
|
||||
1.0 1.50000 8.09942666 4.8 1. 0
|
||||
'Li' 'bcc' 8. 3 6.939
|
||||
2.97244804 1.425 1.00 1.00169907 1.00 3.509 1.65 0.87
|
||||
1.0 0.26395017 0.44431129 -0.2 1. 0
|
||||
'Na' 'bcc' 8. 11 22.9898
|
||||
3.64280541 2.313 1.00 1.00173951 1.00 4.291 1.13 0.9
|
||||
1.0 3.55398839 0.68807569 -0.2 1. 0
|
||||
'K' 'bcc' 8. 19 39.102
|
||||
3.90128376 2.687 1.00 1.00186667 1.00 5.344 0.94 0.92
|
||||
1.0 5.09756981 0.69413264 -0.2 1. 0
|
||||
'V' 'bcc' 8. 23 50.942
|
||||
4.83265262 4.113 1.00 1.00095022 1.00 3.04 5.3 1
|
||||
1.0 4.20161301 4.09946561 -1 1. 0
|
||||
'Nb' 'bcc' 8. 41 92.906
|
||||
4.79306197 4.374 1.00 1.00101441 1.00 3.301 7.47 1
|
||||
1.0 3.75762849 3.82514598 -1 1. 0
|
||||
'Ta' 'bcc' 8. 73 180.948
|
||||
4.89528669 3.709 1.00 1.00099783 1.00 3.303 8.09 0.99
|
||||
1.0 6.08617812 3.35255804 -2.9 1. 0
|
||||
'Cr' 'bcc' 8. 24 51.996
|
||||
5.12169218 3.224 1.00 1.00048646 1.00 2.885 4.1 0.94
|
||||
1.0 -0.207535 12.2600006 -1.9 1. 0
|
||||
'Mo' 'bcc' 8. 42 95.94
|
||||
5.84872871 4.481 1.00 1.00065204 1.00 3.15 6.81 0.99
|
||||
1.0 3.47727181 9.48582009 -2.9 1. 0
|
||||
'W' 'bcc' 8. 74 183.85
|
||||
5.62777409 3.978 1.00 1.00065894 1.00 3.165 8.66 0.98
|
||||
1.0 3.16353338 8.24586928 -2.7 1. 0
|
||||
'WL' 'bcc' 8 74 183.85
|
||||
5.6831 6.54 1 1 1 3.1639 8.66 0.4
|
||||
1 -0.6 0.3 -8.7 1 3
|
||||
'Fe' 'bcc' 8. 26 55.847
|
||||
5.07292627 2.935 1.00 1.00080073 1.00 2.866 4.29 0.89
|
||||
1.0 5.13579244 4.12042448 -2.7 1. 0
|
||||
'Si' 'dia' 4. 14 28.086
|
||||
4.87 4.8 4.8 4.8 4.8 5.431 4.63 1.
|
||||
1.0 3.30 5.105 -0.80 1. 1
|
||||
'Si97' 'dia' 4. 14 28.086
|
||||
4.87 4.4 5.5 5.5 5.5 5.431 4.63 1.
|
||||
1.0 3.13 4.47 -1.80 2.05 0
|
||||
'Si92' 'dia' 4. 14 28.086
|
||||
4.87 4.4 5.5 5.5 5.5 5.431 4.63 1.
|
||||
1.0 3.13 4.47 -1.80 2.35 0
|
||||
'Six' 'dia' 4 14 28.086
|
||||
4.87 4.4 5.5 5.5 5.5 5.431 4.63 1.0
|
||||
1.0 2.05 4.47 -1.8 2.05 0
|
||||
'Sixb' 'dia' 4 14 28.086
|
||||
4.87 4.4 5.5 5.5 5.5 5.431 4.63 1.0
|
||||
1.0 2.05 4.47 -1.8 2.5 0
|
||||
'Mg' 'hcp' 12. 12 24.305
|
||||
5.45 2.70 0.0 0.35 3.0 3.20 1.55 1.11
|
||||
1.0 8.00 04.1 -02.0 1.0 0
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 4.10 4.200 5.00 3.00 3.567 7.37 1.000
|
||||
1.0 5.0 9.34 -1.00 2.25 1
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 5.20 3.87 4.00 4.50 3.567 7.37 1.278
|
||||
1.0 15. 2.09 -6.00 2.5 1
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 4.50 4.00 3.50 4.80 3.567 7.37 1.00
|
||||
1.0 10.5 1.54 -8.75 3.2 1
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 3.30 2.80 1.50 3.20 3.567 7.37 1.00
|
||||
1.0 10.3 1.54 -8.80 2.5 1
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 4.60 3.45 4.00 4.20 3.567 7.37 1.061
|
||||
1.0 15.0 1.74 -8.00 2.5 1
|
||||
'C' 'dia' 4. 6 12.0111
|
||||
4.38 4.50 4.00 3.50 4.80 3.567 7.37 1.00
|
||||
1.0 10.5 1.54 -8.75 3.2 1
|
||||
'h' 'dim' 1. 1 1.0079
|
||||
2.96 2.70 3.5 3.4 3.4 0.74 2.235 2.27
|
||||
1.0 0.19 0.00 0.00 20.00 0
|
||||
'h' 'dim' 1. 1 1.0079
|
||||
2.96 2.00 4.0 4.0 0.0 0.74 2.235 1.00
|
||||
1.0 -0.60 -0.80 -0.0 01.0 1
|
||||
'H' 'dim' 1. 1 1.0079
|
||||
2.96 2.96 3.0 3.0 3.0 0.74 2.235 2.50
|
||||
1.0 0.20 -0.10 0.0 0.5 0
|
||||
'H' 'dim' 1. 1 1.0079
|
||||
2.96 2.0 3.0 4.0 0.0 0.74 2.225 1.00
|
||||
1.0 -0.5 -1.00 0.0 0.15 1
|
||||
'H' 'dim' 1. 1 1.0079
|
||||
2.96 2.00 2.0 2.0 2.0 0.74 2.235 1.00
|
||||
1.0 -0.60 -0.80 -0.0 01.0 2
|
||||
'Hni' 'dim' 1. 1 1.0079
|
||||
2.96 2.96 3.0 3.0 3.0 0.74 2.235 2.50
|
||||
1.0 0.2 -0.1 0.0 0.5 0
|
||||
'Hni' 'dim' 1. 1 1.0079
|
||||
2.96 2.96 3.0 2.0 3.0 0.74 2.235 36.4
|
||||
1.0 0.2 6.0 0.0 22.8 0
|
||||
'Vac' 'fcc' 12. 1 1.
|
||||
0 0 0.0 0 0.0 1E+08 0 1
|
||||
0 0 0 0 1. 0
|
||||
'zz' 'zzz' 99. 1 1.
|
||||
0 0 0.0 0 0.0 0. 0. 0.
|
||||
0 0 0 0 1. 0
|
||||
|
||||
1
bench/POTENTIALS/library.meam
Symbolic link
1
bench/POTENTIALS/library.meam
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/library.meam
|
||||
@ -1,84 +0,0 @@
|
||||
LAMMPS (16 Mar 2018)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# bulk Ni in MEAM
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.52
|
||||
Lattice spacing in x,y,z = 3.52 3.52 3.52
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (70.4 70.4 70.4)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
Time spent = 0.00186539 secs
|
||||
|
||||
pair_style meam
|
||||
WARNING: The pair_style meam command is unsupported. Please use pair_style meam/c instead (../pair_meam.cpp:51)
|
||||
pair_coeff * * library.meam Ni4 Ni.meam Ni4
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 5 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 5
|
||||
ghost atom cutoff = 5
|
||||
binsize = 2.5, bins = 29 29 29
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair meam, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(2) pair meam, perpetual, half/full from (1)
|
||||
attributes: half, newton on
|
||||
pair build: halffull/newton
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 55.91 | 55.91 | 55.91 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1600 -142400 0 -135782.09 20259.18
|
||||
50 885.10702 -139411.51 0 -135750.54 32425.433
|
||||
100 895.5097 -139454.3 0 -135750.3 31804.187
|
||||
Loop time of 30.6278 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Performance: 1.410 ns/day, 17.015 hours/ns, 3.265 timesteps/s
|
||||
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 30.088 | 30.088 | 30.088 | 0.0 | 98.24
|
||||
Neigh | 0.48914 | 0.48914 | 0.48914 | 0.0 | 1.60
|
||||
Comm | 0.015916 | 0.015916 | 0.015916 | 0.0 | 0.05
|
||||
Output | 0.00022554 | 0.00022554 | 0.00022554 | 0.0 | 0.00
|
||||
Modify | 0.025481 | 0.025481 | 0.025481 | 0.0 | 0.08
|
||||
Other | | 0.009055 | | | 0.03
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 13576 ave 13576 max 13576 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 780360 ave 780360 max 780360 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 1.56072e+06 ave 1.56072e+06 max 1.56072e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1560720
|
||||
Ave neighs/atom = 48.7725
|
||||
Neighbor list builds = 8
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:30
|
||||
@ -1,84 +0,0 @@
|
||||
LAMMPS (16 Mar 2018)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# bulk Ni in MEAM
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.52
|
||||
Lattice spacing in x,y,z = 3.52 3.52 3.52
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (70.4 70.4 70.4)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
Time spent = 0.000587463 secs
|
||||
|
||||
pair_style meam
|
||||
WARNING: The pair_style meam command is unsupported. Please use pair_style meam/c instead (../pair_meam.cpp:51)
|
||||
pair_coeff * * library.meam Ni4 Ni.meam Ni4
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 5 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 5
|
||||
ghost atom cutoff = 5
|
||||
binsize = 2.5, bins = 29 29 29
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair meam, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
(2) pair meam, perpetual, half/full from (1)
|
||||
attributes: half, newton on
|
||||
pair build: halffull/newton
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 17.41 | 17.41 | 17.41 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1600 -142400 0 -135782.09 20259.18
|
||||
50 885.10702 -139411.51 0 -135750.54 32425.433
|
||||
100 895.5097 -139454.3 0 -135750.3 31804.187
|
||||
Loop time of 8.21941 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Performance: 5.256 ns/day, 4.566 hours/ns, 12.166 timesteps/s
|
||||
99.2% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 8.0277 | 8.0384 | 8.0504 | 0.3 | 97.80
|
||||
Neigh | 0.12555 | 0.12645 | 0.12713 | 0.2 | 1.54
|
||||
Comm | 0.024279 | 0.036776 | 0.048389 | 4.5 | 0.45
|
||||
Output | 9.4414e-05 | 0.00011903 | 0.00018597 | 0.0 | 0.00
|
||||
Modify | 0.01252 | 0.012608 | 0.012795 | 0.1 | 0.15
|
||||
Other | | 0.005028 | | | 0.06
|
||||
|
||||
Nlocal: 8000 ave 8045 max 7947 min
|
||||
Histogram: 1 0 0 1 0 0 0 1 0 1
|
||||
Nghost: 6066.75 ave 6120 max 6021 min
|
||||
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||
Neighs: 195090 ave 196403 max 193697 min
|
||||
Histogram: 1 0 0 1 0 0 0 1 0 1
|
||||
FullNghs: 390180 ave 392616 max 387490 min
|
||||
Histogram: 1 0 0 1 0 0 0 1 0 1
|
||||
|
||||
Total # of neighbors = 1560720
|
||||
Ave neighs/atom = 48.7725
|
||||
Neighbor list builds = 8
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:08
|
||||
@ -1,86 +0,0 @@
|
||||
LAMMPS (16 Mar 2018)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# ReaxFF benchmark: simulation of PETN crystal, replicated unit cell
|
||||
|
||||
units real
|
||||
atom_style charge
|
||||
|
||||
read_data data.reax
|
||||
orthogonal box = (0 0 0) to (9.49107 9.49107 6.99123)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
58 atoms
|
||||
|
||||
#replicate 7 8 10
|
||||
replicate 7 8 5
|
||||
orthogonal box = (0 0 0) to (66.4375 75.9285 34.9562)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
16240 atoms
|
||||
Time spent = 0.000834942 secs
|
||||
|
||||
velocity all create 300.0 9999
|
||||
|
||||
pair_style reax
|
||||
WARNING: The pair_style reax command is unsupported. Please switch to pair_style reax/c instead (../pair_reax.cpp:49)
|
||||
pair_coeff * * ffield.reax 1 2 3 4
|
||||
|
||||
timestep 0.1
|
||||
fix 2 all nve
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp ke pe pxx pyy pzz etotal
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 12
|
||||
ghost atom cutoff = 12
|
||||
binsize = 6, bins = 12 13 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair reax, perpetual
|
||||
attributes: half, newton off
|
||||
pair build: half/bin/newtoff
|
||||
stencil: half/bin/3d/newtoff
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 115.8 | 115.8 | 115.8 Mbytes
|
||||
Step Temp KinEng PotEng Pxx Pyy Pzz TotEng
|
||||
0 300 14521.612 -1616144.2 22296.712 -29858.677 5721.0921 -1601622.5
|
||||
10 298.98728 14472.591 -1616093.9 21955.847 -24067.096 7389.148 -1601621.3
|
||||
20 294.76158 14268.045 -1615890.1 19179.258 -10513.494 10789.925 -1601622
|
||||
30 288.56967 13968.323 -1615591.2 13854.377 5833.02 13949.731 -1601622.9
|
||||
40 282.06725 13653.571 -1615278.2 6259.9845 19406.33 14947.939 -1601624.6
|
||||
50 274.84112 13303.787 -1614931.9 -2009.6832 26964.336 13346.855 -1601628.2
|
||||
60 266.20153 12885.585 -1614519.7 -8441.1641 28485.532 10195.429 -1601634.1
|
||||
70 259.17085 12545.262 -1614184.2 -11426.993 24941.516 6572.2953 -1601638.9
|
||||
80 259.73004 12572.33 -1614216.7 -10867.598 16928.461 3033.9021 -1601644.3
|
||||
90 269.2352 13032.431 -1614679 -7962.3129 4931.5317 -280.22164 -1601646.6
|
||||
100 280.67181 13586.024 -1615234.3 -3606.1519 -8769.8482 -2527.5887 -1601648.3
|
||||
Loop time of 358.104 on 1 procs for 100 steps with 16240 atoms
|
||||
|
||||
Performance: 0.002 ns/day, 9947.338 hours/ns, 0.279 timesteps/s
|
||||
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 358.07 | 358.07 | 358.07 | 0.0 | 99.99
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.01623 | 0.01623 | 0.01623 | 0.0 | 0.00
|
||||
Output | 0.0013328 | 0.0013328 | 0.0013328 | 0.0 | 0.00
|
||||
Modify | 0.012679 | 0.012679 | 0.012679 | 0.0 | 0.00
|
||||
Other | | 0.006895 | | | 0.00
|
||||
|
||||
Nlocal: 16240 ave 16240 max 16240 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 32428 ave 32428 max 32428 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 6.69975e+06 ave 6.69975e+06 max 6.69975e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 6699752
|
||||
Ave neighs/atom = 412.546
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:06:02
|
||||
@ -1,86 +0,0 @@
|
||||
LAMMPS (16 Mar 2018)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# ReaxFF benchmark: simulation of PETN crystal, replicated unit cell
|
||||
|
||||
units real
|
||||
atom_style charge
|
||||
|
||||
read_data data.reax
|
||||
orthogonal box = (0 0 0) to (9.49107 9.49107 6.99123)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
58 atoms
|
||||
|
||||
#replicate 7 8 10
|
||||
replicate 7 8 5
|
||||
orthogonal box = (0 0 0) to (66.4375 75.9285 34.9562)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
16240 atoms
|
||||
Time spent = 0.000491619 secs
|
||||
|
||||
velocity all create 300.0 9999
|
||||
|
||||
pair_style reax
|
||||
WARNING: The pair_style reax command is unsupported. Please switch to pair_style reax/c instead (../pair_reax.cpp:49)
|
||||
pair_coeff * * ffield.reax 1 2 3 4
|
||||
|
||||
timestep 0.1
|
||||
fix 2 all nve
|
||||
|
||||
thermo 10
|
||||
thermo_style custom step temp ke pe pxx pyy pzz etotal
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 12
|
||||
ghost atom cutoff = 12
|
||||
binsize = 6, bins = 12 13 6
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair reax, perpetual
|
||||
attributes: half, newton off
|
||||
pair build: half/bin/newtoff
|
||||
stencil: half/bin/3d/newtoff
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 35.58 | 35.68 | 35.77 Mbytes
|
||||
Step Temp KinEng PotEng Pxx Pyy Pzz TotEng
|
||||
0 300 14521.612 -1616144.1 22296.712 -29858.677 5721.0922 -1601622.5
|
||||
10 298.98728 14472.591 -1616093.8 21955.847 -24067.094 7389.149 -1601621.3
|
||||
20 294.76158 14268.044 -1615890 19179.258 -10513.494 10789.925 -1601622
|
||||
30 288.56967 13968.323 -1615591.2 13854.38 5833.0219 13949.731 -1601622.9
|
||||
40 282.06725 13653.571 -1615278.2 6259.981 19406.327 14947.938 -1601624.7
|
||||
50 274.84112 13303.787 -1614931.9 -2009.6844 26964.334 13346.855 -1601628.1
|
||||
60 266.20153 12885.585 -1614519.8 -8441.1628 28485.533 10195.428 -1601634.2
|
||||
70 259.17085 12545.262 -1614184.2 -11426.992 24941.517 6572.295 -1601639
|
||||
80 259.73004 12572.33 -1614216.8 -10867.596 16928.464 3033.9024 -1601644.5
|
||||
90 269.2352 13032.431 -1614679 -7962.3097 4931.5336 -280.21988 -1601646.5
|
||||
100 280.67181 13586.024 -1615234.3 -3606.1482 -8769.8463 -2527.5874 -1601648.3
|
||||
Loop time of 97.054 on 4 procs for 100 steps with 16240 atoms
|
||||
|
||||
Performance: 0.009 ns/day, 2695.944 hours/ns, 1.030 timesteps/s
|
||||
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 94.83 | 95.764 | 96.883 | 9.2 | 98.67
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.16123 | 1.2801 | 2.2132 | 79.9 | 1.32
|
||||
Output | 0.00056076 | 0.00066662 | 0.00095987 | 0.0 | 0.00
|
||||
Modify | 0.0048354 | 0.0049006 | 0.0049515 | 0.1 | 0.01
|
||||
Other | | 0.004639 | | | 0.00
|
||||
|
||||
Nlocal: 4060 ave 4080 max 4040 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Nghost: 14972 ave 14992 max 14952 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Neighs: 1.8135e+06 ave 1.82186e+06 max 1.80514e+06 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 7253988
|
||||
Ave neighs/atom = 446.674
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:01:38
|
||||
@ -1,69 +0,0 @@
|
||||
#define PORTABLECOMMENTFLAG
|
||||
#ifndef PORTABLECOMMENTFLAG
|
||||
// This is just a way to have portable comments
|
||||
// for both C++ and FORTRAN preprocessing.
|
||||
/* ///:EOH~ */
|
||||
/* */
|
||||
/* This file contains array dimension parameters for all the main */
|
||||
/* ReaxFF data structures, some of which need to be directly accessed */
|
||||
/* by Grasp C++ functions. If they are set too small, the calculation */
|
||||
/* will run out of allocated memory. If they are set too big, the machine */
|
||||
/* will not be able to allocate enough memory. */
|
||||
/* */
|
||||
|
||||
/* NNEIGHMAXDEF = Max number of neighbors / NATDEF */
|
||||
/* NATDEF = Max number of atoms */
|
||||
/* NATTOTDEF = Max number of global atoms */
|
||||
/* NSORTDEF = Max number of atom types */
|
||||
/* MBONDDEF = Max number of bonds connected to one atom */
|
||||
/* NAVIBDEF = for 2nd derivatives */
|
||||
/* NBOTYMDEF = Max number of bond types */
|
||||
/* NVATYMDEF = Max number of valency angle types */
|
||||
/* NTOTYMDEF = Max number of torsion angle types */
|
||||
/* NHBTYMDEF = Max number of hydrogen bond types */
|
||||
/* NODMTYMDEF = Max number of off-diagonal Morse types */
|
||||
/* NBOALLMAXDEF = Max number of all bonds */
|
||||
/* NBOMAXDEF = Max number of bonds */
|
||||
/* NHBMAXDEF = Max number of hydrogen bonds */
|
||||
/* NVAMAXDEF = Max number of valency angles */
|
||||
/* NOPMAXDEF = Max number of out of plane angles */
|
||||
/* NTOMAXDEF = Max number of torsion angles */
|
||||
/* NPAMAXDEF = Max number of general parameters in force field */
|
||||
/* NMOLMAXDEF = Max number of molecules in system */
|
||||
/* NMOLSETDEF = Max number of molecules in training set */
|
||||
/* MRESTRADEF = Max number of restraints */
|
||||
/* MTREGDEF = Max number of temperature regimes */
|
||||
/* MTZONEDEF = Max number of temperature zones */
|
||||
/* MVREGDEF = Max number of volume regimes */
|
||||
/* MVZONEDEF = Max number of volume zones */
|
||||
/* MEREGDEF = Max number of electric field regimes */
|
||||
/* MEZONEDEF = Max number of electric field zones */
|
||||
#endif
|
||||
|
||||
#define NNEIGHMAXDEF 200
|
||||
#define NATDEF 50000
|
||||
#define NATTOTDEF 1
|
||||
#define NSORTDEF 20
|
||||
#define MBONDDEF 20
|
||||
#define NAVIBDEF 50
|
||||
#define NBOTYMDEF 200
|
||||
#define NVATYMDEF 200
|
||||
#define NTOTYMDEF 200
|
||||
#define NHBTYMDEF 200
|
||||
#define NODMTYMDEF 20
|
||||
#define NBOALLMAXDEF 180000
|
||||
#define NBOMAXDEF 90000
|
||||
#define NHBMAXDEF 400000
|
||||
#define NVAMAXDEF 300000
|
||||
#define NOPMAXDEF 00010
|
||||
#define NTOMAXDEF 200000
|
||||
#define NPAMAXDEF 50
|
||||
#define NMOLMAXDEF 2000
|
||||
#define NMOLSETDEF 1500
|
||||
#define MRESTRADEF 100
|
||||
#define MTREGDEF 100
|
||||
#define MTZONEDEF 5
|
||||
#define MVREGDEF 100
|
||||
#define MVZONEDEF 6
|
||||
#define MEREGDEF 100
|
||||
#define MEZONEDEF 3
|
||||
@ -420,13 +420,19 @@ endforeach()
|
||||
##############################################
|
||||
# add lib sources of (simple) enabled packages
|
||||
############################################
|
||||
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD)
|
||||
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-MESONT)
|
||||
if(PKG_${SIMPLE_LIB})
|
||||
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
|
||||
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
|
||||
if(PKG_LIB STREQUAL mesont)
|
||||
enable_language(Fortran)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.f90)
|
||||
else()
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
|
||||
endif()
|
||||
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
|
||||
set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_MACHINE})
|
||||
target_link_libraries(lammps PRIVATE ${PKG_LIB})
|
||||
@ -625,6 +631,8 @@ install(
|
||||
###############################################################################
|
||||
if(BUILD_SHARED_LIBS)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
|
||||
set(Python_ADDITIONAL_VERSIONS 3.8 3.7 3.6 3.5)
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
@ -780,3 +788,6 @@ if(PKG_KSPACE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(BUILD_DOC)
|
||||
message(STATUS "<<< Building HTML Manual >>>")
|
||||
endif()
|
||||
|
||||
@ -2,10 +2,19 @@
|
||||
# Build documentation
|
||||
###############################################################################
|
||||
option(BUILD_DOC "Build LAMMPS HTML documentation" OFF)
|
||||
if(BUILD_DOC)
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||
if(BUILD_DOC)
|
||||
# Sphinx 3.x requires at least Python 3.5
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
find_package(PythonInterp 3.5 REQUIRED)
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv -p ${PYTHON_EXECUTABLE})
|
||||
else()
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
if(Python3_VERSION VERSION_LESS 3.5)
|
||||
message(FATAL_ERROR "Python 3.5 and up is required to build the HTML documentation")
|
||||
endif()
|
||||
set(VIRTUALENV ${Python3_EXECUTABLE} -m virtualenv -p ${Python3_EXECUTABLE})
|
||||
endif()
|
||||
|
||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
|
||||
|
||||
@ -25,11 +34,10 @@ if(BUILD_DOC)
|
||||
)
|
||||
|
||||
# download mathjax distribution and unpack to folder "mathjax"
|
||||
file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.0.5.tar.gz"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz"
|
||||
EXPECTED_MD5 5d9d3799cce77a1a95eee6be04eb68e7)
|
||||
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mathjax)
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mathjax/es5)
|
||||
file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.0.5.tar.gz"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz"
|
||||
EXPECTED_MD5 5d9d3799cce77a1a95eee6be04eb68e7)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
file(GLOB MATHJAX_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${CMAKE_CURRENT_BINARY_DIR}/mathjax)
|
||||
@ -37,11 +45,18 @@ if(BUILD_DOC)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax)
|
||||
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/mathjax/es5 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax/)
|
||||
|
||||
# for increased browser compatibility
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/html/_static/polyfill.js)
|
||||
file(DOWNLOAD "https://polyfill.io/v3/polyfill.min.js?features=es6"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/html/_static/polyfill.js")
|
||||
endif()
|
||||
|
||||
# note, this may run in parallel with other tasks, so we must not use multiple processes here
|
||||
add_custom_command(
|
||||
OUTPUT html
|
||||
DEPENDS ${DOC_SOURCES} docenv requirements.txt
|
||||
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink Manual.html ${CMAKE_CURRENT_BINARY_DIR}/html/index.html
|
||||
)
|
||||
|
||||
# copy selected image files to html output tree
|
||||
@ -56,17 +71,17 @@ if(BUILD_DOC)
|
||||
set(HTML_IMAGE_TARGETS "")
|
||||
foreach(_IMG ${HTML_EXTRA_IMAGES})
|
||||
string(PREPEND _IMG JPG/)
|
||||
list(APPEND HTML_IMAGE_TARGETS "html/${_IMG}")
|
||||
list(APPEND HTML_IMAGE_TARGETS "${CMAKE_CURRENT_BINARY_DIR}/html/${_IMG}")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/${_IMG}
|
||||
DEPENDS ${LAMMPS_DOC_DIR}/src/${_IMG} html/JPG
|
||||
DEPENDS ${LAMMPS_DOC_DIR}/src/${_IMG} ${CMAKE_CURRENT_BINARY_DIR}/html/JPG
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/src/${_IMG} ${CMAKE_BINARY_DIR}/html/${_IMG}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
add_custom_target(
|
||||
doc ALL
|
||||
DEPENDS html html/_static/mathjax/es5 ${HTML_IMAGE_TARGETS}
|
||||
DEPENDS html ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax/es5 ${HTML_IMAGE_TARGETS}
|
||||
SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES}
|
||||
)
|
||||
|
||||
|
||||
@ -96,9 +96,15 @@ function(FetchPotentials pkgfolder potfolder)
|
||||
math(EXPR plusone "${blank}+1")
|
||||
string(SUBSTRING ${line} 0 ${blank} pot)
|
||||
string(SUBSTRING ${line} ${plusone} -1 sum)
|
||||
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
||||
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${LAMMPS_POTENTIALS_DIR}/${pot}"
|
||||
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
|
||||
if(EXISTS ${LAMMPS_POTENTIALS_DIR}/${pot})
|
||||
file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum)
|
||||
endif()
|
||||
if(NOT sum STREQUAL oldsum)
|
||||
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
||||
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}"
|
||||
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
|
||||
file(COPY "${CMAKE_BINARY_DIR}/${pot}" DESTINATION ${LAMMPS_POTENTIALS_DIR})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction(FetchPotentials)
|
||||
|
||||
@ -14,6 +14,29 @@ endif()
|
||||
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
|
||||
if(DOWNLOAD_SCAFACOS)
|
||||
message(STATUS "ScaFaCoS download requested - we will build our own")
|
||||
# create variables to pass our compiler flags along to the subsystem compile
|
||||
# need to apply -fallow-argument-mismatch, if the fortran compiler supports it
|
||||
include(CheckFortranCompilerFlag)
|
||||
check_fortran_compiler_flag("-fallow-argument-mismatch" GNUFortran_ARGUMENT_MISMATCH_FLAG)
|
||||
if(GNUFortran_ARGUMENT_MISMATCH_FLAG)
|
||||
set(APPEND_Fortran_FLAG "-fallow-argument-mismatch")
|
||||
endif()
|
||||
if(CMAKE_Fortran_FLAGS)
|
||||
set(SCAFACOS_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${APPEND_Fortran_FLAG}")
|
||||
else()
|
||||
set(SCAFACOS_Fortran_FLAGS "${CMAKE_Fortran_${CMAKE_BUILD_TYPE}_FLAGS} ${APPEND_Fortran_FLAG}")
|
||||
endif()
|
||||
if(CMAKE_CXX_FLAGS)
|
||||
set(SCAFACOS_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set(SCAFACOS_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS}")
|
||||
endif()
|
||||
if(CMAKE_C_FLAGS)
|
||||
set(SCAFACOS_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
else()
|
||||
set(SCAFACOS_C_FLAGS "${CMAKE_C_${CMAKE_BUILD_TYPE}_FLAGS}")
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(scafacos_build
|
||||
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
|
||||
@ -22,9 +45,9 @@ if(DOWNLOAD_SCAFACOS)
|
||||
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
|
||||
--with-internal-fftw --with-internal-pfft
|
||||
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
|
||||
FC=${CMAKE_MPI_Fortran_COMPILER}
|
||||
CXX=${CMAKE_MPI_CXX_COMPILER}
|
||||
CC=${CMAKE_MPI_C_COMPILER}
|
||||
FC=${CMAKE_MPI_Fortran_COMPILER} FCFLAGS=${SCAFACOS_Fortran_FLAGS}
|
||||
CXX=${CMAKE_MPI_CXX_COMPILER} CXXFLAGS=${SCAFACOS_CXX_FLAGS}
|
||||
CC=${CMAKE_MPI_C_COMPILER} CFLAGS=${SCAFACOS_C_FLAGS}
|
||||
F77=
|
||||
BUILD_BYPRODUCTS
|
||||
<INSTALL_DIR>/lib/libfcs.a
|
||||
|
||||
@ -8,7 +8,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
|
||||
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESODPD
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ
|
||||
USER-SPH USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
@ -10,7 +10,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
|
||||
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESODPD
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ
|
||||
USER-SPH USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
17
cmake/presets/download.cmake
Normal file
17
cmake/presets/download.cmake
Normal file
@ -0,0 +1,17 @@
|
||||
# preset that turns on packages with automatic downloads of sources of potentials
|
||||
# compilation of libraries like Plumed or ScaFaCoS can take a considerable amount of time.
|
||||
|
||||
set(ALL_PACKAGES KIM LATTE MSCG VORONOI USER-PLUMED USER-SCAFACOS USER-SMD USER-MESONT)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
|
||||
set(DOWNLOAD_KIM ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_LATTE ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_MSCG ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_PLUMED ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_SCAFACOS ON CACHE BOOL "" FORCE)
|
||||
|
||||
@ -4,7 +4,7 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
|
||||
USER-FEP USER-INTEL USER-MANIFOLD USER-MEAMC USER-MESODPD
|
||||
USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE USER-OMP
|
||||
USER-MESONT USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE USER-OMP
|
||||
USER-PHONON USER-PTM USER-QTB USER-REACTION USER-REAXC
|
||||
USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF
|
||||
USER-YAFF)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MPIIO MSCG PYTHON
|
||||
VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-H5MD USER-LB
|
||||
USER-MOLFILE USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP
|
||||
USER-MOLFILE USER-MESONT USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP
|
||||
USER-SCAFACOS USER-SMD USER-VTK)
|
||||
|
||||
foreach(PKG ${PACKAGES_WITH_LIB})
|
||||
|
||||
@ -225,7 +225,7 @@ A few example command lines are:
|
||||
|
||||
For compiling with the Clang/LLVM compilers a CMake preset is provided that
|
||||
can be loaded with `-C ../cmake/presets/clang.cmake`. Similarly,
|
||||
`-C ../cmake/presets/intel.cmake` should switch the
|
||||
`-C ../cmake/presets/intel.cmake` should switch the
|
||||
|
||||
In addition you can set ``CMAKE_TUNE_FLAGS`` to specifically add
|
||||
compiler flags to tune for optimal performance on given hosts. By
|
||||
@ -372,7 +372,8 @@ it. The build step will also create generic soft links, named
|
||||
``liblammps.a`` and ``liblammps.so``\ , which point to the specific
|
||||
``liblammps_machine.a/so`` files.
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake and make info
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Note that for creating a shared library, all the libraries it depends on
|
||||
must be compiled to be compatible with shared libraries. This should be
|
||||
@ -462,7 +463,8 @@ tool. The actual translation is then done via make commands.
|
||||
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
|
||||
.. _sphinx: https://sphinx-doc.org
|
||||
|
||||
**Documentation make option**\ :
|
||||
Documentation make option
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The following make commands can be issued in the doc folder of the
|
||||
LAMMPS source distribution.
|
||||
@ -489,7 +491,8 @@ your system.
|
||||
current LAMMPS version (HTML and PDF files), from the website
|
||||
`download page <https://lammps.sandia.gov/download.html>`_.
|
||||
|
||||
**CMake build option**\ :
|
||||
CMake build option
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
It is also possible to create the HTML version of the manual within
|
||||
the :doc:`CMake build directory <Build_cmake>`. The reason for this
|
||||
@ -512,7 +515,8 @@ Build LAMMPS tools
|
||||
Some tools described in :doc:`Auxiliary tools <Tools>` can be built directly
|
||||
using CMake or Make.
|
||||
|
||||
**CMake build3**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -521,7 +525,8 @@ using CMake or Make.
|
||||
The generated binaries will also become part of the LAMMPS installation
|
||||
(see below).
|
||||
|
||||
**Traditional make**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -545,7 +550,8 @@ a globally visible place on your system, for others to access. Note
|
||||
that you may need super-user privileges (e.g. sudo) if the directory
|
||||
you want to copy files to is protected.
|
||||
|
||||
**CMake build**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -553,7 +559,8 @@ you want to copy files to is protected.
|
||||
make # perform make after CMake command
|
||||
make install # perform the installation into prefix
|
||||
|
||||
**Traditional make**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
There is no "install" option in the ``src/Makefile`` for LAMMPS. If
|
||||
you wish to do this you will need to first build LAMMPS, then manually
|
||||
|
||||
@ -126,7 +126,7 @@ in the next section.
|
||||
|
||||
.. note::
|
||||
|
||||
This unit test framework is new and still under development.
|
||||
The unit test framework is new and still under development.
|
||||
The coverage is only minimal and will be expanded over time.
|
||||
Tests styles of the same kind of style (e.g. pair styles or
|
||||
bond styles) are performed with the same executable using
|
||||
@ -237,12 +237,12 @@ and working.
|
||||
performed with automatically rescaled epsilon to account for
|
||||
additional loss of precision from code optimizations and different
|
||||
summation orders.
|
||||
- When compiling with aggressive compiler optimization, some tests
|
||||
- When compiling with (aggressive) compiler optimization, some tests
|
||||
are likely to fail. It is recommended to inspect the individual
|
||||
tests in detail to decide whether the specific error for a specific
|
||||
tests in detail to decide, whether the specific error for a specific
|
||||
property is acceptable (it often is), or this may be an indication
|
||||
of mis-compiled code (or undesired large of precision due to
|
||||
reordering of operations).
|
||||
of mis-compiled code (or an undesired large loss of precision due
|
||||
to significant reordering of operations and thus less error cancellation).
|
||||
|
||||
Collect and visualize code coverage metrics
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,12 @@
|
||||
Link LAMMPS as a library to another code
|
||||
========================================
|
||||
|
||||
LAMMPS is designed as a library of C++ objects and can thus be
|
||||
LAMMPS is designed as a library of C++ objects that can be
|
||||
integrated into other applications including Python scripts.
|
||||
The files ``src/library.cpp`` and ``src/library.h`` define a
|
||||
C-style API for using LAMMPS as a library. See the :doc:`Howto
|
||||
library <Howto_library>` doc page for a description of the interface
|
||||
and how to extend it for your needs.
|
||||
library <Howto_library>` page for a description of the interface
|
||||
and how to use it for your needs.
|
||||
|
||||
The :doc:`Build basics <Build_basics>` doc page explains how to build
|
||||
LAMMPS as either a shared or static library. This results in a file
|
||||
@ -31,18 +31,18 @@ the suffix ``.so.0`` (or some other number).
|
||||
communicator with a subset of MPI ranks to the function creating the
|
||||
LAMMPS instance.
|
||||
|
||||
----------
|
||||
|
||||
**Link with LAMMPS as a static library**\ :
|
||||
Link with LAMMPS as a static library
|
||||
------------------------------------
|
||||
|
||||
The calling application can link to LAMMPS as a static library with
|
||||
compilation and link commands as in the examples shown below. These
|
||||
are examples for a code written in C in the file *caller.c*.
|
||||
are examples for a code written in C in the file ``caller.c``.
|
||||
The benefit of linking to a static library is, that the resulting
|
||||
executable is independent of that library since all required
|
||||
executable code from the library is copied into the calling executable.
|
||||
|
||||
*CMake build*\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
This assumes that LAMMPS has been configured without setting a
|
||||
``LAMMPS_MACHINE`` name, installed with "make install", and the
|
||||
@ -55,7 +55,8 @@ The commands to compile and link a coupled executable are then:
|
||||
mpicc -c -O $(pkgconf liblammps --cflags) caller.c
|
||||
mpicxx -o caller caller.o -$(pkgconf liblammps --libs)
|
||||
|
||||
*Traditional make*\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This assumes that LAMMPS has been compiled in the folder
|
||||
``${HOME}/lammps/src`` with "make mpi". The commands to compile and link
|
||||
@ -83,20 +84,20 @@ LAMMPS library without any optional packages that depend on libraries
|
||||
need to include all flags, libraries, and paths for the coupled
|
||||
executable, that are also required to link the LAMMPS executable.
|
||||
|
||||
*CMake build*\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
When using CMake, additional libraries with sources in the lib folder
|
||||
are built, but not included in ``liblammps.a`` and (currently) not
|
||||
installed with "make install" and not included in the *pkgconfig*
|
||||
installed with ``make install`` and not included in the ``pkgconfig``
|
||||
configuration file. They can be found in the top level build folder,
|
||||
but you have to determine the necessary link flags manually. It is
|
||||
therefore recommended to either use the traditional make procedure to
|
||||
build and link with a static library or build and link with a shared
|
||||
library instead.
|
||||
|
||||
.. TODO: this needs to be updated to reflect that latest CMake changes after they are complete.
|
||||
|
||||
*Traditional make*\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
After you have compiled a static LAMMPS library using the conventional
|
||||
build system for example with "make mode=static serial". And you also
|
||||
@ -110,10 +111,10 @@ change to:
|
||||
g++ -o caller caller.o -L${HOME}/lammps/lib/poems \
|
||||
-L${HOME}/lammps/src/STUBS -L${HOME}/lammps/src -llammps_serial -lpoems -lmpi_stubs
|
||||
|
||||
Note, that you need to link with "g++" instead of "gcc", since the
|
||||
LAMMPS library is C++ code. You can display the currently applied
|
||||
settings for building LAMMPS for the "serial" machine target by using
|
||||
the command:
|
||||
Note, that you need to link with ``g++`` instead of ``gcc`` even if you have
|
||||
written your code in C, since LAMMPS itself is C++ code. You can display the
|
||||
currently applied settings for building LAMMPS for the "serial" machine target
|
||||
by using the command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -123,25 +124,24 @@ Which should output something like:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Compiler:
|
||||
# Compiler:
|
||||
CXX=g++
|
||||
# Linker:
|
||||
# Linker:
|
||||
LD=g++
|
||||
# Compilation:
|
||||
# Compilation:
|
||||
CXXFLAGS=-g -O3 -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 -I${HOME}/compile/lammps/lib/poems -I${HOME}/compile/lammps/src/STUBS
|
||||
# Linking:
|
||||
# Linking:
|
||||
LDFLAGS=-g -O
|
||||
# Libraries:
|
||||
# Libraries:
|
||||
LDLIBS=-L${HOME}/compile/lammps/src -llammps_serial -L${HOME}/compile/lammps/lib/poems -L${HOME}/compile/lammps/src/STUBS -lpoems -lmpi_stubs
|
||||
|
||||
From this you can gather the necessary paths and flags. With
|
||||
makefiles for other *machine* configurations you need to do the
|
||||
equivalent and replace "serial" with the corresponding *machine* name
|
||||
equivalent and replace "serial" with the corresponding "machine" name
|
||||
of the makefile.
|
||||
|
||||
----------
|
||||
|
||||
**Link with LAMMPS as a shared library**\ :
|
||||
Link with LAMMPS as a shared library
|
||||
------------------------------------
|
||||
|
||||
When linking to LAMMPS built as a shared library, the situation becomes
|
||||
much simpler, as all dependent libraries and objects are either included
|
||||
@ -151,7 +151,8 @@ linking the calling executable. Only the *-I* flags are needed. So the
|
||||
example case from above of the serial version static LAMMPS library with
|
||||
the POEMS package installed becomes:
|
||||
|
||||
*CMake build*\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
The commands with a shared LAMMPS library compiled with the CMake
|
||||
build process are the same as for the static library.
|
||||
@ -161,10 +162,11 @@ build process are the same as for the static library.
|
||||
mpicc -c -O $(pkgconf liblammps --cflags) caller.c
|
||||
mpicxx -o caller caller.o -$(pkgconf --libs)
|
||||
|
||||
*Traditional make*\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The commands with a shared LAMMPS library compiled with the
|
||||
traditional make build using "make mode=shared serial" becomes:
|
||||
traditional make build using ``make mode=shared serial`` becomes:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -231,29 +233,3 @@ If a required library is missing, you would get a 'not found' entry:
|
||||
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fb7c7b5d000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x00007fb7c80a2000)
|
||||
|
||||
----------
|
||||
|
||||
**Calling the LAMMPS library**\ :
|
||||
|
||||
Either flavor of library (static or shared) allows one or more LAMMPS
|
||||
objects to be instantiated from the calling program. When used from a
|
||||
C++ program, most of the symbols and functions in LAMMPS are wrapped
|
||||
in a ``LAMMPS_NS`` namespace; you can safely use any of its classes and
|
||||
methods from within the calling code, as needed, and you will not incur
|
||||
conflicts with functions and variables in your code that share the name.
|
||||
This, however, does not extend to all additional libraries bundled with
|
||||
LAMMPS in the lib folder and some of the low-level code of some packages.
|
||||
|
||||
To be compatible with C, Fortran, Python programs, the library has a simple
|
||||
C-style interface, provided in ``src/library.cpp`` and ``src/library.h``.
|
||||
|
||||
See the :doc:`Python library <Python_library>` doc page for a
|
||||
description of the Python interface to LAMMPS, which wraps the C-style
|
||||
interface from a shared library through the `ctypes python module <ctypes_>`_.
|
||||
|
||||
See the sample codes in ``examples/COUPLE/simple`` for examples of C++ and
|
||||
C and Fortran codes that invoke LAMMPS through its library interface.
|
||||
Other examples in the COUPLE directory use coupling ideas discussed on
|
||||
the :doc:`Howto couple <Howto_couple>` doc page.
|
||||
|
||||
.. _ctypes: https://docs.python.org/3/library/ctypes.html
|
||||
|
||||
@ -45,7 +45,8 @@ packages:
|
||||
The mechanism for including packages is simple but different for CMake
|
||||
versus make.
|
||||
|
||||
**CMake build**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: csh
|
||||
|
||||
@ -72,7 +73,8 @@ once with CMake.
|
||||
invoke cmake. CMake will give an error if that is not the case,
|
||||
indicating how you can un-install all packages in the src dir.
|
||||
|
||||
**Traditional make**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -108,7 +110,8 @@ once with make.
|
||||
within the same command. You can include or exclude multiple packages
|
||||
in a single make command, e.g. make yes-colloid no-manybody.
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake and make info
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Any package can be included or excluded in a LAMMPS build, independent
|
||||
of all other packages. However, some packages include files derived
|
||||
@ -132,7 +135,7 @@ src directory.
|
||||
|
||||
.. _cmake_presets:
|
||||
|
||||
**CMake shortcuts for installing many packages**\ :
|
||||
CMake presets for installing many packages
|
||||
|
||||
Instead of specifying all the CMake options via the command-line,
|
||||
CMake allows initializing its settings cache using script files.
|
||||
@ -148,13 +151,14 @@ one of them as a starting point and customize it to your needs.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake # enable just a few core packages
|
||||
cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake # enable most packages
|
||||
cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake # disable packages that do require extra libraries or tools
|
||||
cmake -C ../cmake/presets/clang.cmake [OPTIONS] ../cmake # change settings to use the Clang compilers by default
|
||||
cmake -C ../cmake/presets/intel.cmake [OPTIONS] ../cmake # change settings to use the Intel compilers by default
|
||||
cmake -C ../cmake/presets/all_on.cmake [OPTIONS] ../cmake # enable all packages
|
||||
cmake -C ../cmake/presets/all_off.cmake [OPTIONS] ../cmake # disable all packages
|
||||
cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake # enable just a few core packages
|
||||
cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake # enable most packages
|
||||
cmake -C ../cmake/presets/download.cmake [OPTIONS] ../cmake # enable packages which download sources or potential files
|
||||
cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake # disable packages that do require extra libraries or tools
|
||||
cmake -C ../cmake/presets/clang.cmake [OPTIONS] ../cmake # change settings to use the Clang compilers by default
|
||||
cmake -C ../cmake/presets/intel.cmake [OPTIONS] ../cmake # change settings to use the Intel compilers by default
|
||||
cmake -C ../cmake/presets/all_on.cmake [OPTIONS] ../cmake # enable all packages
|
||||
cmake -C ../cmake/presets/all_off.cmake [OPTIONS] ../cmake # disable all packages
|
||||
mingw64-cmake -C ../cmake/presets/mingw-cross.cmake [OPTIONS] ../cmake # compile with MinGW cross compilers
|
||||
|
||||
.. note::
|
||||
@ -184,7 +188,8 @@ one of them as a starting point and customize it to your needs.
|
||||
|
||||
----------
|
||||
|
||||
**Make shortcuts for installing many packages**\ :
|
||||
Make shortcuts for installing many packages
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The following commands are useful for managing package source files
|
||||
and their installation when building LAMMPS via traditional make.
|
||||
|
||||
@ -44,7 +44,8 @@ require use of an FFT library to compute 1d FFTs. The KISS FFT
|
||||
library is included with LAMMPS but other libraries can be faster.
|
||||
LAMMPS can use them if they are available on your system.
|
||||
|
||||
**CMake variables**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -74,7 +75,12 @@ to assist:
|
||||
-D FFT_MKL_THREADS=on # enable using threaded FFTs with MKL libraries
|
||||
-D MKL_LIBRARIES=path
|
||||
|
||||
**Makefile.machine settings**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
To change the FFT library to be used and its options, you have to edit
|
||||
your machine Makefile. Below are examples how the makefile variables
|
||||
could be changed.
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
@ -104,7 +110,8 @@ As with CMake, you do not need to set paths in ``FFT_INC`` or ``FFT_PATH``, if
|
||||
the compiler can find the FFT header and library files in its default search path.
|
||||
You must specify ``FFT_LIB`` with the appropriate FFT libraries to include in the link.
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
|
||||
distribution. It is portable across all platforms. Depending on the size
|
||||
@ -127,7 +134,7 @@ download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
|
||||
version 3.X; the legacy version 2.1.X is no longer supported.
|
||||
|
||||
Building FFTW for your box should be as simple as ``./configure; make;
|
||||
make install``\ . The install command typically requires root privileges
|
||||
make install``. The install command typically requires root privileges
|
||||
(e.g. invoke it via sudo), unless you specify a local directory with
|
||||
the "--prefix" option of configure. Type ``./configure --help`` to see
|
||||
various options.
|
||||
@ -169,20 +176,25 @@ ARRAY mode.
|
||||
|
||||
.. _size:
|
||||
|
||||
Size of LAMMPS data types
|
||||
Size of LAMMPS integer types
|
||||
------------------------------------
|
||||
|
||||
LAMMPS has a few integer data types which can be defined as 4-byte or
|
||||
8-byte integers. The default setting of "smallbig" is almost always
|
||||
adequate.
|
||||
LAMMPS has a few integer data types which can be defined as either
|
||||
4-byte (= 32-bit) or 8-byte (= 64-bit) integers at compile time.
|
||||
The default setting of "smallbig" is almost always adequate.
|
||||
|
||||
**CMake variable**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall
|
||||
|
||||
**Makefile.machine setting**\ :
|
||||
Traditional build
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
If you want a setting different from the default, you need to edit your
|
||||
machine Makefile.
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
@ -190,7 +202,8 @@ adequate.
|
||||
|
||||
The default setting is ``-DLAMMPS_SMALLBIG`` if nothing is specified
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake and make info
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The default "smallbig" setting allows for simulations with:
|
||||
|
||||
@ -251,7 +264,8 @@ PNG image files. Likewise the :doc:`dump movie <dump_image>` command
|
||||
outputs movie files in MPEG format. Using these options requires the
|
||||
following settings:
|
||||
|
||||
**CMake variables**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -276,7 +290,8 @@ variables:
|
||||
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
|
||||
-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable
|
||||
|
||||
**Makefile.machine settings**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
@ -295,7 +310,8 @@ with a list of graphics libraries to include in the link. You must
|
||||
insure ffmpeg is in a directory where LAMMPS can find it at runtime,
|
||||
that is a directory in your PATH environment variable.
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake and make info
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Using ``ffmpeg`` to output movie files requires that your machine
|
||||
supports the "popen" function in the standard runtime library.
|
||||
@ -318,7 +334,8 @@ If this option is enabled, large files can be read or written with
|
||||
gzip compression by several LAMMPS commands, including
|
||||
:doc:`read_data <read_data>`, :doc:`rerun <rerun>`, and :doc:`dump <dump>`.
|
||||
|
||||
**CMake variables**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -326,13 +343,15 @@ gzip compression by several LAMMPS commands, including
|
||||
# default is yes if CMake can find gzip, else no
|
||||
-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it
|
||||
|
||||
**Makefile.machine setting**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
LMP_INC = -DLAMMPS_GZIP
|
||||
|
||||
**CMake and make info**\ :
|
||||
CMake and make info
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This option requires that your machine supports the "popen()" function
|
||||
in the standard runtime library and that a gzip executable can be
|
||||
@ -363,7 +382,8 @@ pointers that are aligned to 16-byte boundaries. Using SSE vector
|
||||
instructions efficiently, however, requires memory blocks being
|
||||
aligned on 64-byte boundaries.
|
||||
|
||||
**CMake variable**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -374,7 +394,8 @@ and revert to using the malloc() C-library function instead. When
|
||||
compiling LAMMPS for Windows systems, malloc() will always be used
|
||||
and this setting ignored.
|
||||
|
||||
**Makefile.machine setting**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
@ -398,13 +419,15 @@ types, the following setting will be needed. It converts "long long"
|
||||
to a "long" data type, which should be the desired 8-byte integer on
|
||||
those systems:
|
||||
|
||||
**CMake variable**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D LAMMPS_LONGLONG_TO_LONG=value # yes or no (default)
|
||||
|
||||
**Makefile.machine setting**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
@ -420,17 +443,26 @@ Exception handling when using LAMMPS as a library
|
||||
This setting is useful when external codes drive LAMMPS as a library.
|
||||
With this option enabled, LAMMPS errors do not kill the calling code.
|
||||
Instead, the call stack is unwound and control returns to the caller,
|
||||
e.g. to Python. Of course the calling code has to be set up to
|
||||
*catch* exceptions from within LAMMPS.
|
||||
e.g. to Python. Of course, the calling code has to be set up to
|
||||
*catch* exceptions thrown from within LAMMPS.
|
||||
|
||||
**CMake variable**\ :
|
||||
CMake build
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
|
||||
|
||||
**Makefile.machine setting**\ :
|
||||
Traditional make
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
LMP_INC = -DLAMMPS_EXCEPTIONS
|
||||
|
||||
.. note::
|
||||
|
||||
When LAMMPS is running in parallel, it is not always possible to
|
||||
cleanly recover from an exception since not all parallel ranks may
|
||||
throw an exception and thus other MPI ranks may get stuck waiting for
|
||||
messages from the ones with errors.
|
||||
|
||||
@ -79,6 +79,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
* :doc:`ke/atom/eff <compute_ke_atom_eff>`
|
||||
* :doc:`ke/eff <compute_ke_eff>`
|
||||
* :doc:`ke/rigid <compute_ke_rigid>`
|
||||
* :doc:`mesont <compute_mesont>`
|
||||
* :doc:`momentum <compute_momentum>`
|
||||
* :doc:`msd <compute_msd>`
|
||||
* :doc:`msd/chunk <compute_msd_chunk>`
|
||||
|
||||
@ -31,9 +31,9 @@ does something different than this sequence:
|
||||
run 100
|
||||
|
||||
In the first case, the specified timestep (0.5 fs) is used for two
|
||||
simulations of 100 timesteps each. In the 2nd case, the default
|
||||
timestep (1.0 fs) is used for the 1st 100 step simulation and a 0.5 fs
|
||||
timestep is used for the 2nd one.
|
||||
simulations of 100 timesteps each. In the second case, the default
|
||||
timestep (1.0 fs) is used for the first 100 step simulation and a 0.5 fs
|
||||
timestep is used for the second one.
|
||||
|
||||
(2) Some commands are only valid when they follow other commands. For
|
||||
example you cannot set the temperature of a group of atoms until atoms
|
||||
|
||||
@ -78,7 +78,7 @@ OPT.
|
||||
* :doc:`coul/long/soft (o) <pair_fep_soft>`
|
||||
* :doc:`coul/msm (o) <pair_coul>`
|
||||
* :doc:`coul/slater/cut <pair_coul_slater>`
|
||||
* :doc:`coul/slater/long <pair_coul_slater>`
|
||||
* :doc:`coul/slater/long <pair_coul_slater>`
|
||||
* :doc:`coul/shield <pair_coul_shield>`
|
||||
* :doc:`coul/streitz <pair_coul>`
|
||||
* :doc:`coul/wolf (ko) <pair_coul>`
|
||||
@ -180,6 +180,7 @@ OPT.
|
||||
* :doc:`meam/spline (o) <pair_meam_spline>`
|
||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
|
||||
* :doc:`mesocnt <pair_mesocnt>`
|
||||
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
||||
* :doc:`mgpt <pair_mgpt>`
|
||||
* :doc:`mie/cut (g) <pair_mie>`
|
||||
* :doc:`mm3/switch3/coulgauss/long <pair_mm3_switch3_coulgauss_long>`
|
||||
|
||||
@ -142,7 +142,7 @@ follows:
|
||||
minimize.
|
||||
|
||||
\item The Special class walks the bond topology of a molecular system
|
||||
to find 1st, 2nd, 3rd neighbors of each atom. It is invoked by
|
||||
to find first, second, third neighbors of each atom. It is invoked by
|
||||
several commands, like read\_data, read\_restart, and replicate.
|
||||
|
||||
\item The Atom class stores all per-atom arrays. More precisely, they
|
||||
|
||||
@ -23,7 +23,7 @@ We use it to show how to identify the origin of a segmentation fault.
|
||||
double *special_lj = force->special_lj;
|
||||
int newton_pair = force->newton_pair;
|
||||
+ double comx = 0.0;
|
||||
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
@@ -134,8 +135,10 @@ void PairLJCut::compute(int eflag, int vflag)
|
||||
@ -31,7 +31,7 @@ We use it to show how to identify the origin of a segmentation fault.
|
||||
}
|
||||
}
|
||||
- }
|
||||
|
||||
|
||||
+ comx += atom->rmass[i]*x[i][0]; /* BUG */
|
||||
+ }
|
||||
+ printf("comx = %g\n",comx);
|
||||
@ -42,7 +42,7 @@ After recompiling LAMMPS and running the input you should get something like thi
|
||||
|
||||
.. code-block:
|
||||
|
||||
$ ./lmp -in in.melt
|
||||
$ ./lmp -in in.melt
|
||||
LAMMPS (19 Mar 2020)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
@ -98,11 +98,11 @@ drop back to the GDB prompt.
|
||||
Unit style : lj
|
||||
Current step : 0
|
||||
Time step : 0.005
|
||||
|
||||
|
||||
Program received signal SIGSEGV, Segmentation fault.
|
||||
0x00000000006653ab in LAMMPS_NS::PairLJCut::compute (this=0x829740, eflag=1, vflag=<optimized out>) at /home/akohlmey/compile/lammps/src/pair_lj_cut.cpp:139
|
||||
139 comx += atom->rmass[i]*x[i][0]; /* BUG */
|
||||
(gdb)
|
||||
(gdb)
|
||||
|
||||
Now typing the command "where" will show the stack of functions starting from
|
||||
the current function back to "main()".
|
||||
@ -119,7 +119,7 @@ the current function back to "main()".
|
||||
#4 0x0000000000410ad3 in LAMMPS_NS::Input::execute_command (this=0x7d1410) at /home/akohlmey/compile/lammps/src/input.cpp:864
|
||||
#5 0x00000000004111fb in LAMMPS_NS::Input::file (this=0x7d1410) at /home/akohlmey/compile/lammps/src/input.cpp:229
|
||||
#6 0x000000000040933a in main (argc=<optimized out>, argv=<optimized out>) at /home/akohlmey/compile/lammps/src/main.cpp:65
|
||||
(gdb)
|
||||
(gdb)
|
||||
|
||||
You can also print the value of variables and see if there is anything
|
||||
unexpected. Segmentation faults, for example, commonly happen when a
|
||||
@ -189,12 +189,12 @@ the console are not mixed.
|
||||
|
||||
.. code-block::
|
||||
|
||||
$ valgrind ./lmp -in in.melt
|
||||
$ valgrind ./lmp -in in.melt
|
||||
==1933642== Memcheck, a memory error detector
|
||||
==1933642== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
|
||||
==1933642== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
|
||||
==1933642== Command: ./lmp -in in.melt
|
||||
==1933642==
|
||||
==1933642==
|
||||
LAMMPS (19 Mar 2020)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
@ -228,7 +228,7 @@ the console are not mixed.
|
||||
==1933642== by 0x4111FA: LAMMPS_NS::Input::file() (input.cpp:229)
|
||||
==1933642== by 0x409339: main (main.cpp:65)
|
||||
==1933642== Address 0x0 is not stack'd, malloc'd or (recently) free'd
|
||||
==1933642==
|
||||
==1933642==
|
||||
|
||||
As you can see, the stack trace information is similar to that obtained
|
||||
from GDB. In addition you get a more specific hint about what cause the
|
||||
|
||||
@ -381,7 +381,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
are defined.
|
||||
|
||||
*Bond atom missing in box size check*
|
||||
The 2nd atoms needed to compute a particular bond is missing on this
|
||||
The second atom needed to compute a particular bond is missing on this
|
||||
processor. Typically this is because the pairwise cutoff is set too
|
||||
short or the bond has blown apart and an atom is too far away.
|
||||
|
||||
@ -391,7 +391,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
the atoms are too far apart to make a valid bond.
|
||||
|
||||
*Bond atom missing in image check*
|
||||
The 2nd atom in a particular bond is missing on this processor.
|
||||
The second atom in a particular bond is missing on this processor.
|
||||
Typically this is because the pairwise cutoff is set too short or the
|
||||
bond has blown apart and an atom is too far away.
|
||||
|
||||
@ -401,12 +401,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
are too far apart to make a valid bond.
|
||||
|
||||
*Bond atoms %d %d missing on proc %d at step %ld*
|
||||
The 2nd atom needed to compute a particular bond is missing on this
|
||||
The second atom needed to compute a particular bond is missing on this
|
||||
processor. Typically this is because the pairwise cutoff is set too
|
||||
short or the bond has blown apart and an atom is too far away.
|
||||
|
||||
*Bond atoms missing on proc %d at step %ld*
|
||||
The 2nd atom needed to compute a particular bond is missing on this
|
||||
The second atom needed to compute a particular bond is missing on this
|
||||
processor. Typically this is because the pairwise cutoff is set too
|
||||
short or the bond has blown apart and an atom is too far away.
|
||||
|
||||
@ -1374,7 +1374,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
template does not qualify.
|
||||
|
||||
*Cannot use fix box/relax on a 2nd non-periodic dimension*
|
||||
When specifying an off-diagonal pressure component, the 2nd of the two
|
||||
When specifying an off-diagonal pressure component, the second of the two
|
||||
dimensions must be periodic. E.g. if the xy component is specified,
|
||||
then the y dimension must be periodic.
|
||||
|
||||
@ -1388,7 +1388,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
also keyword tri or xy, this is wrong.
|
||||
|
||||
*Cannot use fix box/relax with tilt factor scaling on a 2nd non-periodic dimension*
|
||||
When specifying scaling on a tilt factor component, the 2nd of the two
|
||||
When specifying scaling on a tilt factor component, the second of the two
|
||||
dimensions must be periodic. E.g. if the xy component is specified,
|
||||
then the y dimension must be periodic.
|
||||
|
||||
@ -1429,7 +1429,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
This would be changing the same box dimension twice.
|
||||
|
||||
*Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension*
|
||||
When specifying an off-diagonal pressure component, the 2nd of the two
|
||||
When specifying an off-diagonal pressure component, the second of the two
|
||||
dimensions must be periodic. E.g. if the xy component is specified,
|
||||
then the y dimension must be periodic.
|
||||
|
||||
@ -1447,13 +1447,13 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
Self-explanatory.
|
||||
|
||||
*Cannot use fix nvt/npt/nph with xy scaling when y is non-periodic dimension*
|
||||
The 2nd dimension in the barostatted tilt factor must be periodic.
|
||||
The second dimension in the barostatted tilt factor must be periodic.
|
||||
|
||||
*Cannot use fix nvt/npt/nph with xz scaling when z is non-periodic dimension*
|
||||
The 2nd dimension in the barostatted tilt factor must be periodic.
|
||||
The second dimension in the barostatted tilt factor must be periodic.
|
||||
|
||||
*Cannot use fix nvt/npt/nph with yz scaling when z is non-periodic dimension*
|
||||
The 2nd dimension in the barostatted tilt factor must be periodic.
|
||||
The second dimension in the barostatted tilt factor must be periodic.
|
||||
|
||||
*Cannot use fix pour rigid and not molecule*
|
||||
Self-explanatory.
|
||||
@ -7192,7 +7192,7 @@ keyword to allow for additional bonds to be formed
|
||||
does not exist.
|
||||
|
||||
*Replacing a fix, but new style != old style*
|
||||
A fix ID can be used a 2nd time, but only if the style matches the
|
||||
A fix ID can be used a second time, but only if the style matches the
|
||||
previous fix. In this case it is assumed you with to reset a fix's
|
||||
parameters. This error may mean you are mistakenly re-using a fix ID
|
||||
when you do not intend to.
|
||||
|
||||
@ -43,17 +43,17 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
|
||||
Self-explanatory.
|
||||
|
||||
*Bond atom missing in box size check*
|
||||
The 2nd atoms needed to compute a particular bond is missing on this
|
||||
The second atom needed to compute a particular bond is missing on this
|
||||
processor. Typically this is because the pairwise cutoff is set too
|
||||
short or the bond has blown apart and an atom is too far away.
|
||||
|
||||
*Bond atom missing in image check*
|
||||
The 2nd atom in a particular bond is missing on this processor.
|
||||
The second atom in a particular bond is missing on this processor.
|
||||
Typically this is because the pairwise cutoff is set too short or the
|
||||
bond has blown apart and an atom is too far away.
|
||||
|
||||
*Bond atoms missing at step %ld*
|
||||
The 2nd atom needed to compute a particular bond is missing on this
|
||||
The second atom needed to compute a particular bond is missing on this
|
||||
processor. Typically this is because the pairwise cutoff is set too
|
||||
short or the bond has blown apart and an atom is too far away.
|
||||
|
||||
@ -486,7 +486,7 @@ This will most likely cause errors in kinetic fluctuations.
|
||||
a new style.
|
||||
|
||||
*No Kspace calculation with verlet/split*
|
||||
The 2nd partition performs a kspace calculation so the kspace_style
|
||||
The second partition performs a kspace calculation so the kspace_style
|
||||
command must be used.
|
||||
|
||||
*No automatic unit conversion to XTC file format conventions possible for units lj*
|
||||
|
||||
@ -163,7 +163,7 @@ Here is how you can run and visualize one of the sample problems:
|
||||
|
||||
Running the simulation produces the files *dump.indent* and
|
||||
*log.lammps*\ . You can visualize the dump file of snapshots with a
|
||||
variety of 3rd-party tools highlighted on the
|
||||
variety of third-party tools highlighted on the
|
||||
`Visualization <https://lammps.sandia.gov/viz.html>`_ page of the LAMMPS
|
||||
web site.
|
||||
|
||||
|
||||
@ -197,7 +197,7 @@ compress individual polymer chains (molecules) in a mixture, is
|
||||
explained on the :doc:`compute chunk/spread/atom <compute_chunk_spread_atom>` command doc page.
|
||||
|
||||
(7) An example for using one set of per-chunk values for molecule
|
||||
chunks, to create a 2nd set of micelle-scale chunks (clustered
|
||||
chunks, to create a second set of micelle-scale chunks (clustered
|
||||
molecules, due to hydrophobicity), is explained on the :doc:`compute chunk/reduce <compute_reduce_chunk>` command doc page.
|
||||
|
||||
(8) An example for using one set of per-chunk values (dipole moment
|
||||
|
||||
@ -114,19 +114,19 @@ summary screen will look like this:
|
||||
-- Detecting CXX compiler ABI info - done
|
||||
-- Detecting CXX compile features
|
||||
-- Detecting CXX compile features - done
|
||||
-- Found Git: /usr/bin/git (found version "2.25.2")
|
||||
-- Found Git: /usr/bin/git (found version "2.25.2")
|
||||
-- Running check for auto-generated files from make-based build system
|
||||
-- Found MPI_CXX: /usr/lib64/mpich/lib/libmpicxx.so (found version "3.1")
|
||||
-- Found MPI: TRUE (found version "3.1")
|
||||
-- Found MPI_CXX: /usr/lib64/mpich/lib/libmpicxx.so (found version "3.1")
|
||||
-- Found MPI: TRUE (found version "3.1")
|
||||
-- Looking for C++ include omp.h
|
||||
-- Looking for C++ include omp.h - found
|
||||
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
|
||||
-- Found OpenMP: TRUE (found version "4.5")
|
||||
-- Found JPEG: /usr/lib64/libjpeg.so (found version "62")
|
||||
-- Found PNG: /usr/lib64/libpng.so (found version "1.6.37")
|
||||
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
|
||||
-- Found GZIP: /usr/bin/gzip
|
||||
-- Found FFMPEG: /usr/bin/ffmpeg
|
||||
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
|
||||
-- Found OpenMP: TRUE (found version "4.5")
|
||||
-- Found JPEG: /usr/lib64/libjpeg.so (found version "62")
|
||||
-- Found PNG: /usr/lib64/libpng.so (found version "1.6.37")
|
||||
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
|
||||
-- Found GZIP: /usr/bin/gzip
|
||||
-- Found FFMPEG: /usr/bin/ffmpeg
|
||||
-- Performing Test COMPILER_SUPPORTS-ffast-math
|
||||
-- Performing Test COMPILER_SUPPORTS-ffast-math - Success
|
||||
-- Performing Test COMPILER_SUPPORTS-march=native
|
||||
@ -143,7 +143,7 @@ summary screen will look like this:
|
||||
* JPEG
|
||||
* PNG
|
||||
* ZLIB
|
||||
|
||||
|
||||
-- <<< Build configuration >>>
|
||||
Build type: RelWithDebInfo
|
||||
Install path: /home/akohlmey/.local
|
||||
@ -157,7 +157,7 @@ summary screen will look like this:
|
||||
Options: -ffast-math;-march=native
|
||||
-- <<< Linker flags: >>>
|
||||
-- Executable name: lmp
|
||||
-- Static library flags:
|
||||
-- Static library flags:
|
||||
-- <<< MPI flags >>>
|
||||
-- MPI includes: /usr/include/mpich-x86_64
|
||||
-- MPI libraries: /usr/lib64/mpich/lib/libmpicxx.so;/usr/lib64/mpich/lib/libmpi.so;
|
||||
@ -291,7 +291,7 @@ Some common CMake variables
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
|
||||
* - Variable
|
||||
- Description
|
||||
* - ``CMAKE_INSTALL_PREFIX``
|
||||
@ -313,13 +313,13 @@ Some common CMake variables
|
||||
- Fortran compiler to be used for compilation (default: system specific, ``gfortran`` on Linux)
|
||||
* - ``CXX_COMPILER_LAUNCHER``
|
||||
- tool to launch the C++ compiler, e.g. ``ccache`` or ``distcc`` for faster compilation (default: empty)
|
||||
|
||||
|
||||
Some common LAMMPS specific variables
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
|
||||
* - Variable
|
||||
- Description
|
||||
* - ``BUILD_MPI``
|
||||
@ -438,7 +438,7 @@ the target name to the command. Example: ``cmake --build . --target all`` or
|
||||
* - ``clean``
|
||||
- remove all generated files
|
||||
|
||||
|
||||
|
||||
Choosing generators
|
||||
-------------------
|
||||
|
||||
|
||||
@ -119,7 +119,7 @@ non-polarized ions (ions without an attached satellite particle). The
|
||||
groups, one for the core atoms, another for the shell atoms.
|
||||
Non-polarized ions which might also be included in the treated system
|
||||
should not be included into either of these groups, they are taken
|
||||
into account by the *group-ID* (2nd argument) of the compute. The
|
||||
into account by the *group-ID* (second argument) of the compute. The
|
||||
groups can be defined using the :doc:`group *type*\ <group>` command.
|
||||
Note that to perform thermostatting using this definition of
|
||||
temperature, the :doc:`fix modify temp <fix_modify>` command should be
|
||||
|
||||
@ -91,4 +91,4 @@ With these modifications, the 8 simulations of each script would run
|
||||
on the 3 partitions one after the other until all were finished.
|
||||
Initially, 3 simulations would be started simultaneously, one on each
|
||||
partition. When one finished, that partition would then start
|
||||
the 4th simulation, and so forth, until all 8 were completed.
|
||||
the fourth simulation, and so forth, until all 8 were completed.
|
||||
|
||||
@ -28,7 +28,7 @@ scripts are based on. If that script had the line
|
||||
added to it, it would produce 2 binary restart files (tmp.restart.50
|
||||
and tmp.restart.100) as it ran.
|
||||
|
||||
This script could be used to read the 1st restart file and re-run the
|
||||
This script could be used to read the first restart file and re-run the
|
||||
last 50 timesteps:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -85,7 +85,7 @@ where *V* is the volume of the box, **X** is the original vector quantity and
|
||||
**x** is the vector in the LAMMPS basis.
|
||||
|
||||
There is no requirement that a triclinic box be periodic in any
|
||||
dimension, though it typically should be in at least the 2nd dimension
|
||||
dimension, though it typically should be in at least the second dimension
|
||||
of the tilt (y in xy) if you want to enforce a shift in periodic
|
||||
boundary conditions across that boundary. Some commands that work
|
||||
with triclinic boxes, e.g. the :doc:`fix deform <fix_deform>` and :doc:`fix npt <fix_nh>` commands, require periodicity or non-shrink-wrap
|
||||
@ -120,7 +120,7 @@ The 9 parameters, as well as lx,ly,lz, can be output via the
|
||||
To avoid extremely tilted boxes (which would be computationally
|
||||
inefficient), LAMMPS normally requires that no tilt factor can skew
|
||||
the box more than half the distance of the parallel box length, which
|
||||
is the 1st dimension in the tilt factor (x for xz). This is required
|
||||
is the first dimension in the tilt factor (x for xz). This is required
|
||||
both when the simulation box is created, e.g. via the
|
||||
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands,
|
||||
as well as when the box shape changes dynamically during a simulation,
|
||||
@ -137,7 +137,7 @@ limit during a dynamics run (e.g. via the :doc:`fix deform <fix_deform>`
|
||||
command), then the box is "flipped" to an equivalent shape with a tilt
|
||||
factor within the bounds, so the run can continue. See the :doc:`fix deform <fix_deform>` doc page for further details.
|
||||
|
||||
One exception to this rule is if the 1st dimension in the tilt
|
||||
One exception to this rule is if the first dimension in the tilt
|
||||
factor (x for xy) is non-periodic. In that case, the limits on the
|
||||
tilt factor are not enforced, since flipping the box in that dimension
|
||||
does not change the atom positions due to non-periodicity. In this
|
||||
|
||||
@ -34,7 +34,7 @@ Here are suggestions on how to perform these tasks:
|
||||
molecular builder that will generate complex molecular models. See
|
||||
the :doc:`Tools <Tools>` doc page for details on tools packaged with
|
||||
LAMMPS. The `Pre/post processing page <http:/lammps.sandia.gov/prepost.html>`_ of the LAMMPS website
|
||||
describes a variety of 3rd party tools for this task. Furthermore,
|
||||
describes a variety of third party tools for this task. Furthermore,
|
||||
some LAMMPS internal commands allow to reconstruct, or selectively add
|
||||
topology information, as well as provide the option to insert molecule
|
||||
templates instead of atoms for building bulk molecular systems.
|
||||
|
||||
@ -32,11 +32,12 @@ a brief description of the basic code structure of LAMMPS.
|
||||
|
||||
----------
|
||||
|
||||
Once you are familiar with LAMMPS, you may want to bookmark :doc:`this page <Commands>` since it gives quick access to a doc page for
|
||||
Once you are familiar with LAMMPS, you may want to bookmark :doc:`this page <Commands_all>` since it gives quick access to a doc page for
|
||||
every LAMMPS command.
|
||||
|
||||
.. _lws: https://lammps.sandia.gov
|
||||
|
||||
.. _user_documentation:
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:numbered: 3
|
||||
|
||||
@ -1,60 +1,62 @@
|
||||
Building the LAMMPS manual
|
||||
**************************
|
||||
|
||||
Depending on how you obtained LAMMPS, the doc directory has up
|
||||
to 6 sub-directories, 2 Nroff files, and optionally 2 PDF files
|
||||
plus 2 e-book format files:
|
||||
Depending on how you obtained LAMMPS and whether you have built the
|
||||
manual yourself, this directory has a number of sub-directories and
|
||||
files. Here is a list with descriptions:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
src # content files for LAMMPS documentation
|
||||
html # HTML version of the LAMMPS manual (see html/Manual.html)
|
||||
utils # tools and settings for building the documentation
|
||||
docenv # virtualenv for processing the manual sources
|
||||
doctrees # temporary data from processing the manual
|
||||
mathjax # code and fonts for rendering math in html
|
||||
Manual.pdf # large PDF version of entire manual
|
||||
Developer.pdf # small PDF with info about how LAMMPS is structured
|
||||
LAMMPS.epub # Manual in ePUB e-book format
|
||||
LAMMPS.mobi # Manual in MOBI e-book format
|
||||
lammps.1 # man page for the lammps command
|
||||
msi2lmp.1 # man page for the msi2lmp command
|
||||
README # brief info about the documentation
|
||||
src # content files for LAMMPS documentation
|
||||
html # HTML version of the LAMMPS manual (see html/Manual.html)
|
||||
utils # tools and settings for building the documentation
|
||||
lammps.1 # man page for the lammps command
|
||||
msi2lmp.1 # man page for the msi2lmp command
|
||||
Manual.pdf # large PDF version of entire manual
|
||||
Developer.pdf # small PDF with info about how LAMMPS is structured
|
||||
LAMMPS.epub # Manual in ePUB e-book format
|
||||
LAMMPS.mobi # Manual in MOBI e-book format
|
||||
docenv # virtualenv folder for processing the manual sources
|
||||
doctrees # temporary data from processing the manual
|
||||
mathjax # code and fonts for rendering math in html
|
||||
doxygen # doxygen configuration and output
|
||||
.gitignore # list of files and folders to be ignored by git
|
||||
doxygen-warn.log # logfile with warnings from running doxygen
|
||||
github-development-workflow.md # notes on the LAMMPS development workflow
|
||||
include-file-conventions.md # notes on LAMMPS' include file conventions
|
||||
|
||||
If you downloaded LAMMPS as a tarball from the web site, the html folder
|
||||
and the PDF files should be included.
|
||||
If you downloaded LAMMPS as a tarball from `the LAMMPS website <lws_>`_,
|
||||
the html folder and the PDF files should be included.
|
||||
|
||||
If you downloaded LAMMPS from the public git repository, then the HTML
|
||||
and PDF files are not included. Instead you need to create them, in one
|
||||
of two ways:
|
||||
|
||||
a. You can "fetch" the current HTML and PDF files from the LAMMPS web
|
||||
site. Just type "make fetch". This should download a html_www
|
||||
site. Just type ``make fetch``. This should download a html_www
|
||||
directory and Manual_www.pdf/Developer_www.pdf files. Note that if
|
||||
new LAMMPS features have been added more recently than the date of
|
||||
your LAMMPS version, the fetched documentation will include those
|
||||
changes (but your source code will not, unless you update your local
|
||||
repository).
|
||||
|
||||
b. You can build the HTML or PDF files yourself, by typing "make html"
|
||||
or "make pdf". This requires various tools including Sphinx, git,
|
||||
and the MathJax javascript library, which the build process will attempt
|
||||
to download automatically into a virtual environment in the folder
|
||||
doc/docenv and the folder mathjax, respectively, if not already available.
|
||||
This download is required only once, unless you type "make clean-all".
|
||||
After that, viewing and processing of the documentation can be done
|
||||
without internet access. To generate the PDF version of the manual,
|
||||
the PDFLaTeX software and several LaTeX packages are required as well.
|
||||
However, those cannot be installed automatically at the moment.
|
||||
b. You can build the HTML or PDF files yourself, by typing ``make html``
|
||||
or ``make pdf``. This requires various tools and files. Some of them
|
||||
have to be installed (more on that below). For the rest the build
|
||||
process will attempt to download and install them into a python
|
||||
virtual environment and local folders. This download is required
|
||||
only once, unless you type ``make clean-all``. After that, viewing and
|
||||
processing of the documentation can be done without internet access.
|
||||
|
||||
----------
|
||||
|
||||
The generation of all documentation is managed by the Makefile in
|
||||
the doc directory.
|
||||
The generation of all documentation is managed by the Makefile in the
|
||||
doc directory. The following documentation related make commands are
|
||||
available:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
Documentation Build Options:
|
||||
|
||||
make html # generate HTML in html dir using Sphinx
|
||||
make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf)
|
||||
# in doc dir via htmldoc and pdflatex
|
||||
@ -62,8 +64,10 @@ the doc directory.
|
||||
# as a tarball and unpack into html dir and 2 PDFs
|
||||
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
||||
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
|
||||
|
||||
make clean # remove intermediate RST files created by HTML build
|
||||
make clean-all # remove entire build folder and any cached data
|
||||
|
||||
make anchor_check # check for duplicate anchor labels
|
||||
make style_check # check for complete and consistent style lists
|
||||
make package_check # check for complete and consistent package lists
|
||||
@ -74,29 +78,30 @@ the doc directory.
|
||||
Installing prerequisites for HTML build
|
||||
=======================================
|
||||
|
||||
To run the HTML documentation build toolchain, Python 3 and virtualenv
|
||||
have to be installed. Here are instructions for common setups:
|
||||
To run the HTML documentation build toolchain, python 3, git, doxygen,
|
||||
and virtualenv have to be installed locally. Here are instructions for
|
||||
common setups:
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt-get install python-virtualenv
|
||||
sudo apt-get install python-virtualenv git doxygen
|
||||
|
||||
Fedora (up to version 21) and Red Hat Enterprise Linux or CentOS (up to version 7.x)
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo yum install python3-virtualenv
|
||||
sudo yum install python3-virtualenv git doxygen
|
||||
|
||||
Fedora (since version 22)
|
||||
-------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo dnf install python3-virtualenv
|
||||
sudo dnf install python3-virtualenv git doxygen
|
||||
|
||||
MacOS X
|
||||
-------
|
||||
@ -120,22 +125,92 @@ Once Python 3 is installed, open a Terminal and type
|
||||
|
||||
This will install virtualenv from the Python Package Index.
|
||||
|
||||
----------
|
||||
Installing prerequisites for PDF build
|
||||
======================================
|
||||
|
||||
Installing prerequisites for epub build
|
||||
=======================================
|
||||
In addition to the tools needed for building the HTML format manual,
|
||||
a working LaTeX installation with support for PDFLaTeX and a selection
|
||||
of LaTeX styles/packages are required.
|
||||
|
||||
ePUB
|
||||
----
|
||||
Installing prerequisites for e-book reader builds
|
||||
=================================================
|
||||
|
||||
Same as for HTML. This uses mostly the same tools and configuration
|
||||
files as the HTML tree. In addition it uses LaTeX to convert embedded
|
||||
In addition to the tools needed for building the HTML format manual,
|
||||
a working LaTeX installation with a few add-on LaTeX packages
|
||||
as well as the ``dvipng`` tool are required to convert embedded
|
||||
math expressions transparently into embedded images.
|
||||
|
||||
For converting the generated ePUB file to a MOBI format file
|
||||
(for e-book readers, like Kindle, that cannot read ePUB), you
|
||||
also need to have the 'ebook-convert' tool from the "calibre"
|
||||
software installed. `http://calibre-ebook.com/ <http://calibre-ebook.com/>`_
|
||||
You first create the ePUB file and then convert it with 'make mobi'
|
||||
On the Kindle readers in particular, you also have support for
|
||||
PDF files, so you could download and view the PDF version as an alternative.
|
||||
For converting the generated ePUB file to a MOBI format file (for e-book
|
||||
readers, like Kindle, that cannot read ePUB), you also need to have the
|
||||
``ebook-convert`` tool from the "calibre" software
|
||||
installed. `http://calibre-ebook.com/ <http://calibre-ebook.com/>`_
|
||||
Typing ``make mobi`` will first create the ePUB file and then convert
|
||||
it. On the Kindle readers in particular, you also have support for PDF
|
||||
files, so you could download and view the PDF version as an alternative.
|
||||
|
||||
|
||||
Instructions for Developers
|
||||
===========================
|
||||
|
||||
When adding new styles or options to the LAMMPS code, corresponding
|
||||
documentation is required and either existing files in the ``src``
|
||||
folder need to be updated or new files added. These files are written
|
||||
in `reStructuredText <rst_>`_ markup for translation with the Sphinx tool.
|
||||
|
||||
Before contributing any documentation, please check that both the HTML
|
||||
and the PDF format documentation can translate without errors. Please also
|
||||
check the output to the console for any warnings or problems. There will
|
||||
be multiple tests run automatically:
|
||||
|
||||
- A test for correctness of all anchor labels and their references
|
||||
|
||||
- A test that all LAMMPS packages (= folders with sources in
|
||||
``lammps/src``) are documented and listed. A typical warning shows
|
||||
the name of the folder with the suspected new package code and the
|
||||
documentation files where they need to be listed:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
Found 33 standard and 41 user packages
|
||||
Standard package NEWPACKAGE missing in Packages_standard.rst
|
||||
Standard package NEWPACKAGE missing in Packages_details.rst
|
||||
|
||||
- A test that only standard, printable ASCII text characters are used.
|
||||
This runs the command ``env LC_ALL=C grep -n '[^ -~]' src/*.rst`` and
|
||||
thus prints all offending lines with filename and line number
|
||||
prepended to the screen. Special characters like the Angstrom
|
||||
:math:`\mathrm{\mathring{A}}` should be typeset with embedded math
|
||||
(like this ``:math:`\mathrm{\mathring{A}}```\ ).
|
||||
|
||||
- A test whether all styles are documented and listed in their
|
||||
respective overview pages. A typical output with warnings looks like this:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
Parsed style names w/o suffixes from C++ tree in ../src:
|
||||
Angle styles: 21 Atom styles: 24
|
||||
Body styles: 3 Bond styles: 17
|
||||
Command styles: 41 Compute styles: 143
|
||||
Dihedral styles: 16 Dump styles: 26
|
||||
Fix styles: 223 Improper styles: 13
|
||||
Integrate styles: 4 Kspace styles: 15
|
||||
Minimize styles: 9 Pair styles: 234
|
||||
Reader styles: 4 Region styles: 8
|
||||
Compute style entry newcomp is missing or incomplete in Commands_compute.rst
|
||||
Compute style entry newcomp is missing or incomplete in compute.rst
|
||||
Fix style entry newfix is missing or incomplete in Commands_fix.rst
|
||||
Fix style entry newfix is missing or incomplete in fix.rst
|
||||
Pair style entry new is missing or incomplete in Commands_pair.rst
|
||||
Pair style entry new is missing or incomplete in pair_style.rst
|
||||
Found 6 issue(s) with style lists
|
||||
|
||||
|
||||
In addition, there is the option to run a spellcheck on the entire
|
||||
manual with ``make spelling``. This requires `a library called enchant
|
||||
<https://github.com/AbiWord/enchant>`_. To avoid printing out *false
|
||||
positives* (e.g. keywords, names, abbreviations) those can be added to
|
||||
the file ``lammps/doc/utils/sphinx-config/false_positives.txt``.
|
||||
|
||||
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
|
||||
|
||||
.. _lws: https://lammps.sandia.gov
|
||||
|
||||
@ -27,7 +27,7 @@ derived class. See fix.h for details.
|
||||
+---------------------------+--------------------------------------------------------------------------------------------+
|
||||
| setup_pre_force | called before force computation in setup (optional) |
|
||||
+---------------------------+--------------------------------------------------------------------------------------------+
|
||||
| setup | called immediately before the 1st timestep and after forces are computed (optional) |
|
||||
| setup | called immediately before the first timestep and after forces are computed (optional) |
|
||||
+---------------------------+--------------------------------------------------------------------------------------------+
|
||||
| min_setup_pre_force | like setup_pre_force, but for minimizations instead of MD runs (optional) |
|
||||
+---------------------------+--------------------------------------------------------------------------------------------+
|
||||
|
||||
@ -10,12 +10,12 @@ Ewald.cpp is an example of computing K-space interactions.
|
||||
Here is a brief description of methods you define in your new derived
|
||||
class. See kspace.h for details.
|
||||
|
||||
+---------------+----------------------------------------------+
|
||||
| init | initialize the calculation before a run |
|
||||
+---------------+----------------------------------------------+
|
||||
| setup | computation before the 1st timestep of a run |
|
||||
+---------------+----------------------------------------------+
|
||||
| compute | every-timestep computation |
|
||||
+---------------+----------------------------------------------+
|
||||
| memory_usage | tally of memory usage |
|
||||
+---------------+----------------------------------------------+
|
||||
+---------------+------------------------------------------------+
|
||||
| init | initialize the calculation before a run |
|
||||
+---------------+------------------------------------------------+
|
||||
| setup | computation before the first timestep of a run |
|
||||
+---------------+------------------------------------------------+
|
||||
| compute | every-timestep computation |
|
||||
+---------------+------------------------------------------------+
|
||||
| memory_usage | tally of memory usage |
|
||||
+---------------+------------------------------------------------+
|
||||
|
||||
@ -81,6 +81,7 @@ page gives those details.
|
||||
* :ref:`USER-MANIFOLD <PKG-USER-MANIFOLD>`
|
||||
* :ref:`USER-MEAMC <PKG-USER-MEAMC>`
|
||||
* :ref:`USER-MESODPD <PKG-USER-MESODPD>`
|
||||
* :ref:`USER-MESONT <PKG-USER-MESONT>`
|
||||
* :ref:`USER-MGPT <PKG-USER-MGPT>`
|
||||
* :ref:`USER-MISC <PKG-USER-MISC>`
|
||||
* :ref:`USER-MOFFF <PKG-USER-MOFFF>`
|
||||
@ -489,7 +490,7 @@ interactions. These include Ewald, particle-particle particle-mesh
|
||||
|
||||
Building with this package requires a 1d FFT library be present on
|
||||
your system for use by the PPPM solvers. This can be the KISS FFT
|
||||
library provided with LAMMPS, 3rd party libraries like FFTW, or a
|
||||
library provided with LAMMPS, third party libraries like FFTW, or a
|
||||
vendor-supplied FFT library. See the :doc:`Build settings <Build_settings>` doc page for details on how to select
|
||||
different FFT options for your LAMPMS build.
|
||||
|
||||
@ -1712,6 +1713,56 @@ algorithm.
|
||||
* examples/USER/mesodpd
|
||||
* https://lammps.sandia.gov/movies.html#mesodpd
|
||||
|
||||
* examples/USER/meso
|
||||
* http://lammps.sandia.gov/movies.html#mesodpd
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-MESONT:
|
||||
|
||||
USER-MESONT package
|
||||
-------------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
USER-MESONT is a LAMMPS package for simulation of nanomechanics of
|
||||
nanotubes (NTs). The model is based on a coarse-grained representation
|
||||
of NTs as "flexible cylinders" consisting of a variable number of
|
||||
segments. Internal interactions within a NT and the van der Waals
|
||||
interaction between the tubes are described by a mesoscopic force field
|
||||
designed and parameterized based on the results of atomic-level
|
||||
molecular dynamics simulations. The description of the force field is
|
||||
provided in the papers listed below. This package contains two
|
||||
independent implementations of this model: :doc:`pair_style mesocnt
|
||||
<pair_mesocnt>` is a (minimal) C++ implementation, and :doc:`pair_style
|
||||
mesont/tpm <pair_mesont_tpm>` is a more general and feature rich
|
||||
implementation based on a Fortran library in the ``lib/mesont`` folder.
|
||||
|
||||
**Download of potential files:**
|
||||
|
||||
The potential files for these pair styles are *very* large and thus
|
||||
are not included in the regular downloaded packages of LAMMPS or the
|
||||
git repositories. Instead, they will be automatically downloaded
|
||||
from a web server when the package is installed for the first time.
|
||||
|
||||
**Authors of the *mesont* styles:**
|
||||
|
||||
Maxim V. Shugaev (University of Virginia), Alexey N. Volkov (University of Alabama), Leonid V. Zhigilei (University of Virginia)
|
||||
|
||||
**Author of the *mesocnt* pair style:**
|
||||
Philipp Kloza (U Cambridge)
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/USER-MESONT: filenames -> commands
|
||||
* src/USER-MESONT/README
|
||||
* :doc:`atom_style mesont <atom_style>`
|
||||
* :doc:`pair_style mesont/tpm <pair_mesont_tpm>`
|
||||
* :doc:`compute mesont <compute_mesont>`
|
||||
* :doc:`pair_style mesocnt <pair_mesocnt>`
|
||||
* examples/USER/mesont
|
||||
* tools/mesont
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-USER-MOFFF:
|
||||
|
||||
@ -67,6 +67,8 @@ package:
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-MESODPD <PKG-USER-MESODPD>` | mesoscale DPD models | :doc:`pair_style edpd <pair_mesodpd>` | USER/mesodpd | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-MESONT <PKG-USER-MESONT>` | mesoscopic tubular potential model for nanotubes | pair style :doc:`mesont/tpm <pair_mesont_tpm>`, :doc:`mesocnt <pair_mesocnt>` | USER/mesont | int |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-MGPT <PKG-USER-MGPT>` | fast MGPT multi-ion potentials | :doc:`pair_style mgpt <pair_mgpt>` | USER/mgpt | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||
| :ref:`USER-MISC <PKG-USER-MISC>` | single-file contributions | USER-MISC/README | USER/misc | no |
|
||||
|
||||
@ -254,12 +254,3 @@ following steps:
|
||||
* You should now be able to invoke the new interface function from a
|
||||
Python script.
|
||||
|
||||
----------
|
||||
|
||||
.. autoclass:: lammps.lammps
|
||||
:members:
|
||||
:no-undoc-members:
|
||||
|
||||
.. autoclass:: lammps.NeighList
|
||||
:members:
|
||||
:no-undoc-members:
|
||||
|
||||
@ -10,7 +10,7 @@ and type:
|
||||
>>> lmp = lammps()
|
||||
|
||||
If you get no errors, you're ready to use LAMMPS from Python. If the
|
||||
2nd command fails, the most common error to see is
|
||||
second command fails, the most common error to see is
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -324,17 +324,17 @@ physical processors is done by MPI before LAMMPS begins. It may be
|
||||
useful in some cases to alter the rank order. E.g. to insure that
|
||||
cores within each node are ranked in a desired order. Or when using
|
||||
the :doc:`run_style verlet/split <run_style>` command with 2 partitions
|
||||
to insure that a specific Kspace processor (in the 2nd partition) is
|
||||
matched up with a specific set of processors in the 1st partition.
|
||||
to insure that a specific Kspace processor (in the second partition) is
|
||||
matched up with a specific set of processors in the first partition.
|
||||
See the :doc:`Speed tips <Speed_tips>` doc page for more details.
|
||||
|
||||
If the keyword *nth* is used with a setting *N*\ , then it means every
|
||||
Nth processor will be moved to the end of the ranking. This is useful
|
||||
when using the :doc:`run_style verlet/split <run_style>` command with 2
|
||||
partitions via the -partition command-line switch. The first set of
|
||||
processors will be in the first partition, the 2nd set in the 2nd
|
||||
processors will be in the first partition, the second set in the second
|
||||
partition. The -reorder command-line switch can alter this so that
|
||||
the 1st N procs in the 1st partition and one proc in the 2nd partition
|
||||
the first N procs in the first partition and one proc in the second partition
|
||||
will be ordered consecutively, e.g. as the cores on one physical node.
|
||||
This can boost performance. For example, if you use "-reorder nth 4"
|
||||
and "-partition 9 3" and you are running on 12 processors, the
|
||||
|
||||
@ -37,7 +37,7 @@ The *charmm* angle style uses the potential
|
||||
E = K (\theta - \theta_0)^2 + K_{ub} (r - r_{ub})^2
|
||||
|
||||
with an additional Urey_Bradley term based on the distance :math:`r` between
|
||||
the 1st and 3rd atoms in the angle. :math:`K`, :math:`\theta_0`,
|
||||
the first and third atoms in the angle. :math:`K`, :math:`\theta_0`,
|
||||
:math:`K_{ub}`, and :math:`R_{ub}` are coefficients defined for each angle
|
||||
type.
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Angle coefficients can also be set in the data file read by the
|
||||
:doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the 1st example above. Or a wild-card asterisk can be
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple angle types. This takes the
|
||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of angle types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
@ -53,7 +53,7 @@ same format as the arguments of the :doc:`angle_coeff <angle_coeff>` command in
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Angle Coeffs" section of a data file, the line that
|
||||
corresponds to the 1st example above would be listed as
|
||||
corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ parenthesized comments):
|
||||
...
|
||||
181 180.0 0.0 0.0
|
||||
|
||||
A section begins with a non-blank line whose 1st character is not a
|
||||
A section begins with a non-blank line whose first character is not a
|
||||
"#"; blank lines or lines starting with "#" can be used as comments
|
||||
between sections. The first line begins with a keyword which
|
||||
identifies the section. The line can contain additional text, but the
|
||||
@ -99,7 +99,7 @@ is in the tabulated file (with effectively no preliminary
|
||||
interpolation), you should set Ntable = Nfile.
|
||||
|
||||
The "FP" parameter is optional. If used, it is followed by two values
|
||||
fplo and fphi, which are the 2nd derivatives at the innermost and
|
||||
fplo and fphi, which are the second derivatives at the innermost and
|
||||
outermost angle settings. These values are needed by the spline
|
||||
construction routines. If not specified by the "FP" parameter, they
|
||||
are estimated (less accurately) by the first two and last two
|
||||
@ -110,9 +110,9 @@ equilibrium angle value, which is used, for example, by the :doc:`fix shake <fix
|
||||
set to 180.0.
|
||||
|
||||
Following a blank line, the next N lines list the tabulated values.
|
||||
On each line, the 1st value is the index from 1 to N, the 2nd value is
|
||||
the angle value (in degrees), the 3rd value is the energy (in energy
|
||||
units), and the 4th is -dE/d(theta) (also in energy units). The 3rd
|
||||
On each line, the first value is the index from 1 to N, the second value is
|
||||
the angle value (in degrees), the third value is the energy (in energy
|
||||
units), and the fourth is -dE/d(theta) (also in energy units). The third
|
||||
term is the energy of the 3-atom configuration for the specified
|
||||
angle. The last term is the derivative of the energy with respect to
|
||||
the angle (in degrees, not radians). Thus the units of the last term
|
||||
|
||||
@ -15,7 +15,7 @@ Syntax
|
||||
fix_modify AtC control momentum glc_velocity
|
||||
fix_modify AtC control momentum hoover
|
||||
fix_modify AtC control momentum flux [faceset face_set_id, interpolate]
|
||||
|
||||
|
||||
* AtC fixID = ID of :doc:`fix atc <fix_atc>` instance
|
||||
* control = name of the AtC sub-command
|
||||
* physics_type = *thermal* or *momentum*
|
||||
@ -52,7 +52,7 @@ the finite element temperature. *flux* is a similar mode, but rather
|
||||
adds energy to the atoms based on conservation of energy.
|
||||
|
||||
*correction_max_iterations* sets the maximum number of iterations to
|
||||
compute the 2nd order in time correction term for lambda with the
|
||||
compute the second order in time correction term for lambda with the
|
||||
fractional step method. The method uses the same tolerance as the
|
||||
controller's matrix solver.
|
||||
|
||||
|
||||
@ -56,7 +56,7 @@ adds energy to the atoms based on conservation of energy. *hoover* and
|
||||
atoms.
|
||||
|
||||
*correction_max_iterations* sets the maximum number of iterations to
|
||||
compute the 2nd order in time correction term for lambda with the
|
||||
compute the second order in time correction term for lambda with the
|
||||
fractional step method. The method uses the same tolerance as the
|
||||
controller's matrix solver.
|
||||
|
||||
|
||||
@ -25,8 +25,8 @@ Syntax
|
||||
- temperature : temperature derived from the relative atomic kinetic energy
|
||||
- kinetic_temperature : temperature derived from the full kinetic energy
|
||||
- number_density : simple kernel estimation of number of atoms per unit volume
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or 1st Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : 1st Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian
|
||||
- potential_energy : potential energy per unit volume
|
||||
- kinetic_energy : kinetic energy per unit volume
|
||||
@ -37,7 +37,7 @@ Syntax
|
||||
- eshelby_stress : configurational stress (energy-momentum) tensor defined by [Eshelby]_
|
||||
- vacancy_concentration : volume fraction of vacancy content
|
||||
- type_concentration : volume fraction of a specific atom type
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
|
||||
@ -23,8 +23,8 @@ Syntax
|
||||
- temperature : temperature derived from the relative atomic kinetic energy
|
||||
- kinetic_temperature : temperature derived from the full kinetic energy
|
||||
- number_density : simple kernel estimation of number of atoms per unit volume
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or 1st Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : 1st Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian
|
||||
- potential_energy : potential energy per unit volume
|
||||
- kinetic_energy : kinetic energy per unit volume
|
||||
|
||||
@ -25,7 +25,7 @@ Syntax
|
||||
- *quartic_bar* : <half_width>
|
||||
- *quartic_cylinder* : <radius>
|
||||
- *quartic_sphere* : <radius>
|
||||
|
||||
|
||||
|
||||
|
||||
Examples
|
||||
|
||||
@ -23,8 +23,8 @@ Syntax
|
||||
- temperature : temperature derived from the relative atomic kinetic energy
|
||||
- kinetic_temperature : temperature derived from the full kinetic energy
|
||||
- number_density : simple kernel estimation of number of atoms per unit volume
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or 1st Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : 1st Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis
|
||||
- transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis
|
||||
- heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian
|
||||
- potential_energy : potential energy per unit volume
|
||||
- kinetic_energy : kinetic energy per unit volume
|
||||
|
||||
@ -38,7 +38,7 @@ Related AtC commands
|
||||
- :doc:`fix_modify AtC add_species <atc_add_species>`
|
||||
- :doc:`fix_modify AtC add_molecule <atc_add_molecule>`
|
||||
- :doc:`fix_modify AtC remove_molecule <atc_remove_molecule>`
|
||||
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Examples
|
||||
|
||||
fix_modify AtC set reference_potential_energy
|
||||
fix_modify AtC set reference_potential_energy -0.05
|
||||
fix_modify AtC set reference_potential_energy myPEvalues
|
||||
fix_modify AtC set reference_potential_energy myPEvalues
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -33,11 +33,11 @@ Command to select the thermal or momentum time integration.
|
||||
Options for thermal time integration:
|
||||
|
||||
*gear*
|
||||
atomic velocity update with 2nd order Verlet, nodal temperature update
|
||||
with 3rd or 4th order Gear, thermostats based on controlling power
|
||||
atomic velocity update with second order Verlet, nodal temperature update
|
||||
with third or fourth order Gear, thermostats based on controlling power
|
||||
|
||||
*fractional_step*
|
||||
atomic velocity update with 2nd order Verlet, mixed nodal temperature
|
||||
atomic velocity update with second order Verlet, mixed nodal temperature
|
||||
update, 3/4 Gear for continuum and 2 Verlet for atomic contributions,
|
||||
thermostats based on controlling discrete energy changes
|
||||
|
||||
@ -46,18 +46,18 @@ Options for thermal time integration:
|
||||
Options for momentum time integration:
|
||||
|
||||
*verlet*
|
||||
atomic velocity update with 2nd order Verlet, nodal temperature update
|
||||
with 2nd order Verlet, kinetostats based on controlling force
|
||||
atomic velocity update with second order Verlet, nodal temperature update
|
||||
with second order Verlet, kinetostats based on controlling force
|
||||
|
||||
*fractional_step*
|
||||
atomic velocity update with 2nd order Verlet, mixed nodal momentum
|
||||
update, 2nd order Verlet for continuum and exact 2nd order Verlet for
|
||||
atomic velocity update with second order Verlet, mixed nodal momentum
|
||||
update, second order Verlet for continuum and exact second order Verlet for
|
||||
atomic contributions, kinetostats based on controlling discrete
|
||||
momentum changes
|
||||
|
||||
*gear*
|
||||
atomic velocity update with 2nd order Verlet, nodal temperature update
|
||||
with 3rd or 4th order Gear, kinetostats based on controlling power.
|
||||
atomic velocity update with second order Verlet, nodal temperature update
|
||||
with third or fourth order Gear, kinetostats based on controlling power.
|
||||
|
||||
---------
|
||||
|
||||
|
||||
@ -103,6 +103,8 @@ quantities.
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *mdpd* | density | mDPD particles |
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *mesont* | mass, radius, length, buckling, connections, tube id| mesoscopic nanotubes |
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *molecular* | bonds, angles, dihedrals, impropers | uncharged molecules |
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *peri* | mass, volume | mesoscopic Peridynamic models |
|
||||
@ -347,6 +349,8 @@ dynamics (tDPD), respectively.
|
||||
The *sph* style is part of the USER-SPH package for smoothed particle
|
||||
hydrodynamics (SPH). See `this PDF guide <USER/sph/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
|
||||
|
||||
The *mesont* style is part of the USER-MESONT package.
|
||||
|
||||
The *spin* style is part of the SPIN package.
|
||||
|
||||
The *wavepacket* style is part of the USER-AWPMD package for the
|
||||
|
||||
@ -32,7 +32,7 @@ Bond coefficients can also be set in the data file read by the
|
||||
:doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the 1st example above. Or a wild-card asterisk can be
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple bond types. This takes the
|
||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of bond types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
@ -54,7 +54,7 @@ same format as the arguments of the bond_coeff command in an input
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Bond Coeffs" section of a data file, the line that
|
||||
corresponds to the 1st example above would be listed as
|
||||
corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -38,8 +38,8 @@ The *fene* bond style uses the potential
|
||||
|
||||
to define a finite extensible nonlinear elastic (FENE) potential
|
||||
:ref:`(Kremer) <fene-Kremer>`, used for bead-spring polymer models. The first
|
||||
term is attractive, the 2nd Lennard-Jones term is repulsive. The
|
||||
first term extends to :math:`R_0`, the maximum extent of the bond. The 2nd
|
||||
term is attractive, the second Lennard-Jones term is repulsive. The
|
||||
first term extends to :math:`R_0`, the maximum extent of the bond. The second
|
||||
term is cutoff at :math:`2^\frac{1}{6} \sigma`, the minimum of the LJ potential.
|
||||
|
||||
The following coefficients must be defined for each bond type via the
|
||||
|
||||
@ -32,12 +32,12 @@ The *fene/expand* bond style uses the potential
|
||||
|
||||
to define a finite extensible nonlinear elastic (FENE) potential
|
||||
:ref:`(Kremer) <feneexpand-Kremer>`, used for bead-spring polymer models. The first
|
||||
term is attractive, the 2nd Lennard-Jones term is repulsive.
|
||||
term is attractive, the second Lennard-Jones term is repulsive.
|
||||
|
||||
The *fene/expand* bond style is similar to *fene* except that an extra
|
||||
shift factor of :math:`\Delta` (positive or negative) is added to :math:`r` to
|
||||
effectively change the bead size of the bonded atoms. The first term
|
||||
now extends to :math:`R_0 + \Delta` and the 2nd term is cutoff at :math:`2^\frac{1}{6} \sigma + \Delta`.
|
||||
now extends to :math:`R_0 + \Delta` and the second term is cutoff at :math:`2^\frac{1}{6} \sigma + \Delta`.
|
||||
|
||||
The following coefficients must be defined for each bond type via the
|
||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||
|
||||
@ -74,7 +74,7 @@ parenthesized comments):
|
||||
...
|
||||
101 1.00 338.0000 -1352.0000
|
||||
|
||||
A section begins with a non-blank line whose 1st character is not a
|
||||
A section begins with a non-blank line whose first character is not a
|
||||
"#"; blank lines or lines starting with "#" can be used as comments
|
||||
between sections. The first line begins with a keyword which
|
||||
identifies the section. The line can contain additional text, but the
|
||||
@ -109,9 +109,9 @@ equilibrium bond length, which is used, for example, by the :doc:`fix shake <fix
|
||||
length is to the distance in the table with the lowest potential energy.
|
||||
|
||||
Following a blank line, the next N lines list the tabulated values.
|
||||
On each line, the 1st value is the index from 1 to N, the 2nd value is
|
||||
the bond length r (in distance units), the 3rd value is the energy (in
|
||||
energy units), and the 4th is the force (in force units). The bond
|
||||
On each line, the first value is the index from 1 to N, the second value is
|
||||
the bond length r (in distance units), the third value is the energy (in
|
||||
energy units), and the fourth is the force (in force units). The bond
|
||||
lengths must range from a LO value to a HI value, and increase from
|
||||
one line to the next. If the actual bond length is ever smaller than
|
||||
the LO value or larger than the HI value, then the calculation is
|
||||
|
||||
@ -47,7 +47,13 @@ The file is written in the format used as input for the
|
||||
:doc:`bond_style <bond_style>` *table* option with *keyword* as the
|
||||
section name. Each line written to the file lists an index number
|
||||
(1-N), a distance (in distance units), an energy (in energy units),
|
||||
and a force (in force units).
|
||||
and a force (in force units). In case a new file is created, the first
|
||||
line will be a comment with a "DATE:" and "UNITS:" tag with the current
|
||||
date and :doc:`units <units>` settings. For subsequent invocations of
|
||||
the bond_write command for the same file, data will be appended and the
|
||||
current units settings will be compared to the data from the header, if
|
||||
present, and bond_write will refuse to add a table if the units are not
|
||||
the same.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -76,9 +76,9 @@ atoms becomes less than 50.0. This can be useful if you start a
|
||||
simulation with an empty box or if you wish to leave room on one side
|
||||
of the box, e.g. for atoms to evaporate from a surface.
|
||||
|
||||
For triclinic (non-orthogonal) simulation boxes, if the 2nd dimension
|
||||
For triclinic (non-orthogonal) simulation boxes, if the second dimension
|
||||
of a tilt factor (e.g. y for xy) is periodic, then the periodicity is
|
||||
enforced with the tilt factor offset. If the 1st dimension is
|
||||
enforced with the tilt factor offset. If the first dimension is
|
||||
shrink-wrapped, then the shrink wrapping is applied to the tilted box
|
||||
face, to encompass the atoms. E.g. for a positive xy tilt, the xlo
|
||||
and xhi faces of the box are planes tilting in the +y direction as y
|
||||
|
||||
@ -38,7 +38,7 @@ skewed the triclinic box is; see the :doc:`Howto triclinic <Howto_triclinic>` do
|
||||
boxes in LAMMPS.
|
||||
|
||||
LAMMPS normally requires that no tilt factor can skew the box more
|
||||
than half the distance of the parallel box length, which is the 1st
|
||||
than half the distance of the parallel box length, which is the first
|
||||
dimension in the tilt factor (x for xz). If *tilt* is set to
|
||||
*small*\ , which is the default, then an error will be
|
||||
generated if a box is created which exceeds this limit. If *tilt*
|
||||
|
||||
@ -235,6 +235,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` doc
|
||||
* :doc:`pair/local <compute_pair_local>` - distance/energy/force of each pairwise interaction
|
||||
* :doc:`pe <compute_pe>` - potential energy
|
||||
* :doc:`pe/atom <compute_pe_atom>` - potential energy for each atom
|
||||
* :doc:`mesont <compute_mesont>` - Nanotube bending,stretching, and intertube energies
|
||||
* :doc:`pe/mol/tally <compute_tally>` -
|
||||
* :doc:`pe/tally <compute_tally>` -
|
||||
* :doc:`plasticity/atom <compute_plasticity_atom>` - Peridynamic plasticity for each atom
|
||||
|
||||
@ -82,9 +82,9 @@ neighbor atom in each requested ADF.
|
||||
is what is specified with the :doc:`neighbor <neighbor>` command.
|
||||
|
||||
The *itypeN*\ ,\ *jtypeN*\ ,\ *ktypeN* settings can be specified in one of two
|
||||
ways. An explicit numeric value can be used, as in the 1st example
|
||||
ways. An explicit numeric value can be used, as in the first example
|
||||
above. Or a wild-card asterisk can be used to specify a range of atom
|
||||
types as in the 2nd example above.
|
||||
types as in the second example above.
|
||||
This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the
|
||||
number of atom types, then an asterisk with no numeric values means
|
||||
all types from 1 to N. A leading asterisk means all types from 1 to n
|
||||
@ -92,12 +92,12 @@ all types from 1 to N. A leading asterisk means all types from 1 to n
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
If *itypeN*\ , *jtypeN*\ , and *ktypeN* are single values, as in the 1st example
|
||||
If *itypeN*\ , *jtypeN*\ , and *ktypeN* are single values, as in the first example
|
||||
above, this means that the ADF is computed where atoms of type *itypeN*
|
||||
are the central atom, and neighbor atoms of type *jtypeN* and *ktypeN*
|
||||
are forming the angle. If any of *itypeN*\ , *jtypeN*\ , or *ktypeN*
|
||||
represent a range of values via
|
||||
the wild-card asterisk, as in the 2nd example above, this means that the
|
||||
the wild-card asterisk, as in the second example above, this means that the
|
||||
ADF is computed where atoms of any of the range of types represented
|
||||
by *itypeN* are the central atom, and the angle is formed by two neighbors,
|
||||
one neighbor in the range of types represented by *jtypeN* and another neighbor
|
||||
|
||||
@ -218,8 +218,8 @@ into ellipses.
|
||||
The created bins (and hence the chunk IDs) are numbered consecutively
|
||||
from 1 to the number of bins = *Nchunk*\ . For *bin2d* and *bin3d*\ , the
|
||||
numbering varies most rapidly in the first dimension (which could be
|
||||
x, y, or z), next rapidly in the 2nd dimension, and most slowly in the
|
||||
3rd dimension. For *bin/sphere*\ , the bin with smallest radii is chunk
|
||||
x, y, or z), next rapidly in the second dimension, and most slowly in the
|
||||
third dimension. For *bin/sphere*\ , the bin with smallest radii is chunk
|
||||
1 and the bni with largest radii is chunk Nchunk = *ncbin*\ . For
|
||||
*bin/cylinder*\ , the numbering varies most rapidly in the dimension
|
||||
along the cylinder axis and most slowly in the radial direction.
|
||||
@ -614,7 +614,7 @@ Note that for the *bin/sphere* style, the radii *srmin* and *srmax* are
|
||||
scaled by the lattice spacing or reduced value of the *x* dimension.
|
||||
|
||||
Note that for the *bin/cylinder* style, the radii *crmin* and *crmax*
|
||||
are scaled by the lattice spacing or reduced value of the 1st
|
||||
are scaled by the lattice spacing or reduced value of the first
|
||||
dimension perpendicular to the cylinder axis. E.g. y for an x-axis
|
||||
cylinder, x for a y-axis cylinder, and x for a z-axis cylinder.
|
||||
|
||||
|
||||
@ -63,7 +63,7 @@ keywords are listed, a single coordination number is calculated, which
|
||||
includes atoms of all types (same as the "\*" format, see below).
|
||||
|
||||
The *typeN* keywords can be specified in one of two ways. An explicit
|
||||
numeric value can be used, as in the 2nd example above. Or a
|
||||
numeric value can be used, as in the second example above. Or a
|
||||
wild-card asterisk can be used to specify a range of atom types. This
|
||||
takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of
|
||||
atom types, then an asterisk with no numeric values means all types
|
||||
|
||||
@ -36,7 +36,7 @@ all effects due to atoms passing through periodic boundaries.
|
||||
|
||||
A vector of four quantities per atom is calculated by this compute.
|
||||
The first 3 elements of the vector are the dx,dy,dz displacements.
|
||||
The 4th component is the total displacement, i.e. sqrt(dx\*dx + dy\*dy +
|
||||
The fourth component is the total displacement, i.e. sqrt(dx\*dx + dy\*dy +
|
||||
dz\*dz).
|
||||
|
||||
The displacement of an atom is from its original position at the time
|
||||
|
||||
@ -224,7 +224,7 @@ the pair\_\*.cpp file associated with the potential.
|
||||
|
||||
Similar to the :doc:`pair_coeff <pair_coeff>` command, I and J can be
|
||||
specified in one of two ways. Explicit numeric values can be used for
|
||||
each, as in the 1st example above. I <= J is required. LAMMPS sets
|
||||
each, as in the first example above. I <= J is required. LAMMPS sets
|
||||
the coefficients for the symmetric J,I interaction to the same
|
||||
values. A wild-card asterisk can be used in place of or in conjunction
|
||||
with the I,J arguments to set the coefficients for multiple pairs of
|
||||
|
||||
@ -64,7 +64,7 @@ If the *kspace* keyword is set to *yes*\ , which is not the default, and
|
||||
if a :doc:`kspace_style <kspace_style>` is defined, then the interaction
|
||||
energy will include a Kspace component which is the long-range
|
||||
Coulombic energy between all the atoms in the first group and all the
|
||||
atoms in the 2nd group. Likewise, the interaction force calculated by
|
||||
atoms in the second group. Likewise, the interaction force calculated by
|
||||
this compute will include the force on the compute group atoms due to
|
||||
long-range Coulombic interactions with atoms in the specified group2.
|
||||
|
||||
|
||||
56
doc/src/compute_mesont.rst
Normal file
56
doc/src/compute_mesont.rst
Normal file
@ -0,0 +1,56 @@
|
||||
.. index:: compute mesont
|
||||
|
||||
compute mesont command
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
compute ID group-ID mesont mode
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* mesont = style name of the compute command
|
||||
* mode = one of estretch, ebend, etube (see details below)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
compute 1 all mesont estretch
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
These computes define computations for the stretching (estretch), bending
|
||||
(ebend), and intertube (etube) per-node (atom) and total energies. The
|
||||
evaluated value is selected by a parameter passed to the compute: estretch,
|
||||
ebend, etube.
|
||||
|
||||
**Output info:**
|
||||
|
||||
These computes calculate per-node (per-atom) vectors, which can be accessed by
|
||||
any command that uses per-atom values from a compute as input, and global
|
||||
scalars. See the :doc:`Howto output <Howto_output>` doc page for an overview of
|
||||
LAMMPS output options.
|
||||
|
||||
The computed values are provided in energy :doc:`units <units>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
These computes are part of the USER-MESONT package. They are only enabled if
|
||||
LAMMPS is built with that package. See the :doc:`Build package <Build_package>`
|
||||
doc page for more info. In addition, :doc:`mesont pair_style <pair_style>`
|
||||
must be used.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`dump custom <dump>`
|
||||
|
||||
**Default:** none
|
||||
|
||||
@ -38,7 +38,7 @@ parameter of mean-squared displacement, see the :doc:`compute msd/nongauss <comp
|
||||
|
||||
A vector of four quantities is calculated by this compute. The first 3
|
||||
elements of the vector are the squared dx,dy,dz displacements, summed
|
||||
and averaged over atoms in the group. The 4th element is the total
|
||||
and averaged over atoms in the group. The fourth element is the total
|
||||
squared displacement, i.e. (dx\*dx + dy\*dy + dz\*dz), summed and
|
||||
averaged over atoms in the group.
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ they can be used to measure properties of a system.
|
||||
|
||||
Four quantities are calculated by this compute for each chunk. The
|
||||
first 3 quantities are the squared dx,dy,dz displacements of the
|
||||
center-of-mass. The 4th component is the total squared displacement,
|
||||
center-of-mass. The fourth component is the total squared displacement,
|
||||
i.e. (dx\*dx + dy\*dy + dz\*dz) of the center-of-mass. These
|
||||
calculations include all effects due to atoms passing through periodic
|
||||
boundaries.
|
||||
|
||||
@ -39,7 +39,7 @@ element of the vector is the total squared dx,dy,dz displacements
|
||||
drsquared = (dx\*dx + dy\*dy + dz\*dz) of atoms, and the second is the
|
||||
fourth power of these displacements drfourth = (dx\*dx + dy\*dy +
|
||||
dz\*dz)\*(dx\*dx + dy\*dy + dz\*dz), summed and averaged over atoms in the
|
||||
group. The 3rd component is the nonGaussian diffusion parameter NGP =
|
||||
group. The third component is the nonGaussian diffusion parameter NGP =
|
||||
3\*drfourth/(5\*drsquared\*drsquared), i.e.
|
||||
|
||||
.. math::
|
||||
@ -68,7 +68,7 @@ page for an overview of LAMMPS output options.
|
||||
|
||||
The vector values are "intensive". The first vector value will be in
|
||||
distance\^2 :doc:`units <units>`, the second is in distance\^4 units, and
|
||||
the 3rd is dimensionless.
|
||||
the third is dimensionless.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -30,6 +30,7 @@ Syntax
|
||||
corner2x, corner2y, corner2z,
|
||||
corner3x, corner3y, corner3z,
|
||||
nbonds,
|
||||
buckling,
|
||||
vfrac, s0,
|
||||
spin, eradius, ervel, erforce,
|
||||
rho, drho, e, de, cv,
|
||||
@ -63,6 +64,7 @@ Syntax
|
||||
end12x, end12y, end12z = end points of line segment
|
||||
corner123x, corner123y, corner123z = corner points of triangle
|
||||
nbonds = number of bonds assigned to an atom
|
||||
buckling = buckling flag used in mesoscopic simulation of nanotubes
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -63,7 +63,7 @@ chunkID. This means that the original chunk IDs (e.g. molecule IDs)
|
||||
will have been compressed to remove chunk IDs with no atoms assigned
|
||||
to them. Thus a compressed chunk ID of 3 may correspond to an original
|
||||
chunk ID (molecule ID in this case) of 415. The *id* attribute will
|
||||
then be 415 for the 3rd chunk.
|
||||
then be 415 for the third chunk.
|
||||
|
||||
The *coordN* attributes can only be used if a *binning* style was used
|
||||
in the :doc:`compute chunk/atom <compute_chunk_atom>` command referenced
|
||||
|
||||
@ -97,7 +97,7 @@ listed, then a separate histogram is generated for each
|
||||
*itype*\ ,\ *jtype* pair.
|
||||
|
||||
The *itypeN* and *jtypeN* settings can be specified in one of two
|
||||
ways. An explicit numeric value can be used, as in the 4th example
|
||||
ways. An explicit numeric value can be used, as in the fourth example
|
||||
above. Or a wild-card asterisk can be used to specify a range of atom
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the
|
||||
number of atom types, then an asterisk with no numeric values means
|
||||
@ -106,11 +106,11 @@ all types from 1 to N. A leading asterisk means all types from 1 to n
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
If both *itypeN* and *jtypeN* are single values, as in the 4th example
|
||||
If both *itypeN* and *jtypeN* are single values, as in the fourth example
|
||||
above, this means that a g(r) is computed where atoms of type *itypeN*
|
||||
are the central atom, and atoms of type *jtypeN* are the distribution
|
||||
atom. If either *itypeN* and *jtypeN* represent a range of values via
|
||||
the wild-card asterisk, as in the 5th example above, this means that a
|
||||
the wild-card asterisk, as in the fifth example above, this means that a
|
||||
g(r) is computed where atoms of any of the range of types represented
|
||||
by *itypeN* are the central atom, and atoms of any of the range of
|
||||
types represented by *jtypeN* are the distribution atom.
|
||||
|
||||
@ -49,7 +49,7 @@ respective group IDs, which can be defined using the
|
||||
must be the same and there should be one bond defined between a pair
|
||||
of atoms in the two groups. Non-polarized ions which might also be
|
||||
included in the treated system should not be included into either of
|
||||
these groups, they are taken into account by the *group-ID* (2nd
|
||||
these groups, they are taken into account by the *group-ID* (second
|
||||
argument) of the compute.
|
||||
|
||||
The temperature is calculated by the formula KE = dim/2 N k T, where
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user