Merge branch 'master' into lammps-icms

Resolve Conflicts:
	src/region.cpp
This commit is contained in:
Axel Kohlmeyer
2012-06-30 11:23:32 -04:00
241 changed files with 22861 additions and 2137 deletions

BIN
doc/Eqs/pair_bop.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

9
doc/Eqs/pair_bop.tex Normal file
View File

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=i_1}^{i_N} \phi_{ij} \left( r_{ij} \right) - \sum_{i=1}^{N} \sum_{j=i_1}^{i_N} \beta_{\sigma,ij} \left( r_{ij} \right) \cdot \Theta_{\sigma,ij} - \sum_{i=1}^{N} \sum_{j=i_1}^{i_N} \beta_{\pi,ij} \left( r_{ij} \right) \cdot \Theta_{\pi,ij} + U_{prom}
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

View File

@ -417,24 +417,24 @@ potentials. Click on the style itself for a full description:
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "pair_none.html">none</A></TD><TD ><A HREF = "pair_hybrid.html">hybrid</A></TD><TD ><A HREF = "pair_hybrid.html">hybrid/overlay</A></TD><TD ><A HREF = "pair_adp.html">adp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">airebo</A></TD><TD ><A HREF = "pair_beck.html">beck</A></TD><TD ><A HREF = "pair_born.html">born</A></TD><TD ><A HREF = "pair_born.html">born/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/wolf</A></TD><TD ><A HREF = "pair_brownian.html">brownian</A></TD><TD ><A HREF = "pair_brownian.html">brownian/poly</A></TD><TD ><A HREF = "pair_buck.html">buck</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/cut</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long</A></TD><TD ><A HREF = "pair_colloid.html">colloid</A></TD><TD ><A HREF = "pair_comb.html">comb</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/cut</A></TD><TD ><A HREF = "pair_coul.html">coul/debye</A></TD><TD ><A HREF = "pair_coul.html">coul/long</A></TD><TD ><A HREF = "pair_coul.html">coul/wolf</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dipole.html">dipole/cut</A></TD><TD ><A HREF = "pair_dpd.html">dpd</A></TD><TD ><A HREF = "pair_dpd.html">dpd/tstat</A></TD><TD ><A HREF = "pair_dsmc.html">dsmc</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy</A></TD><TD ><A HREF = "pair_eam.html">eam/fs</A></TD><TD ><A HREF = "pair_eim.html">eim</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gauss.html">gauss</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne</A></TD><TD ><A HREF = "pair_gran.html">gran/hertz/history</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hooke/history</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse</A></TD><TD ><A HREF = "pair_kim.html">kim</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lcbop.html">lcbop</A></TD><TD ><A HREF = "pair_line_lj.html">line/lj</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_class2.html">lj/class2</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/tip4p</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_smooth.html">lj/smooth</A></TD><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lubricate.html">lubricate/poly</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU/poly</A></TD><TD ><A HREF = "pair_meam.html">meam</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse</A></TD><TD ><A HREF = "pair_peri.html">peri/lps</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb</A></TD><TD ><A HREF = "pair_reax.html">reax</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">rebo</A></TD><TD ><A HREF = "pair_resquared.html">resquared</A></TD><TD ><A HREF = "pair_soft.html">soft</A></TD><TD ><A HREF = "pair_sw.html">sw</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_table.html">table</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl</A></TD><TD ><A HREF = "pair_tri_lj.html">tri/lj</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa.html">yukawa</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid</A>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">airebo</A></TD><TD ><A HREF = "pair_beck.html">beck</A></TD><TD ><A HREF = "pair_bop.html">bop</A></TD><TD ><A HREF = "pair_born.html">born</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/long</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf</A></TD><TD ><A HREF = "pair_brownian.html">brownian</A></TD><TD ><A HREF = "pair_brownian.html">brownian/poly</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long</A></TD><TD ><A HREF = "pair_colloid.html">colloid</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_comb.html">comb</A></TD><TD ><A HREF = "pair_coul.html">coul/cut</A></TD><TD ><A HREF = "pair_coul.html">coul/debye</A></TD><TD ><A HREF = "pair_coul.html">coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/wolf</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut</A></TD><TD ><A HREF = "pair_dpd.html">dpd</A></TD><TD ><A HREF = "pair_dpd.html">dpd/tstat</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dsmc.html">dsmc</A></TD><TD ><A HREF = "pair_eam.html">eam</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy</A></TD><TD ><A HREF = "pair_eam.html">eam/fs</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eim.html">eim</A></TD><TD ><A HREF = "pair_gauss.html">gauss</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne</A></TD><TD ><A HREF = "pair_gran.html">gran/hertz/history</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hooke</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/history</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_kim.html">kim</A></TD><TD ><A HREF = "pair_lcbop.html">lcbop</A></TD><TD ><A HREF = "pair_line_lj.html">line/lj</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_class2.html">lj/class2</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/tip4p</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth</A></TD><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lubricate.html">lubricate</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/poly</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU/poly</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_meam.html">meam</A></TD><TD ><A HREF = "pair_morse.html">morse</A></TD><TD ><A HREF = "pair_peri.html">peri/lps</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_reax.html">reax</A></TD><TD ><A HREF = "pair_airebo.html">rebo</A></TD><TD ><A HREF = "pair_resquared.html">resquared</A></TD><TD ><A HREF = "pair_soft.html">soft</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_sw.html">sw</A></TD><TD ><A HREF = "pair_table.html">table</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_tri_lj.html">tri/lj</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid</A>
</TD></TR></TABLE></DIV>
<P>These are pair styles contributed by users, which can be used if

View File

@ -627,6 +627,7 @@ potentials. Click on the style itself for a full description:
"adp"_pair_adp.html,
"airebo"_pair_airebo.html,
"beck"_pair_beck.html,
"bop"_pair_bop.html,
"born"_pair_born.html,
"born/coul/long"_pair_born.html,
"born/coul/wolf"_pair_born.html,

View File

@ -221,6 +221,12 @@ command.
<DD>All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation.
<DT><I>All read_dump x,y,z fields must be specified for scaled, triclinic coords</I>
<DD>For triclinic boxes and scaled coordinates you must specify all 3 of
the x,y,z fields, else LAMMPS cannot reconstruct the unscaled
coordinates.
<DT><I>All universe/uloop variables must have same # of values</I>
<DD>Self-explanatory.
@ -319,7 +325,7 @@ still being processed.
<DT><I>Append boundary must be shrink/minimum</I>
<DD>The boundary style of the face where atoms are added
must be of type m (shrink/minimum).
must be of type m (shrink/minimum).
<DT><I>Arccos of invalid value in variable formula</I>
@ -476,9 +482,11 @@ or create_box command.
<DD>The string can only contain the characters "x", "y", or "z".
<DT><I>Balance dynamic string is invalid for 2d simulation</I>
<DT><I>Balance produced bad splits</I>
<DD>The string cannot contain the letter "z".
<DD>This should not occur. It means two or more cutting plane locations
are on top of each other or out of order. Report the problem to the
developers.
<DT><I>Bias compute does not calculate a velocity bias</I>
@ -525,6 +533,12 @@ in file exactly.
<DD>Cannot use TIP4P pair potential unless bond and angle potentials
are defined.
<DT><I>Bond atom missing in box size check</I>
<DD>The 2nd atoms 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.
<DT><I>Bond atom missing in delete_bonds</I>
<DD>The delete_bonds command cannot find one or more atoms in a particular
@ -588,6 +602,15 @@ bond style quartic.
<DD>The values in the tabulated file must be monotonically increasing.
<DT><I>Bond/angle/dihedral extent > half of periodic box length</I>
<DD>This is a restriction because LAMMPS can be confused about which image
of an atom in the bonded interaction is the correct one to use.
"Extent" in this context means the maximum end-to-end length of the
bond/angle/dihedral. LAMMPS computes this by taking the maximum bond
length, multiplying by the number of bonds in the interaction (e.g. 3
for a dihedral) and adding a small amount of stretch.
<DT><I>Bond_coeff command before bond_style is defined</I>
<DD>Coefficients cannot be set in the data file or via the bond_coeff
@ -656,6 +679,14 @@ See the region prism command for details.
<DD>This is current restriction for NEB as implemented in LAMMPS.
<DT><I>Cannot (yet) use K-space slab correction with compute group/group</I>
<DD>This option is not yet supported.
<DT><I>Cannot (yet) use Kspace slab correction with compute group/group</I>
<DD>This option is not yet supported.
<DT><I>Cannot (yet) use PPPM with triclinic box</I>
<DD>This feature is not yet supported.
@ -830,6 +861,11 @@ path and name are correct.
<DD>The specified AIREBO potential file cannot be opened. Check that the
path and name are correct.
<DT><I>Cannot open BOP potential file %s</I>
<DD>The specified BOP potential file cannot be opened. Check that the
path and name are correct.
<DT><I>Cannot open COMB potential file %s</I>
<DD>The specified COMB potential file cannot be opened. Check that the
@ -845,6 +881,11 @@ path and name are correct.
<DD>The specified EIM potential file cannot be opened. Check that the
path and name are correct.
<DT><I>Cannot open LCBOP potential file %s</I>
<DD>The specified LCBOP potential file cannot be opened. Check that the
path and name are correct.
<DT><I>Cannot open MEAM potential file %s</I>
<DD>The specified MEAM potential file cannot be opened. Check that the
@ -862,8 +903,7 @@ path and name are correct.
<DT><I>Cannot open balance output file</I>
<DD>This error message can only occur if debug options
are uncommented in src/balance.cpp.
<DD>Self-explanatory.
<DT><I>Cannot open custom file</I>
@ -904,6 +944,10 @@ correct.
<DD>The specified file cannot be opened. Check that the path and name are
correct.
<DT><I>Cannot open fix balance output file</I>
<DD>Self-explanatory.
<DT><I>Cannot open fix poems file %s</I>
<DD>The specified file cannot be opened. Check that the path and name are
@ -923,6 +967,11 @@ Check that the path and name are correct.
<DD>The output file for the fix reax/bonds command cannot be opened.
Check that the path and name are correct.
<DT><I>Cannot open fix rigid infile %s</I>
<DD>The specified file cannot be opened. Check that the path and name are
correct.
<DT><I>Cannot open fix tmd file %s</I>
<DD>The output file for the fix tmd command cannot be opened. Check that
@ -1027,17 +1076,6 @@ are defined.
<DD>You cannot reset the timestep when a fix that keeps track of elapsed
time is in place.
<DT><I>Cannot reset timestep with dump file already written to</I>
<DD>Changing the timestep will confuse when a dump file is written. Use
the undump command, then restart the dump file.
<DT><I>Cannot reset timestep with restart file already written</I>
<DD>Changing the timestep will confuse when a restart file is written.
Use the "restart 0" command to turn off restarts, then start them
again.
<DT><I>Cannot restart fix rigid/nvt with different # of chains</I>
<DD>This is because the restart file contains per-chain info.
@ -1550,6 +1588,10 @@ of velocity creation cannot be performed.
<DD>Cannot specify both options at the same time.
<DT><I>Cannot yet use fix balance with PPPM</I>
<DD>This is a current limitation of LAMMPS.
<DT><I>Cannot zero Langevin force of 0 atoms</I>
<DD>The group has zero atoms, so you cannot request its force
@ -2470,6 +2512,14 @@ dump output.
<DD>The variable must return a timestep greater than the current timestep.
<DT><I>Dump file does not contain requested snapshot</I>
<DD>Self-explanatory.
<DT><I>Dump file is incorrectly formatted</I>
<DD>No atoms were found in file.
<DT><I>Dump image bond not allowed with no bond types</I>
<DD>Self-explanatory.
@ -2605,6 +2655,10 @@ dumped.
<DD>Only per-atom quantities that are defined for the atom style being
used are allowed.
<DT><I>Duplicate fields in read_dump command</I>
<DD>Self-explanatory.
<DT><I>Duplicate particle in PeriDynamic bond - simulation box is too small</I>
<DD>This is likely because your box length is shorter than 2 times
@ -2714,6 +2768,10 @@ is on.
<DD>Self-explanatory
<DT><I>Fix ID for read_data does not exist</I>
<DD>Self-explanatory.
<DT><I>Fix ID must be alphanumeric or underscore characters</I>
<DD>Self-explanatory.
@ -2799,6 +2857,11 @@ to a larger value, and re-compile the code.
<DD>A fix used by fix ave/atom must generate per-atom values.
<DT><I>Fix ave/atom missed timestep</I>
<DD>You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging.
<DT><I>Fix ave/atom variable is not atom-style variable</I>
<DD>A variable used by fix ave/atom must generate per-atom values.
@ -2827,6 +2890,11 @@ to a larger value, and re-compile the code.
<DD>The index for the vector is out of bounds.
<DT><I>Fix ave/correlate missed timestep</I>
<DD>You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging.
<DT><I>Fix ave/correlate variable is not equal-style variable</I>
<DD>Self-explanatory.
@ -2944,6 +3012,11 @@ to a larger value, and re-compile the code.
<DD>All inputs in a single fix ave/histo command must be of the
same style.
<DT><I>Fix ave/histo missed timestep</I>
<DD>You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging.
<DT><I>Fix ave/spatial compute does not calculate a per-atom array</I>
<DD>Self-explanatory.
@ -2980,6 +3053,11 @@ same style.
<DD>Self-explanatory.
<DT><I>Fix ave/spatial missed timestep</I>
<DD>You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging.
<DT><I>Fix ave/spatial settings invalid with changing box</I>
<DD>If the ave setting is "running" or "window" and the box size/shape
@ -3044,6 +3122,11 @@ all intensive/extensive when turned into an array by fix ave/time.
<DD>The index for the vector is out of bounds.
<DT><I>Fix ave/time missed timestep</I>
<DD>You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging.
<DT><I>Fix ave/time variable is not equal-style variable</I>
<DD>Self-explanatory.
@ -3319,6 +3402,10 @@ which means it is a point particle.
<DD>Self-explanatory.
<DT><I>Fix nvt/npt/nph dilate group ID does not exist</I>
<DD>Self-explanatory.
<DT><I>Fix nvt/sphere requires extended particles</I>
<DD>This fix can only be used for particles of a finite size.
@ -3484,6 +3571,14 @@ fix store/state.
<DD>Self-explanatory.
<DT><I>Fix temp/berendsen variable returned negative temperature</I>
<DD>Self-explanatory.
<DT><I>Fix temp/rescale variable returned negative temperature</I>
<DD>Self-explanatory.
<DT><I>Fix thermal/conductivity swap value must be positive</I>
<DD>Self-explanatory.
@ -3653,6 +3748,11 @@ create_box command.
<DD>A region ID used in the group command does not exist.
<DT><I>If read_dump purges it cannot replace or trim</I>
<DD>These operations are not compatible. See the read_dump doc
page for details.
<DT><I>Illegal ... command</I>
<DD>Self-explanatory. Check the input script syntax and compare to the
@ -3770,7 +3870,7 @@ definitions.
<DT><I>Inconsistent iparam/jparam values in fix bond/create command</I>
<DD>If itype and jtype are the same, then their maxbond and newtype
<DD>If itype and jtype are the same, then their maxbond and newtype
settings must also be the same.
<DT><I>Inconsistent line segment in data file</I>
@ -3863,6 +3963,10 @@ bonus data must be formatted for certain atom styles.
<DD>Self-explanatory. Check the input script or data file.
<DT><I>Incorrect rigid body format in fix rigid file</I>
<DD>The number of fields per line is not what expected.
<DT><I>Incorrect sign arg for dihedral coefficients</I>
<DD>Self-explanatory. Check the input script or data file.
@ -4234,6 +4338,10 @@ be for a single processor.
<DD>Zoom value must be > 0.0.
<DT><I>Invalid dump reader style</I>
<DD>Self-explanatory.
<DT><I>Invalid dump style</I>
<DD>The choice of dump style is unknown.
@ -4476,6 +4584,11 @@ cannot be the same partition.
<DD>Self-explanatory.
<DT><I>Invalid rigid body ID in fix rigid file</I>
<DD>The ID does not match the number or an existing ID of rigid bodies
that are defined by the fix rigid command.
<DT><I>Invalid run command N value</I>
<DD>The number of timesteps must fit in a 32-bit integer. If you want to
@ -4615,6 +4728,10 @@ where it is requesting neighbors incorrectly.
<DD>This environment variable must be set to use pair_style kim.
See the doc page for pair_style kim.
<DT><I>KSpace accuracy too large to estimate G vector</I>
<DD>Paul will doc this.
<DT><I>KSpace style has not yet been set</I>
<DD>Cannot use kspace_modify command until a kspace style is set.
@ -4628,6 +4745,10 @@ Coulombic component be selected.
<DD>Self-explanatory.
<DT><I>Kspace style does not support compute group/group</I>
<DD>Self-explanatory.
<DT><I>Kspace style pppm/tip4p requires newton on</I>
<DD>Self-explanatory.
@ -5019,10 +5140,6 @@ neighbors allowed for one atom.
<DD>This is required to prevent wasting too much memory.
<DT><I>Neighbors of ghost atoms only allowed for full neighbor lists</I>
<DD>This is a current restriction within LAMMPS.
<DT><I>New bond exceeded bonds per atom in fix bond/create</I>
<DD>See the read_data command for info on setting the "extra bond per
@ -5038,6 +5155,10 @@ the special bonds list to allow for additional bonds to be formed.
<DD>The newton command cannot be used to change the newton bond value
after a read_data, read_restart, or create_box command.
<DT><I>No Kspace style defined for compute group/group</I>
<DD>Self-explanatory.
<DT><I>No OpenMP support compiled in</I>
<DD>An OpenMP flag is set, but LAMMPS was not built with
@ -5068,6 +5189,10 @@ but they were not present.
<DD>Self-explanatory. Check data file.
<DT><I>No box information in dump. You have to use 'box no'</I>
<DD>Self-explanatory.
<DT><I>No dihedral style is defined for compute dihedral/local</I>
<DD>Self-explanatory.
@ -5115,6 +5240,10 @@ requested elements.
<DD>The EAM potential file does not contain elements that match the
requested elements.
<DT><I>No overlap of box and region for create_atoms</I>
<DD>Self-explanatory.
<DT><I>No pair hbond/dreiding coefficients set</I>
<DD>Self-explanatory.
@ -5207,15 +5336,15 @@ else the fix contribution to the pressure virial is incorrect.
OFFSET is currently set to 4096. You likely need to decrease the
requested accuracy.
<DT><I>PPPM order cannot be greater than %d</I>
<DT><I>PPPM order cannot be < 2 or > than %d</I>
<DD>Self-explanatory.
<DD>This is a limitation of the PPPM implementation in LAMMPS.
<DT><I>PPPM order has been reduced to 0</I>
<DD>LAMMPS has attempted to reduce the PPPM order to enable the simulation
to run, but can reduce the order no further. Try increasing the
accuracy of PPPM by reducing the tolerance size, thus inducing a
accuracy of PPPM by reducing the tolerance size, thus inducing a
larger PPPM grid.
<DT><I>PRD command before simulation box is defined</I>
@ -5450,6 +5579,15 @@ bonds. Use the atom_modify command to define one.
<DD>See the newton command. This is a restriction to use the AIREBO
potential.
<DT><I>Pair style BOP requires atom IDs</I>
<DD>This is a requirement to use the BOP potential.
<DT><I>Pair style BOP requires newton pair on</I>
<DD>See the newton command. This is a restriction to use the BOP
potential.
<DT><I>Pair style COMB requires atom IDs</I>
<DD>This is a requirement to use the AIREBO potential.
@ -5463,6 +5601,15 @@ potential.
<DD>See the newton command. This is a restriction to use the COMB
potential.
<DT><I>Pair style LCBOP requires atom IDs</I>
<DD>This is a requirement to use the LCBOP potential.
<DT><I>Pair style LCBOP requires newton pair on</I>
<DD>See the newton command. This is a restriction to use the LCBOP
potential.
<DT><I>Pair style MEAM requires newton pair on</I>
<DD>See the newton command. This is a restriction to use the MEAM
@ -5486,6 +5633,11 @@ potential.
<DD>See the newton command. This is a restriction to use the Tersoff
potential.
<DT><I>Pair style bop requires comm ghost cutoff at least 3x larger than %g</I>
<DD>Use the communicate ghost command to set this. See the pair bop
doc page for more details.
<DT><I>Pair style born/coul/long requires atom attribute q</I>
<DD>An atom style that defines this attribute must be used.
@ -5871,6 +6023,19 @@ cart for the map option.
<DD>Equilibrium spring length is invalid.
<DT><I>Read_dump field not found in dump file</I>
<DD>Self-explanatory.
<DT><I>Read_dump triclinic status does not match simulation</I>
<DD>Both the dump snapshot and the current LAMMPS simulation must
be using either an orthogonal or triclinic box.
<DT><I>Read_dump x,y,z fields do not have consistent scaling</I>
<DD>Self-explanatory.
<DT><I>Reax_defs.h setting for NATDEF is too small</I>
<DD>Edit the setting in the ReaxFF library and re-compile the
@ -5977,6 +6142,15 @@ file.
<DD>See the setting for bigint in the src/lmptype.h file.
<DT><I>Rerun command before simulation box is defined</I>
<DD>The rerun command cannot be used before a read_data, read_restart, or
create_box command.
<DT><I>Rerun dump file does not contain requested snapshot</I>
<DD>Self-explanatory.
<DT><I>Resetting timestep is not allowed with fix move</I>
<DD>This is because fix move is moving atoms based on elapsed time.
@ -5993,12 +6167,28 @@ file.
<DD>The first cutoff must be <= the second cutoff.
<DT><I>Restart variable returned a bad timestep</I>
<DD>The variable must return a timestep greater than the current timestep.
<DT><I>Restrain atoms %d %d %d %d missing on proc %d at step %ld</I>
<DD>The 4 atoms in a restrain dihedral specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far.
<DT><I>Restrain atoms %d %d %d missing on proc %d at step %ld</I>
<DD>The 3 atoms in a restrain angle specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far.
<DT><I>Restrain atoms %d %d missing on proc %d at step %ld</I>
<DD>The 2 atoms in a restrain bond specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far.
<DT><I>Reuse of compute ID</I>
<DD>A compute ID cannot be used twice.
@ -6441,11 +6631,22 @@ not defined by the atom style used in this simulation.
<DD>Table size specified via pair_modify command does not work with your
machine's floating point representation.
<DT><I>Too many atom pairs for pair bop</I>
<DD>The number of atomic pairs exceeds the expected number. Check your
atomic structure to ensure that it is realistic.
<DT><I>Too many atom sorting bins</I>
<DD>This is likely due to an immense simulation box that has blown up
to a large size.
<DT><I>Too many atom triplets for pair bop</I>
<DD>The number of three atom groups for angle determinations exceeds the
expected number. Check your atomic structrure to ensure that it is
realistic.
<DT><I>Too many atoms for dump dcd</I>
<DD>The system size must fit in a 32-bit integer to use this dump
@ -6467,12 +6668,12 @@ machine's floating point representation.
<DT><I>Too many groups</I>
<DD>The maximum number of atom groups (including the "all" group) is
<DD>The maximum number of atom groups (including the "all" group) is
given by MAX_GROUP in group.cpp and is 32.
<DT><I>Too many iterations</I>
<DD>You must use a number of iterations that fit in a 32-bit integer
<DD>You must use a number of iterations that fit in a 32-bit integer
for minimization.
<DT><I>Too many local+ghost atoms for neighbor list</I>
@ -6502,7 +6703,7 @@ to a large size.
<DT><I>Too many timesteps for NEB</I>
<DD>You must use a number of timesteps that fit in a 32-bit integer
<DD>You must use a number of timesteps that fit in a 32-bit integer
for NEB.
<DT><I>Too many total atoms</I>
@ -6578,6 +6779,14 @@ quote.
<DD>LAMMPS hit the end of the data file while attempting to read a
section. Something is wrong with the format of the data file.
<DT><I>Unexpected end of dump file</I>
<DD>A read operation from the file failed.
<DT><I>Unexpected end of fix rigid file</I>
<DD>A read operation from the file failed.
<DT><I>Units command after simulation box is defined</I>
<DD>The units command cannot be used after a read_data, read_restart, or
@ -6713,7 +6922,7 @@ deform needs to be used.
<DT><I>Using pair lubricate with inconsistent fix deform remap option</I>
<DD>If fix deform is used, the remap v option is required.
<DD>Must use remap v option with fix deform with this pair style.
<DT><I>Using pair lubricate/poly with inconsistent fix deform remap option</I>
@ -6772,6 +6981,10 @@ before the simulation has been setup.
<DD>Only equal-style variables can be used.
<DT><I>Variable for fix gravity is invalid style</I>
<DD>Only equal-style variables can be used.
<DT><I>Variable for fix indent is invalid style</I>
<DD>Only equal-style variables can be used.
@ -6792,6 +7005,14 @@ before the simulation has been setup.
<DD>Only equal-style variables can be used.
<DT><I>Variable for fix temp/berendsen is invalid style</I>
<DD>Only equal-style variables can be used.
<DT><I>Variable for fix temp/rescale is invalid style</I>
<DD>Only equal-style variables can be used.
<DT><I>Variable for fix wall is invalid style</I>
<DD>Only equal-style variables can be used.
@ -6812,6 +7033,10 @@ before the simulation has been setup.
<DD>Self-explanatory.
<DT><I>Variable for restart is invalid style</I>
<DD>Only equal-style variables can be used.
<DT><I>Variable for thermo every is invalid style</I>
<DD>Only equal-style variables can be used.
@ -6912,6 +7137,10 @@ before the simulation has been setup.
<DD>Self-explanatory.
<DT><I>Variable name for fix gravity does not exist</I>
<DD>Self-explanatory.
<DT><I>Variable name for fix indent does not exist</I>
<DD>Self-explanatory.
@ -6932,6 +7161,14 @@ before the simulation has been setup.
<DD>Self-explanatory.
<DT><I>Variable name for fix temp/berendsen does not exist</I>
<DD>Self-explanatory.
<DT><I>Variable name for fix temp/rescale does not exist</I>
<DD>Self-explanatory.
<DT><I>Variable name for fix wall does not exist</I>
<DD>Self-explanatory.
@ -6948,6 +7185,10 @@ before the simulation has been setup.
<DD>Self-explanatory.
<DT><I>Variable name for restart does not exist</I>
<DD>Self-explanatory.
<DT><I>Variable name for thermo every does not exist</I>
<DD>Self-explanatory.
@ -7009,6 +7250,11 @@ variable doc page for ideas on how to make this work.
<DD>Self-explanatory.
<DT><I>Water H epsilon must be 0.0 for pair style lj/cut/coul/long/tip4p</I>
<DD>This is because LAMMPS does not compute the Lennard-Jones interactions
with these particles for efficiency reasons.
<DT><I>World variable count doesn't match # of partitions</I>
<DD>A world-style variable must specify a number of values equal to the
@ -7035,6 +7281,10 @@ read_restart, or create_box command.
includes atoms with no molecule ID. This is probably not what you
want.
<DT><I>Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero</I>
<DD>Self-explantory.
<DT><I>Broken bonds will not alter angles, dihedrals, or impropers</I>
<DD>See the doc page for fix bond/break for more info on this
@ -7046,6 +7296,14 @@ restriction.
The solution is to check for building the regular neighbor lists
more frequently.
<DT><I>Cannot include log terms without 1/r terms; setting flagHI to 1</I>
<DD>Self-explanatory.
<DT><I>Cannot include log terms without 1/r terms; setting flagHI to 1.</I>
<DD>Self-explanatory.
<DT><I>Compute cna/atom cutoff may be too large to find ghost atom neighbors</I>
<DD>The neighbor cutoff used may not encompass enough ghost atoms
@ -7112,9 +7370,18 @@ of a molecule.
<DT><I>Fix recenter should come after all other integration fixes</I>
<DD>Other fixes may change the position of the center-of-mass, so
<DD>Other fixes may change the position of the center-of-mass, so
fix recenter should come last.
<DT><I>Fix shake with rRESPA computes invalid pressures</I>
<DD>This is a known bug in LAMMPS that has not yet been fixed. If you use
SHAKE with rRESPA and perform a constant volume simulation (e.g. using
fix npt) this only affects the output pressure, not the dynamics of
the simulation. If you use SHAKE with rRESPA and perform a constant
pressure simulation (e.g. using fix npt) then you will be
equilibrating to the wrong volume.
<DT><I>Fix srd SRD moves may trigger frequent reneighboring</I>
<DD>This is because the SRD particles may move long distances.

View File

@ -217,6 +217,12 @@ command. :dd
All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation. :dd
{All read_dump x,y,z fields must be specified for scaled, triclinic coords} :dt
For triclinic boxes and scaled coordinates you must specify all 3 of
the x,y,z fields, else LAMMPS cannot reconstruct the unscaled
coordinates. :dd
{All universe/uloop variables must have same # of values} :dt
Self-explanatory. :dd
@ -315,7 +321,7 @@ still being processed. :dd
{Append boundary must be shrink/minimum} :dt
The boundary style of the face where atoms are added
must be of type m (shrink/minimum). :dd
must be of type m (shrink/minimum). :dd
{Arccos of invalid value in variable formula} :dt
@ -472,9 +478,11 @@ or create_box command. :dd
The string can only contain the characters "x", "y", or "z". :dd
{Balance dynamic string is invalid for 2d simulation} :dt
{Balance produced bad splits} :dt
The string cannot contain the letter "z". :dd
This should not occur. It means two or more cutting plane locations
are on top of each other or out of order. Report the problem to the
developers. :dd
{Bias compute does not calculate a velocity bias} :dt
@ -521,6 +529,12 @@ Number of table entries is not a correct power of 2. :dd
Cannot use TIP4P pair potential unless bond and angle potentials
are defined. :dd
{Bond atom missing in box size check} :dt
The 2nd atoms 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. :dd
{Bond atom missing in delete_bonds} :dt
The delete_bonds command cannot find one or more atoms in a particular
@ -584,6 +598,15 @@ List of bond table parameters must include N setting. :dd
The values in the tabulated file must be monotonically increasing. :dd
{Bond/angle/dihedral extent > half of periodic box length} :dt
This is a restriction because LAMMPS can be confused about which image
of an atom in the bonded interaction is the correct one to use.
"Extent" in this context means the maximum end-to-end length of the
bond/angle/dihedral. LAMMPS computes this by taking the maximum bond
length, multiplying by the number of bonds in the interaction (e.g. 3
for a dihedral) and adding a small amount of stretch. :dd
{Bond_coeff command before bond_style is defined} :dt
Coefficients cannot be set in the data file or via the bond_coeff
@ -652,6 +675,14 @@ This is current restriction for NEB as implemented in LAMMPS. :dd
This is current restriction for NEB as implemented in LAMMPS. :dd
{Cannot (yet) use K-space slab correction with compute group/group} :dt
This option is not yet supported. :dd
{Cannot (yet) use Kspace slab correction with compute group/group} :dt
This option is not yet supported. :dd
{Cannot (yet) use PPPM with triclinic box} :dt
This feature is not yet supported. :dd
@ -826,6 +857,11 @@ path and name are correct. :dd
The specified AIREBO potential file cannot be opened. Check that the
path and name are correct. :dd
{Cannot open BOP potential file %s} :dt
The specified BOP potential file cannot be opened. Check that the
path and name are correct. :dd
{Cannot open COMB potential file %s} :dt
The specified COMB potential file cannot be opened. Check that the
@ -841,6 +877,11 @@ path and name are correct. :dd
The specified EIM potential file cannot be opened. Check that the
path and name are correct. :dd
{Cannot open LCBOP potential file %s} :dt
The specified LCBOP potential file cannot be opened. Check that the
path and name are correct. :dd
{Cannot open MEAM potential file %s} :dt
The specified MEAM potential file cannot be opened. Check that the
@ -858,8 +899,7 @@ path and name are correct. :dd
{Cannot open balance output file} :dt
This error message can only occur if debug options
are uncommented in src/balance.cpp. :dd
Self-explanatory. :dd
{Cannot open custom file} :dt
@ -900,6 +940,10 @@ correct. :dd
The specified file cannot be opened. Check that the path and name are
correct. :dd
{Cannot open fix balance output file} :dt
Self-explanatory. :dd
{Cannot open fix poems file %s} :dt
The specified file cannot be opened. Check that the path and name are
@ -919,6 +963,11 @@ Check that the path and name are correct. :dd
The output file for the fix reax/bonds command cannot be opened.
Check that the path and name are correct. :dd
{Cannot open fix rigid infile %s} :dt
The specified file cannot be opened. Check that the path and name are
correct. :dd
{Cannot open fix tmd file %s} :dt
The output file for the fix tmd command cannot be opened. Check that
@ -1023,17 +1072,6 @@ are defined. :dd
You cannot reset the timestep when a fix that keeps track of elapsed
time is in place. :dd
{Cannot reset timestep with dump file already written to} :dt
Changing the timestep will confuse when a dump file is written. Use
the undump command, then restart the dump file. :dd
{Cannot reset timestep with restart file already written} :dt
Changing the timestep will confuse when a restart file is written.
Use the "restart 0" command to turn off restarts, then start them
again. :dd
{Cannot restart fix rigid/nvt with different # of chains} :dt
This is because the restart file contains per-chain info. :dd
@ -1546,6 +1584,10 @@ Self-explanatory. :dd
Cannot specify both options at the same time. :dd
{Cannot yet use fix balance with PPPM} :dt
This is a current limitation of LAMMPS. :dd
{Cannot zero Langevin force of 0 atoms} :dt
The group has zero atoms, so you cannot request its force
@ -2466,6 +2508,14 @@ Use the dump_modify sort command to enable this. :dd
The variable must return a timestep greater than the current timestep. :dd
{Dump file does not contain requested snapshot} :dt
Self-explanatory. :dd
{Dump file is incorrectly formatted} :dt
No atoms were found in file. :dd
{Dump image bond not allowed with no bond types} :dt
Self-explanatory. :dd
@ -2601,6 +2651,10 @@ dumped. :dd
Only per-atom quantities that are defined for the atom style being
used are allowed. :dd
{Duplicate fields in read_dump command} :dt
Self-explanatory. :dd
{Duplicate particle in PeriDynamic bond - simulation box is too small} :dt
This is likely because your box length is shorter than 2 times
@ -2710,6 +2764,10 @@ Self-explanatory. :dd
Self-explanatory :dd
{Fix ID for read_data does not exist} :dt
Self-explanatory. :dd
{Fix ID must be alphanumeric or underscore characters} :dt
Self-explanatory. :dd
@ -2795,6 +2853,11 @@ A fix used by fix ave/atom must generate per-atom values. :dd
A fix used by fix ave/atom must generate per-atom values. :dd
{Fix ave/atom missed timestep} :dt
You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging. :dd
{Fix ave/atom variable is not atom-style variable} :dt
A variable used by fix ave/atom must generate per-atom values. :dd
@ -2823,6 +2886,11 @@ Self-explanatory. :dd
The index for the vector is out of bounds. :dd
{Fix ave/correlate missed timestep} :dt
You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging. :dd
{Fix ave/correlate variable is not equal-style variable} :dt
Self-explanatory. :dd
@ -2940,6 +3008,11 @@ Self-explanatory. :dd
All inputs in a single fix ave/histo command must be of the
same style. :dd
{Fix ave/histo missed timestep} :dt
You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging. :dd
{Fix ave/spatial compute does not calculate a per-atom array} :dt
Self-explanatory. :dd
@ -2976,6 +3049,11 @@ The index for the vector is out of bounds. :dd
Self-explanatory. :dd
{Fix ave/spatial missed timestep} :dt
You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging. :dd
{Fix ave/spatial settings invalid with changing box} :dt
If the ave setting is "running" or "window" and the box size/shape
@ -3040,6 +3118,11 @@ Self-explanatory. :dd
The index for the vector is out of bounds. :dd
{Fix ave/time missed timestep} :dt
You cannot reset the timestep to a value beyond where the fix
expects to next perform averaging. :dd
{Fix ave/time variable is not equal-style variable} :dt
Self-explanatory. :dd
@ -3315,6 +3398,10 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Fix nvt/npt/nph dilate group ID does not exist} :dt
Self-explanatory. :dd
{Fix nvt/sphere requires extended particles} :dt
This fix can only be used for particles of a finite size. :dd
@ -3480,6 +3567,14 @@ Only atom-style variables calculate per-atom quantities. :dd
Self-explanatory. :dd
{Fix temp/berendsen variable returned negative temperature} :dt
Self-explanatory. :dd
{Fix temp/rescale variable returned negative temperature} :dt
Self-explanatory. :dd
{Fix thermal/conductivity swap value must be positive} :dt
Self-explanatory. :dd
@ -3649,6 +3744,11 @@ create_box command. :dd
A region ID used in the group command does not exist. :dd
{If read_dump purges it cannot replace or trim} :dt
These operations are not compatible. See the read_dump doc
page for details. :dd
{Illegal ... command} :dt
Self-explanatory. Check the input script syntax and compare to the
@ -3766,7 +3866,7 @@ The data file header lists improper but no improper types. :dd
{Inconsistent iparam/jparam values in fix bond/create command} :dt
If itype and jtype are the same, then their maxbond and newtype
If itype and jtype are the same, then their maxbond and newtype
settings must also be the same. :dd
{Inconsistent line segment in data file} :dt
@ -3859,6 +3959,10 @@ Incorrect number of words per line in the potential file. :dd
Self-explanatory. Check the input script or data file. :dd
{Incorrect rigid body format in fix rigid file} :dt
The number of fields per line is not what expected. :dd
{Incorrect sign arg for dihedral coefficients} :dt
Self-explanatory. Check the input script or data file. :dd
@ -4230,6 +4334,10 @@ Theta must be between 0.0 and 180.0 inclusive. :dd
Zoom value must be > 0.0. :dd
{Invalid dump reader style} :dt
Self-explanatory. :dd
{Invalid dump style} :dt
The choice of dump style is unknown. :dd
@ -4472,6 +4580,11 @@ The choice of region style is unknown. :dd
Self-explanatory. :dd
{Invalid rigid body ID in fix rigid file} :dt
The ID does not match the number or an existing ID of rigid bodies
that are defined by the fix rigid command. :dd
{Invalid run command N value} :dt
The number of timesteps must fit in a 32-bit integer. If you want to
@ -4611,6 +4724,10 @@ where it is requesting neighbors incorrectly. :dd
This environment variable must be set to use pair_style kim.
See the doc page for pair_style kim. :dd
{KSpace accuracy too large to estimate G vector} :dt
Paul will doc this. :dd
{KSpace style has not yet been set} :dt
Cannot use kspace_modify command until a kspace style is set. :dd
@ -4624,6 +4741,10 @@ Coulombic component be selected. :dd
Self-explanatory. :dd
{Kspace style does not support compute group/group} :dt
Self-explanatory. :dd
{Kspace style pppm/tip4p requires newton on} :dt
Self-explanatory. :dd
@ -5015,10 +5136,6 @@ Self-explanatory. :dd
This is required to prevent wasting too much memory. :dd
{Neighbors of ghost atoms only allowed for full neighbor lists} :dt
This is a current restriction within LAMMPS. :dd
{New bond exceeded bonds per atom in fix bond/create} :dt
See the read_data command for info on setting the "extra bond per
@ -5034,6 +5151,10 @@ the special bonds list to allow for additional bonds to be formed. :dd
The newton command cannot be used to change the newton bond value
after a read_data, read_restart, or create_box command. :dd
{No Kspace style defined for compute group/group} :dt
Self-explanatory. :dd
{No OpenMP support compiled in} :dt
An OpenMP flag is set, but LAMMPS was not built with
@ -5064,6 +5185,10 @@ Self-explanatory. :dd
Self-explanatory. Check data file. :dd
{No box information in dump. You have to use 'box no'} :dt
Self-explanatory. :dd
{No dihedral style is defined for compute dihedral/local} :dt
Self-explanatory. :dd
@ -5111,6 +5236,10 @@ requested elements. :dd
The EAM potential file does not contain elements that match the
requested elements. :dd
{No overlap of box and region for create_atoms} :dt
Self-explanatory. :dd
{No pair hbond/dreiding coefficients set} :dt
Self-explanatory. :dd
@ -5203,15 +5332,15 @@ The global PPPM grid is larger than OFFSET in one or more dimensions.
OFFSET is currently set to 4096. You likely need to decrease the
requested accuracy. :dd
{PPPM order cannot be greater than %d} :dt
{PPPM order cannot be < 2 or > than %d} :dt
Self-explanatory. :dd
This is a limitation of the PPPM implementation in LAMMPS. :dd
{PPPM order has been reduced to 0} :dt
LAMMPS has attempted to reduce the PPPM order to enable the simulation
to run, but can reduce the order no further. Try increasing the
accuracy of PPPM by reducing the tolerance size, thus inducing a
accuracy of PPPM by reducing the tolerance size, thus inducing a
larger PPPM grid. :dd
{PRD command before simulation box is defined} :dt
@ -5446,6 +5575,15 @@ This is a requirement to use the AIREBO potential. :dd
See the newton command. This is a restriction to use the AIREBO
potential. :dd
{Pair style BOP requires atom IDs} :dt
This is a requirement to use the BOP potential. :dd
{Pair style BOP requires newton pair on} :dt
See the newton command. This is a restriction to use the BOP
potential. :dd
{Pair style COMB requires atom IDs} :dt
This is a requirement to use the AIREBO potential. :dd
@ -5459,6 +5597,15 @@ Self-explanatory. :dd
See the newton command. This is a restriction to use the COMB
potential. :dd
{Pair style LCBOP requires atom IDs} :dt
This is a requirement to use the LCBOP potential. :dd
{Pair style LCBOP requires newton pair on} :dt
See the newton command. This is a restriction to use the LCBOP
potential. :dd
{Pair style MEAM requires newton pair on} :dt
See the newton command. This is a restriction to use the MEAM
@ -5482,6 +5629,11 @@ This is a requirement to use the Tersoff potential. :dd
See the newton command. This is a restriction to use the Tersoff
potential. :dd
{Pair style bop requires comm ghost cutoff at least 3x larger than %g} :dt
Use the communicate ghost command to set this. See the pair bop
doc page for more details. :dd
{Pair style born/coul/long requires atom attribute q} :dt
An atom style that defines this attribute must be used. :dd
@ -5867,6 +6019,19 @@ Self-explanatory. :dd
Equilibrium spring length is invalid. :dd
{Read_dump field not found in dump file} :dt
Self-explanatory. :dd
{Read_dump triclinic status does not match simulation} :dt
Both the dump snapshot and the current LAMMPS simulation must
be using either an orthogonal or triclinic box. :dd
{Read_dump x,y,z fields do not have consistent scaling} :dt
Self-explanatory. :dd
{Reax_defs.h setting for NATDEF is too small} :dt
Edit the setting in the ReaxFF library and re-compile the
@ -5973,6 +6138,15 @@ file. :dd
See the setting for bigint in the src/lmptype.h file. :dd
{Rerun command before simulation box is defined} :dt
The rerun command cannot be used before a read_data, read_restart, or
create_box command. :dd
{Rerun dump file does not contain requested snapshot} :dt
Self-explanatory. :dd
{Resetting timestep is not allowed with fix move} :dt
This is because fix move is moving atoms based on elapsed time. :dd
@ -5989,12 +6163,28 @@ Self-explanatory. :dd
The first cutoff must be <= the second cutoff. :dd
{Restart variable returned a bad timestep} :dt
The variable must return a timestep greater than the current timestep. :dd
{Restrain atoms %d %d %d %d missing on proc %d at step %ld} :dt
The 4 atoms in a restrain dihedral specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far. :dd
{Restrain atoms %d %d %d missing on proc %d at step %ld} :dt
The 3 atoms in a restrain angle specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far. :dd
{Restrain atoms %d %d missing on proc %d at step %ld} :dt
The 2 atoms in a restrain bond specified by the fix restrain
command are not all accessible to a processor. This probably means an
atom has moved too far. :dd
{Reuse of compute ID} :dt
A compute ID cannot be used twice. :dd
@ -6437,11 +6627,22 @@ The timestep must fit in a 32-bit integer to use this dump style. :dd
Table size specified via pair_modify command does not work with your
machine's floating point representation. :dd
{Too many atom pairs for pair bop} :dt
The number of atomic pairs exceeds the expected number. Check your
atomic structure to ensure that it is realistic. :dd
{Too many atom sorting bins} :dt
This is likely due to an immense simulation box that has blown up
to a large size. :dd
{Too many atom triplets for pair bop} :dt
The number of three atom groups for angle determinations exceeds the
expected number. Check your atomic structrure to ensure that it is
realistic. :dd
{Too many atoms for dump dcd} :dt
The system size must fit in a 32-bit integer to use this dump
@ -6463,12 +6664,12 @@ machine's floating point representation. :dd
{Too many groups} :dt
The maximum number of atom groups (including the "all" group) is
The maximum number of atom groups (including the "all" group) is
given by MAX_GROUP in group.cpp and is 32. :dd
{Too many iterations} :dt
You must use a number of iterations that fit in a 32-bit integer
You must use a number of iterations that fit in a 32-bit integer
for minimization. :dd
{Too many local+ghost atoms for neighbor list} :dt
@ -6498,7 +6699,7 @@ The cummulative timesteps must fit in a 64-bit integer. :dd
{Too many timesteps for NEB} :dt
You must use a number of timesteps that fit in a 32-bit integer
You must use a number of timesteps that fit in a 32-bit integer
for NEB. :dd
{Too many total atoms} :dt
@ -6574,6 +6775,14 @@ Self-explanatory. :dd
LAMMPS hit the end of the data file while attempting to read a
section. Something is wrong with the format of the data file. :dd
{Unexpected end of dump file} :dt
A read operation from the file failed. :dd
{Unexpected end of fix rigid file} :dt
A read operation from the file failed. :dd
{Units command after simulation box is defined} :dt
The units command cannot be used after a read_data, read_restart, or
@ -6709,7 +6918,7 @@ deform needs to be used. :dd
{Using pair lubricate with inconsistent fix deform remap option} :dt
If fix deform is used, the remap v option is required. :dd
Must use remap v option with fix deform with this pair style. :dd
{Using pair lubricate/poly with inconsistent fix deform remap option} :dt
@ -6768,6 +6977,10 @@ The variable must be an equal-style variable. :dd
Only equal-style variables can be used. :dd
{Variable for fix gravity is invalid style} :dt
Only equal-style variables can be used. :dd
{Variable for fix indent is invalid style} :dt
Only equal-style variables can be used. :dd
@ -6788,6 +7001,14 @@ Only equal-style variables can be used. :dd
Only equal-style variables can be used. :dd
{Variable for fix temp/berendsen is invalid style} :dt
Only equal-style variables can be used. :dd
{Variable for fix temp/rescale is invalid style} :dt
Only equal-style variables can be used. :dd
{Variable for fix wall is invalid style} :dt
Only equal-style variables can be used. :dd
@ -6808,6 +7029,10 @@ Only equal-style variables can be used. :dd
Self-explanatory. :dd
{Variable for restart is invalid style} :dt
Only equal-style variables can be used. :dd
{Variable for thermo every is invalid style} :dt
Only equal-style variables can be used. :dd
@ -6908,6 +7133,10 @@ Self-explantory. :dd
Self-explanatory. :dd
{Variable name for fix gravity does not exist} :dt
Self-explanatory. :dd
{Variable name for fix indent does not exist} :dt
Self-explanatory. :dd
@ -6928,6 +7157,14 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Variable name for fix temp/berendsen does not exist} :dt
Self-explanatory. :dd
{Variable name for fix temp/rescale does not exist} :dt
Self-explanatory. :dd
{Variable name for fix wall does not exist} :dt
Self-explanatory. :dd
@ -6944,6 +7181,10 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Variable name for restart does not exist} :dt
Self-explanatory. :dd
{Variable name for thermo every does not exist} :dt
Self-explanatory. :dd
@ -7005,6 +7246,11 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Water H epsilon must be 0.0 for pair style lj/cut/coul/long/tip4p} :dt
This is because LAMMPS does not compute the Lennard-Jones interactions
with these particles for efficiency reasons. :dd
{World variable count doesn't match # of partitions} :dt
A world-style variable must specify a number of values equal to the
@ -7031,6 +7277,10 @@ The group used in a compute command that operates on moleclues
includes atoms with no molecule ID. This is probably not what you
want. :dd
{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt
Self-explantory. :dd
{Broken bonds will not alter angles, dihedrals, or impropers} :dt
See the doc page for fix bond/break for more info on this
@ -7042,6 +7292,14 @@ This can cause LAMMPS to crash when the neighbor list is built.
The solution is to check for building the regular neighbor lists
more frequently. :dd
{Cannot include log terms without 1/r terms; setting flagHI to 1} :dt
Self-explanatory. :dd
{Cannot include log terms without 1/r terms; setting flagHI to 1.} :dt
Self-explanatory. :dd
{Compute cna/atom cutoff may be too large to find ghost atom neighbors} :dt
The neighbor cutoff used may not encompass enough ghost atoms
@ -7108,9 +7366,18 @@ Atoms store this quantity, but fix move does not (yet) update it. :dd
{Fix recenter should come after all other integration fixes} :dt
Other fixes may change the position of the center-of-mass, so
Other fixes may change the position of the center-of-mass, so
fix recenter should come last. :dd
{Fix shake with rRESPA computes invalid pressures} :dt
This is a known bug in LAMMPS that has not yet been fixed. If you use
SHAKE with rRESPA and perform a constant volume simulation (e.g. using
fix npt) this only affects the output pressure, not the dynamics of
the simulation. If you use SHAKE with rRESPA and perform a constant
pressure simulation (e.g. using fix npt) then you will be
equilibrating to the wrong volume. :dd
{Fix srd SRD moves may trigger frequent reneighboring} :dt
This is because the SRD particles may move long distances. :dd

View File

@ -44,24 +44,24 @@ packages, more details are provided.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD >Package</TD><TD > Description</TD><TD > Author(s)</TD><TD > Doc page</TD><TD > Example</TD><TD > Library</TD></TR>
<TR ALIGN="center"><TD >ASPHERE</TD><TD > aspherical particles</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_14">howto</A></TD><TD > ellipse</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >ASPHERE</TD><TD > aspherical particles</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_14">Section_howto</A></TD><TD > ellipse</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >CLASS2</TD><TD > class 2 force fields</TD><TD > -</TD><TD > <A HREF = "pair_class2.html">pair_style lj/class2</A></TD><TD > -</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >COLLOID</TD><TD > colloidal particles</TD><TD > -</TD><TD > <A HREF = "atom_style.html">atom_style colloid</A></TD><TD > colloid</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >DIPOLE</TD><TD > point dipole particles</TD><TD > -</TD><TD > <A HREF = "pair_dipole.html">pair_style dipole/cut</A></TD><TD > dipole</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >FLD</TD><TD > Fast Lubrication Dynamics</TD><TD > Kumar & Bybee & Higdon (1)</TD><TD > <A HREF = "pair_lubricateU.html">pair_style lubricateU</A></TD><TD > -</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >GPU</TD><TD > GPU-enabled potentials</TD><TD > Mike Brown (ORNL)</TD><TD > <A HREF = "Section_accelerate.html#acc_3">Section accelerate</A></TD><TD > gpu</TD><TD > lib/gpu</TD></TR>
<TR ALIGN="center"><TD >GRANULAR</TD><TD > granular systems</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_6<A HREF = "pair_kim.html">>howto</A></TD><TD > pour</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >KIM</TD><TD > openKIM potentials</TD><TD > Smirichinski & Elliot & Tadmor (3)</TD><TD > pair_style kim</A></TD><TD > kim</TD><TD > lib/kim</TD></TR>
<TR ALIGN="center"><TD >GRANULAR</TD><TD > granular systems</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_6">Section_howto</A></TD><TD > pour</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >KIM</TD><TD > openKIM potentials</TD><TD > Smirichinski & Elliot & Tadmor (3)</TD><TD > <A HREF = "pair_kim.html">pair_style kim</A></TD><TD > kim</TD><TD > lib/kim</TD></TR>
<TR ALIGN="center"><TD >KSPACE</TD><TD > long-range Coulombic solvers</TD><TD > -</TD><TD > <A HREF = "kspace_style.html">kspace_style</A></TD><TD > peptide</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >MANYBODY</TD><TD > many-body potentials</TD><TD > -</TD><TD > <A HREF = "pair_tersoff.html">pair_style tersoff</A></TD><TD > shear</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >MEAM</TD><TD > modified EAM potential</TD><TD > Greg Wagner (Sandia)</TD><TD > <A HREF = "pair_meam.html">pair_style meam</A></TD><TD > meam</TD><TD > lib/meam</TD></TR>
<TR ALIGN="center"><TD >MC</TD><TD > Monte Carlo options</TD><TD > -</TD><TD > <A HREF = "fix_gcmc.html">fix gcmc</A></TD><TD > -</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >MOLECULE</TD><TD > molecular system force fields</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_3">howto</A></TD><TD > peptide</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >MOLECULE</TD><TD > molecular system force fields</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_3">Section_howto</A></TD><TD > peptide</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >OPT</TD><TD > optimized pair potentials</TD><TD > Fischer & Richie & Natoli (2)</TD><TD > <A HREF = "Section_accelerate.html#acc_1">Section accelerate</A></TD><TD > -</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >PERI</TD><TD > Peridynamics models</TD><TD > Mike Parks (Sandia)</TD><TD > <A HREF = "pair_peri.html">pair_style peri</A></TD><TD > peri</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >POEMS</TD><TD > coupled rigid body motion</TD><TD > Rudra Mukherjee (JPL)</TD><TD > <A HREF = "fix_poems.html">fix poems</A></TD><TD > rigid</TD><TD > lib/poems</TD></TR>
<TR ALIGN="center"><TD >REAX</TD><TD > ReaxFF potential</TD><TD > Aidan Thompson (Sandia)</TD><TD > <A HREF = "pair_reax.html">pair_style reax</A></TD><TD > reax</TD><TD > lib/reax</TD></TR>
<TR ALIGN="center"><TD >REPLICA</TD><TD > multi-replica methods</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_5">howto</A></TD><TD > tad</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >REPLICA</TD><TD > multi-replica methods</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_5">Section_howto</A></TD><TD > tad</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >SHOCK</TD><TD > shock loading methods</TD><TD > -</TD><TD > <A HREF = "fix_msst.html">fix msst</A></TD><TD > -</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >SRD</TD><TD > stochastic rotation dynamics</TD><TD > -</TD><TD > <A HREF = "fix_srd.html">fix srd</A></TD><TD > srd</TD><TD > -</TD></TR>
<TR ALIGN="center"><TD >XTC</TD><TD > dumps in XTC format</TD><TD > -</TD><TD > <A HREF = "dump.html">dump</A></TD><TD > -</TD><TD > -</TD></TR>

View File

@ -39,24 +39,24 @@ packages, more details are provided.
The current list of standard packages is as follows:
Package, Description, Author(s), Doc page, Example, Library
ASPHERE, aspherical particles, -, "howto"_Section_howto.html#howto_14, ellipse, -
ASPHERE, aspherical particles, -, "Section_howto"_Section_howto.html#howto_14, ellipse, -
CLASS2, class 2 force fields, -, "pair_style lj/class2"_pair_class2.html, -, -
COLLOID, colloidal particles, -, "atom_style colloid"_atom_style.html, colloid, -
DIPOLE, point dipole particles, -, "pair_style dipole/cut"_pair_dipole.html, dipole, -
FLD, Fast Lubrication Dynamics, Kumar & Bybee & Higdon (1), "pair_style lubricateU"_pair_lubricateU.html, -, -
GPU, GPU-enabled potentials, Mike Brown (ORNL), "Section accelerate"_Section_accelerate.html#acc_3, gpu, lib/gpu
GRANULAR, granular systems, -, "howto"_Section_howto.html#howto_6, pour, -
KIM, openKIM potentials, Smirichinski & Elliot & Tadmor (3), pair_style kim"_pair_kim.html, kim, lib/kim
GRANULAR, granular systems, -, "Section_howto"_Section_howto.html#howto_6, pour, -
KIM, openKIM potentials, Smirichinski & Elliot & Tadmor (3), "pair_style kim"_pair_kim.html, kim, lib/kim
KSPACE, long-range Coulombic solvers, -, "kspace_style"_kspace_style.html, peptide, -
MANYBODY, many-body potentials, -, "pair_style tersoff"_pair_tersoff.html, shear, -
MEAM, modified EAM potential, Greg Wagner (Sandia), "pair_style meam"_pair_meam.html, meam, lib/meam
MC, Monte Carlo options, -, "fix gcmc"_fix_gcmc.html, -, -
MOLECULE, molecular system force fields, -, "howto"_Section_howto.html#howto_3, peptide, -
MOLECULE, molecular system force fields, -, "Section_howto"_Section_howto.html#howto_3, peptide, -
OPT, optimized pair potentials, Fischer & Richie & Natoli (2), "Section accelerate"_Section_accelerate.html#acc_1, -, -
PERI, Peridynamics models, Mike Parks (Sandia), "pair_style peri"_pair_peri.html, peri, -
POEMS, coupled rigid body motion, Rudra Mukherjee (JPL), "fix poems"_fix_poems.html, rigid, lib/poems
REAX, ReaxFF potential, Aidan Thompson (Sandia), "pair_style reax"_pair_reax.html, reax, lib/reax
REPLICA, multi-replica methods, -, "howto"_Section_howto.html#howto_5, tad, -
REPLICA, multi-replica methods, -, "Section_howto"_Section_howto.html#howto_5, tad, -
SHOCK, shock loading methods, -, "fix msst"_fix_msst.html, -, -
SRD, stochastic rotation dynamics, -, "fix srd"_fix_srd.html, srd, -
XTC, dumps in XTC format, -, "dump"_dump.html, -, -

View File

@ -223,11 +223,14 @@ Restrictions section of the <A HREF = "dump.html">dump</A> command for details.
</P>
<P>Use at most one of the -DLAMMPS_SMALLBIG, -DLAMMPS_BIGBIG,
-D-DLAMMPS_SMALLSMALL settings. The default is -DLAMMPS_SMALLBIG.
These refer to use of 4-byte (small) vs 8-byte (big) integers within
LAMMPS, as described in src/lmptype.h. The only reason to use the
BIGBIG setting is to enable simulation of huge molecular systems with
more than 2 billion atoms. The only reason to use the SMALLSMALL
setting is if your machine does not support 64-bit integers.
These settings refer to use of 4-byte (small) vs 8-byte (big) integers
within LAMMPS, as specified in src/lmptype.h. The only reason to use
the BIGBIG setting is to enable simulation of huge molecular systems
with more than 2 billion atoms or to allow moving atoms to wrap back
through a periodic box more than 512 times. The only reason to use
the SMALLSMALL setting is if your machine does not support 64-bit
integers. See the <A HREF = "#start_2_4">Additional build tips</A> section below
for more details.
</P>
<P>The -DLAMMPS_LONGLONG_TO_LONG setting may be needed if your system or
MPI version does not recognize "long long" data types. In this case a
@ -434,41 +437,46 @@ Obj_target where it stores the system-specific *.o files.
files created when LAMMPS is built, for either all builds or for a
particular machine.
</P>
<P>(3) Changing the size limits in src/lmptype.h
<P>(3) Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
-DLAMMPS_BIBIG or -DLAMMPS_SMALLSMALL
</P>
<P>If you are running a very large problem (billions of atoms or more)
and get a run-time error about the system being too big, either on a
per-processor basis or in total size, then you may need to change one
or more settings in src/lmptype.h and re-compile LAMMPS.
<P>As explained above, any of these 3 settings can be specified on the
LMP_INC line in your low-level src/MAKE/Makefile.foo.
</P>
<P>As the documentation in that file explains, you have basically
two choices to make:
<P>The default is -DLAMMPS_SMALLBIG which allows for systems with up to
2^63 atoms and timesteps (about 9 billion billion). The atom limit is
for atomic systems that do not require atom IDs. For molecular
models, which require atom IDs, the limit is 2^31 atoms (about 2
billion). With this setting, image flags are stored in 32-bit
integers, which means for 3 dimensions that atoms can only wrap around
a periodic box at most 512 times. If atoms move through the periodic
box more than this limit, the image flags will "roll over", e.g. from
511 to -512, which can cause diagnostics like the mean-squared
displacement, as calculated by the <A HREF = "compute_msd.html">compute msd</A>
command, to be faulty.
</P>
<UL><LI>set the data type size of integer atom IDs to 4 or 8 bytes
<LI>set the data type size of integers that store the total system size to 4 or 8 bytes
</UL>
<P>The default for atom IDs is 4-byte integers since there is a memory
and communication cost for 8-byte integers. Non-molecular problems do
not need atom IDs so this does not restrict their size. Molecular
problems (which use IDs to define molecular topology), are limited to
about 2 billion atoms (2^31) with 4-byte IDs. With 8-byte IDs they
are effectively unlimited in size (2^63).
<P>To allow for larger molecular systems or larger image flags, compile
with -DLAMMPS_BIGBIG. This enables molecular systems with up to 2^63
atoms (about 9 billion billion). And image flags will not "roll over"
until they reach 2^20 = 1048576.
</P>
<P>The default for total system size quantities (like the number of atoms
or timesteps) is 8-byte integers by default which is effectively
unlimited in size (2^63). If your system or MPI implementation does
not support 8-byte integers, an error will be generated, and you will
need to set "bigint" to 4-byte integers. This restricts your total
system size to about 2 billion atoms or timesteps (2^31).
<P>IMPORTANT NOTE: As of 6/2012, the BIGBIG setting does not yet enable
molecular systems to grow as large as 2^63. Only the image flag roll
over is currently affected by this compile option.
</P>
<P>If your system does not support 8-byte integers, you will need to
compile with the -DLAMMPS_SMALLSMALL setting. This will restrict your
total number of atoms (for atomic or molecular models) and timesteps
to 2^31 (about 2 billion). Image flags will roll over at 2^9 = 512.
</P>
<P>Note that in src/lmptype.h there are also settings for the MPI data
types associated with the integers that store atom IDs and total
system sizes, which need to be set consistent with the associated C
data types.
system sizes. These need to be consistent with the associated C data
types, or else LAMMPS will generate a run-time error.
</P>
<P>In all cases, the size of problem that can be run on a per-processor
basis is limited by 4-byte integer storage to about 2 billion atoms
per processor (2^31), which should not normally be a restriction since
basis is limited by 4-byte integer storage to 2^31 atoms per processor
(about 2 billion). This should not normally be a restriction since
such a problem would have a huge per-processor memory footprint due to
neighbor lists and would run very slowly in terms of CPU
secs/timestep.

View File

@ -217,11 +217,14 @@ Restrictions section of the "dump"_dump.html command for details.
Use at most one of the -DLAMMPS_SMALLBIG, -DLAMMPS_BIGBIG,
-D-DLAMMPS_SMALLSMALL settings. The default is -DLAMMPS_SMALLBIG.
These refer to use of 4-byte (small) vs 8-byte (big) integers within
LAMMPS, as described in src/lmptype.h. The only reason to use the
BIGBIG setting is to enable simulation of huge molecular systems with
more than 2 billion atoms. The only reason to use the SMALLSMALL
setting is if your machine does not support 64-bit integers.
These settings refer to use of 4-byte (small) vs 8-byte (big) integers
within LAMMPS, as specified in src/lmptype.h. The only reason to use
the BIGBIG setting is to enable simulation of huge molecular systems
with more than 2 billion atoms or to allow moving atoms to wrap back
through a periodic box more than 512 times. The only reason to use
the SMALLSMALL setting is if your machine does not support 64-bit
integers. See the "Additional build tips"_#start_2_4 section below
for more details.
The -DLAMMPS_LONGLONG_TO_LONG setting may be needed if your system or
MPI version does not recognize "long long" data types. In this case a
@ -428,41 +431,46 @@ Typing "make clean-all" or "make clean-foo" will delete *.o object
files created when LAMMPS is built, for either all builds or for a
particular machine.
(3) Changing the size limits in src/lmptype.h
(3) Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
-DLAMMPS_BIBIG or -DLAMMPS_SMALLSMALL
If you are running a very large problem (billions of atoms or more)
and get a run-time error about the system being too big, either on a
per-processor basis or in total size, then you may need to change one
or more settings in src/lmptype.h and re-compile LAMMPS.
As explained above, any of these 3 settings can be specified on the
LMP_INC line in your low-level src/MAKE/Makefile.foo.
As the documentation in that file explains, you have basically
two choices to make:
The default is -DLAMMPS_SMALLBIG which allows for systems with up to
2^63 atoms and timesteps (about 9 billion billion). The atom limit is
for atomic systems that do not require atom IDs. For molecular
models, which require atom IDs, the limit is 2^31 atoms (about 2
billion). With this setting, image flags are stored in 32-bit
integers, which means for 3 dimensions that atoms can only wrap around
a periodic box at most 512 times. If atoms move through the periodic
box more than this limit, the image flags will "roll over", e.g. from
511 to -512, which can cause diagnostics like the mean-squared
displacement, as calculated by the "compute msd"_compute_msd.html
command, to be faulty.
set the data type size of integer atom IDs to 4 or 8 bytes
set the data type size of integers that store the total system size to 4 or 8 bytes :ul
To allow for larger molecular systems or larger image flags, compile
with -DLAMMPS_BIGBIG. This enables molecular systems with up to 2^63
atoms (about 9 billion billion). And image flags will not "roll over"
until they reach 2^20 = 1048576.
The default for atom IDs is 4-byte integers since there is a memory
and communication cost for 8-byte integers. Non-molecular problems do
not need atom IDs so this does not restrict their size. Molecular
problems (which use IDs to define molecular topology), are limited to
about 2 billion atoms (2^31) with 4-byte IDs. With 8-byte IDs they
are effectively unlimited in size (2^63).
IMPORTANT NOTE: As of 6/2012, the BIGBIG setting does not yet enable
molecular systems to grow as large as 2^63. Only the image flag roll
over is currently affected by this compile option.
The default for total system size quantities (like the number of atoms
or timesteps) is 8-byte integers by default which is effectively
unlimited in size (2^63). If your system or MPI implementation does
not support 8-byte integers, an error will be generated, and you will
need to set "bigint" to 4-byte integers. This restricts your total
system size to about 2 billion atoms or timesteps (2^31).
If your system does not support 8-byte integers, you will need to
compile with the -DLAMMPS_SMALLSMALL setting. This will restrict your
total number of atoms (for atomic or molecular models) and timesteps
to 2^31 (about 2 billion). Image flags will roll over at 2^9 = 512.
Note that in src/lmptype.h there are also settings for the MPI data
types associated with the integers that store atom IDs and total
system sizes, which need to be set consistent with the associated C
data types.
system sizes. These need to be consistent with the associated C data
types, or else LAMMPS will generate a run-time error.
In all cases, the size of problem that can be run on a per-processor
basis is limited by 4-byte integer storage to about 2 billion atoms
per processor (2^31), which should not normally be a restriction since
basis is limited by 4-byte integer storage to 2^31 atoms per processor
(about 2 billion). This should not normally be a restriction since
such a problem would have a huge per-processor memory footprint due to
neighbor lists and would run very slowly in terms of CPU
secs/timestep.

View File

@ -297,8 +297,9 @@ center-of-mass that is outside the simulation box, LAMMPS wraps it
back into the box. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)
should be the values consistent with the current orientation of the
rigid body around its center of mass. The values are with respect to
the XYZ coordinate axes, not with respect to the prinicpal axes of the
rigid body itself. LAMMPS performs the latter calcultion internally.
the simulation box XYZ axes, not with respect to the prinicpal axes of
the rigid body itself. LAMMPS performs the latter calculation
internally.
</P>
<P>IMPORTANT NOTE: The last point means that you cannot restart a
simulation with rigid bodies using the

View File

@ -286,8 +286,9 @@ center-of-mass that is outside the simulation box, LAMMPS wraps it
back into the box. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)
should be the values consistent with the current orientation of the
rigid body around its center of mass. The values are with respect to
the XYZ coordinate axes, not with respect to the prinicpal axes of the
rigid body itself. LAMMPS performs the latter calcultion internally.
the simulation box XYZ axes, not with respect to the prinicpal axes of
the rigid body itself. LAMMPS performs the latter calculation
internally.
IMPORTANT NOTE: The last point means that you cannot restart a
simulation with rigid bodies using the

View File

@ -20,7 +20,7 @@
<PRE>keyword = <I>dmax</I> or <I>line</I>
<I>dmax</I> value = max
max = maximum distance for line search to move (distance units)
<I>line</I> value = <I>backtrack</I> or <I>quadratic</I>or <I>forcezero</I>
<I>line</I> value = <I>backtrack</I> or <I>quadratic</I> or <I>forcezero</I>
backtrack,quadratic,forcezero = style of linesearch to use
</PRE>

View File

@ -16,7 +16,7 @@ one or more keyword/value pairs may be listed :ulb,l
keyword = {dmax} or {line}
{dmax} value = max
max = maximum distance for line search to move (distance units)
{line} value = {backtrack} or {quadratic}or {forcezero}
{line} value = {backtrack} or {quadratic} or {forcezero}
backtrack,quadratic,forcezero = style of linesearch to use :pre
:ule

View File

@ -92,6 +92,8 @@ would be 10.2 Angstroms.
<P>The E_TORSION term is an explicit 4-body potential that describes
various dihedral angle preferences in hydrocarbon configurations.
</P>
<HR>
<P>Only a single pair_coeff command is used with the <I>airebo</I> or <I>rebo</I>
style which specifies an AIREBO potential file with parameters for C
and H. Note that the <I>rebo</I> style in LAMMPS uses the same

View File

@ -86,6 +86,8 @@ would be 10.2 Angstroms.
The E_TORSION term is an explicit 4-body potential that describes
various dihedral angle preferences in hydrocarbon configurations.
:line
Only a single pair_coeff command is used with the {airebo} or {rebo}
style which specifies an AIREBO potential file with parameters for C
and H. Note that the {rebo} style in LAMMPS uses the same

View File

@ -99,6 +99,7 @@ section of <A HREF = "Section_commands.html#cmd_5">this page</A>.
</UL>
<UL><LI><A HREF = "pair_adp.html">pair_style adp</A> - angular dependent potential (ADP) of Mishin
<LI><A HREF = "pair_airebo.html">pair_style airebo</A> - AIREBO potential of Stuart
<LI><A HREF = "pair_bop.html">pair_style bop</A> - BOP potential of Pettifor
<LI><A HREF = "pair_born.html">pair_style born</A> - Born-Mayer-Huggins potential
<LI><A HREF = "pair_born.html">pair_style born/coul/long</A> - Born-Mayer-Huggins with long-range Coulombics
<LI><A HREF = "pair_born.html">pair_style born/coul/wolf</A> - Born-Mayer-Huggins with Coulombics via Wolf potential

View File

@ -96,6 +96,7 @@ section of "this page"_Section_commands.html#cmd_5.
"pair_style adp"_pair_adp.html - angular dependent potential (ADP) of Mishin
"pair_style airebo"_pair_airebo.html - AIREBO potential of Stuart
"pair_style bop"_pair_bop.html - BOP potential of Pettifor
"pair_style born"_pair_born.html - Born-Mayer-Huggins potential
"pair_style born/coul/long"_pair_born.html - Born-Mayer-Huggins with long-range Coulombics
"pair_style born/coul/wolf"_pair_born.html - Born-Mayer-Huggins with Coulombics via Wolf potential

View File

@ -101,6 +101,7 @@ section of <A HREF = "Section_commands.html#cmd_5">this page</A>.
</UL>
<UL><LI><A HREF = "pair_adp.html">pair_style adp</A> - angular dependent potential (ADP) of Mishin
<LI><A HREF = "pair_airebo.html">pair_style airebo</A> - AIREBO potential of Stuart
<LI><A HREF = "pair_bop.html">pair_style bop</A> - BOP potential of Pettifor
<LI><A HREF = "pair_born.html">pair_style born</A> - Born-Mayer-Huggins potential
<LI><A HREF = "pair_born.html">pair_style born/coul/long</A> - Born-Mayer-Huggins with long-range Coulombics
<LI><A HREF = "pair_born.html">pair_style born/coul/wolf</A> - Born-Mayer-Huggins with Coulombics via Wolf potential

View File

@ -98,6 +98,7 @@ section of "this page"_Section_commands.html#cmd_5.
"pair_style adp"_pair_adp.html - angular dependent potential (ADP) of Mishin
"pair_style airebo"_pair_airebo.html - AIREBO potential of Stuart
"pair_style bop"_pair_bop.html - BOP potential of Pettifor
"pair_style born"_pair_born.html - Born-Mayer-Huggins potential
"pair_style born/coul/long"_pair_born.html - Born-Mayer-Huggins with long-range Coulombics
"pair_style born/coul/wolf"_pair_born.html - Born-Mayer-Huggins with Coulombics via Wolf potential

View File

@ -2,6 +2,9 @@
#precision setting: 1 single, 2 double, 4 mixed
precision ?= 4
#verbose setting: 0 no, 1 yes
verbose ?= 1
#GPU architecture (compute capability): 13, 20, 21
arch ?= 20

126
potentials/AlSiMgCuFe.meam Normal file
View File

@ -0,0 +1,126 @@
# MEAM Al, Si, Mg, Cu, Fe alloy potential
# use with AlS SiS MgS CuS FeS from library.meam
# http://dx.doi.org/10.1103/PhysRevB.85.245102
Cmin(1,1,1) = 0.8
repuls(1,1) = 0.1
Cmin(3,3,3) = 0.8
Cmin(4,4,4) = 0.8
Cmin(5,5,5) = 0.68
repuls(5,5) = 0.3
Cmax(5,5,5) = 1.9
nn2(1,1)=1
nn2(1,2)=1
nn2(1,3)=1
nn2(1,4)=1
nn2(1,5)=1
nn2(2,2)=1
nn2(2,3)=1
nn2(2,4)=1
nn2(2,5)=1
nn2(3,3)=1
nn2(3,4)=1
nn2(3,5)=1
nn2(4,4)=1
nn2(4,5)=1
nn2(5,5)=1
lattce(1,2)='b1'
delta(1,2)=+0.28
alpha(1,2)=4.56
re(1,2)=2.62
Cmin(1,1,2) = 0.50
Cmin(2,2,1) = 2.00
Cmin(1,2,1) = 2.00
Cmin(1,2,2) = 2.00
lattce(1,3)='b1'
delta(1,3)=+0.23
alpha(1,3)=4.52
re(1,3)=2.87
Cmin(1,1,3) = 2.00
Cmin(3,3,1) = 0.00
Cmin(1,3,1) = 2.00
Cmin(1,3,3) = 0.00
lattce(1,4)='b1'
delta(1,4)=+0.19
alpha(1,4)=4.65
re(1,4)=2.53
Cmin(1,1,4) = 0.00
Cmin(4,4,1) = 2.00
Cmin(1,4,1) = 2.00
Cmin(1,4,4) = 2.00
lattce(1,5)='b1'
delta(1,5)=+0.26
alpha(1,5)=4.64
re(1,5)=2.45
Cmin(1,1,5) = 0.90
Cmin(5,5,1) = 0.10
Cmin(1,5,1) = 2.00
Cmin(1,5,5) = 2.00
lattce(2,3)='b1'
delta(2,3)=+0.2
alpha(2,3)=4.73
re(2,3)=2.75
Cmin(2,2,3) = 1.00
Cmin(3,3,2) = 1.00
Cmin(2,3,2) = 2.00
Cmin(2,3,3) = 2.00
lattce(2,4)='b1'
delta(2,4)=+0.14
alpha(2,4)=4.74
re(2,4)=2.46
Cmin(2,2,4) = 0.00
Cmin(4,4,2) = 0.00
Cmin(2,4,2) = 2.00
Cmin(2,4,4) = 2.00
lattce(2,5)='b1'
delta(2,5)=-0.07
alpha(2,5)=5.17
re(2,5)=2.39
Cmin(2,2,5) = 1.00
Cmin(5,5,2) = 1.00
Cmin(2,5,2) = 2.00
Cmin(2,5,5) = 0.00
attrac(2,5) = 0.1
repuls(2,5) = 0.1
lattce(3,4)='b1'
delta(3,4)=+0.23
alpha(3,4)=4.70
re(3,4)=2.63
Cmin(3,3,4) = 2.00
Cmin(4,4,3) = 0.00
Cmin(3,4,3) = 2.00
Cmin(3,4,4) = 2.00
lattce(3,5)='b1'
delta(3,5)=+0.6
alpha(3,5)=4.96
re(3,5)=2.61
Cmin(3,3,5) = 0.65
Cmin(5,5,3) = 0.00
Cmin(3,5,3) = 2.00
Cmin(3,5,5) = 2.00
lattce(4,5)='b1'
delta(4,5)=+0.63
alpha(4,5)=5.21
re(4,5)=2.42
Cmin(5,5,4)=0.00
attrac(5,2) = 0.1
repuls(5,2) = 0.1
rc = 5.0
ialloy=1
augt1=0
delr=0.25658351
emb_lin_neg=1
bkgd_dyn=1

44
potentials/CdTe.bop Normal file
View File

@ -0,0 +1,44 @@
elements:
2
48 1.124118e+02 Cd
52 1.276030e+02 Te
global:
1.00e-05 1.00e-05 1.00e-05 1.00e-05 1.00e-05 1.00e-03 1.00e-05
2 9.900000e-01 1.000000e-02
2.0 0.625 1
1.573798e+01 1.137622e+00 2.087779e+00
2.218068e+01 2.689731e+00
2.000000e+00 0.000000e+00
ptrs:
0.000000e+00 1.000000e+00 4.200000e-01
0.000000e+00 1.000000e+00 4.606863e-01
pairs:
3.127600e+00 3.127600e+00 3.730300e+00 4.333000e+00
3.263155e+00 1.553883e+00 2.800000e+00
1.863695e-01 2.383177e-01 9.759853e-02
0.000000e+00 5.611298e-01 0.000000e+00
1.000000e+00 1.000000e+00 0.000000e+00
4.318628e-01 1.500000e+01 1.000000e+06
3.127600e+00 3.127600e+00 4.013800e+00 4.900000e+00
2.587831e+00 1.287478e+00 2.811251e+00
6.314400e-01 8.252896e-01 3.174259e-02
0.000000e+00 1.286955e+00 0.000000e+00
1.000000e+00 1.000000e+00 0.000000e+00
5.000000e-01 0.000000e+00 1.000000e+06
3.162600e+00 3.162600e+00 3.804600e+00 4.446500e+00
2.458846e+00 1.223306e+00 2.799998e+00
8.769118e-01 7.826353e-01 5.312050e-01
0.000000e+00 1.014809e+00 0.000000e+00
1.000000e+00 1.000000e+00 0.000000e+00
3.312269e-01 -2.860190e+00 1.000000e+06
tris:
3.968701e-01 8.810195e-01 -2.778897e-01
-1.007128e-01 10.000000e-01 1.007128e-01
2.007322e-01 6.000000e-01 1.992678e-01
2.095238e-01 6.000000e-01 1.904762e-01
3.928496e-03 9.999272e-01 -3.855665e-03
1.171817e-01 8.348116e-01 4.800670e-02

4832
potentials/CdTe.bop.table Normal file

File diff suppressed because it is too large Load Diff

44
potentials/GaAs.bop Normal file
View File

@ -0,0 +1,44 @@
elements:
2
31 0.697230E+02 Ga
33 0.749216E+02 As
global:
0.10E-04 0.10E-04 0.10E-04 0.10E-04 0.10E-04 0.10E-04 0.10E-04
3 -0.164498E+01 0.164498E+01
1.0 0.625 1
0.157380E+02 0.113762E+01 0.208778E+01
0.221807E+02 0.268973E+01
0.200000E+01 0.000000E+00
ptrs:
0.000000E+00 0.100000E+01 0.720160E+00
0.000000E+00 0.100000E+01 0.427095E+00
pairs:
0.242350E+01 0.242350E+01 0.300000E+01 0.370000E+01
0.145090E+01 0.725450E+00 0.262344E+01
0.155200E+01 0.152326E+01 0.975201E-01
0.000000E+00 0.151928E+01 0.000000E+00
0.100000E+01 0.100000E+01 0.000000E+00
0.445550E+00 0.256485E+02 0.100000E-04
0.238000E+01 0.238000E+01 0.300000E+01 0.370000E+01
0.196519E+01 0.982590E+00 0.262343E+01
0.210000E+01 0.179589E+01 0.323325E+00
0.000000E+00 0.853384E+00 0.000000E+00
0.100000E+01 0.100000E+01 0.000000E+00
0.500000E+00 0.000000E+00 0.100000E-04
0.212000E+01 0.212000E+01 0.300000E+01 0.365000E+01
0.130585E+01 0.652930E+00 0.263039E+01
0.398000E+01 0.308774E+01 0.926321E+00
0.000000E+00 0.360162E+01 0.000000E+00
0.100000E+01 0.100000E+01 0.000000E+00
0.655795E+00 -0.760039E+00 0.100000E-04
tris:
0.921519E-01 0.720160E+00 0.187688E+00
0.537305E-01 0.720160E+00 0.226109E+00
0.256222E+00 0.668583E+00 0.751959E-01
0.234227E+00 0.765773E+00 0.000000E+00
-0.318731E-01 0.749790E+00 0.282083E+00
-0.211787E-01 0.766727E+00 0.254452E+00

4832
potentials/GaAs.bop.table Normal file

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,9 @@ citation information.
The suffix of each file indicates the pair style it is used with:
airebo AI-REBO (Brenner) potential
airebo AI-REBO and REBO potentials
bop BOP potential, analytic form
bop.table BOP potential, tabulated form
eam embedded atom method (EAM) single element, DYNAMO funcfl format
eam.alloy EAM multi-element alloy, DYNAMO setfl format
eam.fs Finnis-Sinclair EAM format (single element or alloy)

View File

@ -3,6 +3,21 @@
# alpha b0 b1 b2 b3 alat esub asub
# t0 t1 t2 t3 rozero ibar
'AlS' 'fcc' 12. 13 26.9815
4.64 2.04 3.00 6.0 1.50 4.05 3.353 1.07
1.0 +4.50 -2.30 8.01 1.0 -5
'SiS' 'dia' 4. 14 28.086
4.87 4.4 5.5 5.5 5.5 5.431 4.63 1.
1.0 2.05 4.47 -1.80 2.2 -5
'MgS' 'hcp' 12. 12 24.305
5.52 4.0 3.0 0.2 1.2 3.194 1.51 0.80
1.0 10.04 9.49 -4.3 0.63 -5
'CuS' 'fcc' 12. 29 63.54
5.11 3.634 2.20 6 2.20 3.62 3.54 1.07
1.0 4.91 2.49 2.95 1.10 -5
'FeS' 'bcc' 8 26 55.847
5.0270 3.500 2 1.00 1 2.851 4.28 0.5550
1 -1.6 12.5 -1.40 1.0 -5
'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

View File

@ -97,7 +97,6 @@ void AngleClass2::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -107,7 +106,6 @@ void AngleClass2::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -72,7 +72,6 @@ void BondClass2::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);

View File

@ -135,26 +135,22 @@ void DihedralClass2::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// distances

View File

@ -118,17 +118,14 @@ void ImproperClass2::compute(int eflag, int vflag)
delr[0][0] = x[i1][0] - x[i2][0];
delr[0][1] = x[i1][1] - x[i2][1];
delr[0][2] = x[i1][2] - x[i2][2];
domain->minimum_image(delr[0]);
delr[1][0] = x[i3][0] - x[i2][0];
delr[1][1] = x[i3][1] - x[i2][1];
delr[1][2] = x[i3][2] - x[i2][2];
domain->minimum_image(delr[1]);
delr[2][0] = x[i4][0] - x[i2][0];
delr[2][1] = x[i4][1] - x[i2][1];
delr[2][2] = x[i4][2] - x[i2][2];
domain->minimum_image(delr[2]);
// bond lengths and associated values
@ -661,17 +658,14 @@ void ImproperClass2::angleangle(int eflag, int vflag)
delxAB = x[i1][0] - x[i2][0];
delyAB = x[i1][1] - x[i2][1];
delzAB = x[i1][2] - x[i2][2];
domain->minimum_image(delxAB,delyAB,delzAB);
delxBC = x[i3][0] - x[i2][0];
delyBC = x[i3][1] - x[i2][1];
delzBC = x[i3][2] - x[i2][2];
domain->minimum_image(delxBC,delyBC,delzBC);
delxBD = x[i4][0] - x[i2][0];
delyBD = x[i4][1] - x[i2][1];
delzBD = x[i4][2] - x[i2][2];
domain->minimum_image(delxBD,delyBD,delzBD);
// bond lengths

View File

@ -576,7 +576,7 @@ int AtomVecDipole::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = q[i];
buf[m++] = mu[i][0];
@ -609,7 +609,7 @@ int AtomVecDipole::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
q[nlocal] = buf[m++];
mu[nlocal][0] = buf[m++];
@ -661,7 +661,7 @@ int AtomVecDipole::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -700,7 +700,7 @@ int AtomVecDipole::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -737,7 +737,8 @@ void AtomVecDipole::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -756,7 +757,7 @@ void AtomVecDipole::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecDipole::data_atom(double *coord, int imagetmp, char **values)
void AtomVecDipole::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -50,12 +50,13 @@ class AtomVecDipole : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
double *q,**mu,**omega,**torque;
};

View File

@ -1,38 +1,49 @@
# Depend.sh = Install/unInstall files for dependent packages
# only Install/unInstall if dependent package is already installed
# all packages with dependencies should be listed here
# install dependent child files when parent files installed
# uninstall dependent child files when parent files uninstalled
# decisions on individual files are made by package Install.sh scripts
# all packages which contain one or more files that depend on
# other packages should be listed here, in both the 1 and 0 clauses
# this script is invoked after any parent package is installed/uninstalled
# this script re-installs child packages that depend on the parent,
# but only if the child package is already installed
# this is necessary to insure the child package installs
# only child files whose parent package files are now installed
# decisions on installing individual child files are made by
# the Install.sh script in the child package
if (test $1 = 1) then
if (test -e pair_lj_cut_opt.h) then
cd OPT; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_gpu.h) then
cd GPU; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_opt.h) then
cd OPT; /bin/sh Install.sh 1; cd ..
fi
if (test -e cg_cmm_params.h) then
cd USER-CG-CMM; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_cuda.h) then
cd USER-CUDA; /bin/sh Install.sh 1; cd ..
fi
if (test -e fix_imd.h) then
cd USER-MISC; /bin/sh Install.sh 1; cd ..
fi
elif (test $1 = 0) then
if (test -e pair_lj_cut_opt.h) then
cd OPT; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_gpu.h) then
cd GPU; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_opt.h) then
cd OPT; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
if (test -e cg_cmm_params.h) then
cd USER-CG-CMM; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
if (test -e pair_lj_cut_cuda.h) then
cd USER-CUDA; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
if (test -e fix_imd.h) then
cd USER-MISC; /bin/sh Install.sh 0; /bin/sh Install.sh 1; cd ..
fi
fi

View File

@ -71,6 +71,10 @@ Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
W: Cannot include log terms without 1/r terms; setting flagHI to 1
Self-explanatory.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.

View File

@ -72,6 +72,10 @@ Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
W: Cannot include log terms without 1/r terms; setting flagHI to 1
Self-explanatory.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
@ -90,6 +94,6 @@ All particles must be the same finite size.
E: Using pair lubricate with inconsistent fix deform remap option
If fix deform is used, the remap v option is required.
Must use remap v option with fix deform with this pair style.
*/

View File

@ -87,6 +87,10 @@ Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
W: Cannot include log terms without 1/r terms; setting flagHI to 1.
Self-explanatory.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.

View File

@ -56,6 +56,10 @@ Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
W: Cannot include log terms without 1/r terms; setting flagHI to 1
Self-explanatory.
E: Pair lubricateU/poly requires newton pair off
Self-explanatory.

View File

@ -476,8 +476,8 @@ void PairLubricatePoly::init_style()
// check for fix deform, if exists it must use "remap v"
// If box will change volume, set appropriate flag so that volume
// and v.f. corrections are re-calculated at every step.
//
// If available volume is different from box volume
// if available volume is different from box volume
// due to walls, set volume appropriately; if walls will
// move, set appropriate flag so that volume and v.f. corrections
// are re-calculated at every step.

View File

@ -55,6 +55,10 @@ E: Pair lubricate/poly requires extended particles
One of the particles has radius 0.0.
E: Using pair lubricate with inconsistent fix deform remap option
Must use remap v option with fix deform with this pair style.
E: Using pair lubricate/poly with inconsistent fix deform remap option
If fix deform is used, the remap v option is required.

View File

@ -5,7 +5,7 @@
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
@ -38,30 +38,30 @@ using namespace LAMMPS_NS;
// External functions from cuda library for atom decomposition
int eam_gpu_init(const int ntypes, double host_cutforcesq,
int **host_type2rhor, int **host_type2z2r,
int **host_type2rhor, int **host_type2z2r,
int *host_type2frho, double ***host_rhor_spline,
double ***host_z2r_spline, double ***host_frho_spline,
double ***host_z2r_spline, double ***host_frho_spline,
double rdr, double rdrho, int nrhor, int nrho, int nz2r,
int nfrho, int nr, const int nlocal, const int nall,
const int max_nbors, const int maxspecial,
const double cell_size, int &gpu_mode, FILE *screen,
int &fp_size);
int nfrho, int nr, const int nlocal, const int nall,
const int max_nbors, const int maxspecial,
const double cell_size, int &gpu_mode, FILE *screen,
int &fp_size);
void eam_gpu_clear();
int** eam_gpu_compute_n(const int ago, const int inum_full, const int nall,
double **host_x, int *host_type, double *sublo,
double *subhi, int *tag, int **nspecial, int **special,
const bool eflag, const bool vflag, const bool eatom,
const bool vatom, int &host_start, int **ilist,
int **jnum, const double cpu_time, bool &success,
int &inum, void **fp_ptr);
void eam_gpu_compute(const int ago, const int inum_full, const int nlocal,
const int nall,double **host_x, int *host_type,
int *ilist, int *numj, int **firstneigh,
const bool eflag, const bool vflag,
const bool eatom, const bool vatom, int &host_start,
const double cpu_time, bool &success, void **fp_ptr);
double **host_x, int *host_type, double *sublo,
double *subhi, int *tag, int **nspecial, int **special,
const bool eflag, const bool vflag, const bool eatom,
const bool vatom, int &host_start, int **ilist,
int **jnum, const double cpu_time, bool &success,
int &inum, void **fp_ptr);
void eam_gpu_compute(const int ago, const int inum_full, const int nlocal,
const int nall,double **host_x, int *host_type,
int *ilist, int *numj, int **firstneigh,
const bool eflag, const bool vflag,
const bool eatom, const bool vatom, int &host_start,
const double cpu_time, bool &success, void **fp_ptr);
void eam_gpu_compute_force(int *ilist, const bool eflag, const bool vflag,
const bool eatom, const bool vatom);
const bool eatom, const bool vatom);
double eam_gpu_bytes();
/* ---------------------------------------------------------------------- */
@ -70,7 +70,7 @@ PairEAMGPU::PairEAMGPU(LAMMPS *lmp) : PairEAM(lmp), gpu_mode(GPU_FORCE)
{
respa_enable = 0;
cpu_time = 0.0;
GPU_EXTRA::gpu_ready(lmp->modify, lmp->error);
GPU_EXTRA::gpu_ready(lmp->modify, lmp->error);
}
/* ----------------------------------------------------------------------
@ -100,44 +100,44 @@ void PairEAMGPU::compute(int eflag, int vflag)
evdwl = 0.0;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = vflag_fdotr = eflag_global = eflag_atom = 0;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
// compute density on each atom on GPU
int nall = atom->nlocal + atom->nghost;
int nall = atom->nlocal + atom->nghost;
int inum, host_start, inum_dev;
bool success = true;
int *ilist, *numneigh, **firstneigh;
if (gpu_mode != GPU_FORCE) {
int *ilist, *numneigh, **firstneigh;
if (gpu_mode != GPU_FORCE) {
inum = atom->nlocal;
firstneigh = eam_gpu_compute_n(neighbor->ago, inum, nall, atom->x,
atom->type, domain->sublo, domain->subhi,
atom->tag, atom->nspecial, atom->special,
eflag, vflag, eflag_atom, vflag_atom,
host_start, &ilist, &numneigh, cpu_time,
success, inum_dev, &fp_pinned);
atom->type, domain->sublo, domain->subhi,
atom->tag, atom->nspecial, atom->special,
eflag, vflag, eflag_atom, vflag_atom,
host_start, &ilist, &numneigh, cpu_time,
success, inum_dev, &fp_pinned);
} else { // gpu_mode == GPU_FORCE
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
eam_gpu_compute(neighbor->ago, inum, nlocal, nall, atom->x, atom->type,
ilist, numneigh, firstneigh, eflag, vflag, eflag_atom,
vflag_atom, host_start, cpu_time, success, &fp_pinned);
ilist, numneigh, firstneigh, eflag, vflag, eflag_atom,
vflag_atom, host_start, cpu_time, success, &fp_pinned);
}
if (!success)
error->one(FLERR,"Insufficient memory on accelerator");
// communicate derivative of embedding function
comm->forward_comm_pair(this);
// compute forces on each atom on GPU
if (gpu_mode != GPU_FORCE)
if (gpu_mode != GPU_FORCE)
eam_gpu_compute_force(NULL, eflag, vflag, eflag_atom, vflag_atom);
else
eam_gpu_compute_force(ilist, eflag, vflag, eflag_atom, vflag_atom);
@ -149,14 +149,14 @@ void PairEAMGPU::compute(int eflag, int vflag)
void PairEAMGPU::init_style()
{
if (force->newton_pair)
if (force->newton_pair)
error->all(FLERR,"Cannot use newton pair with eam/gpu pair style");
// convert read-in file(s) to arrays and spline them
file2array();
array2spline();
// Repeat cutsq calculation because done after call to init_style
double maxcut = -1.0;
double cut;
@ -173,18 +173,18 @@ void PairEAMGPU::init_style()
}
}
double cell_size = sqrt(maxcut) + neighbor->skin;
int maxspecial=0;
if (atom->molecular)
maxspecial=atom->maxspecial;
int fp_size;
int success = eam_gpu_init(atom->ntypes+1, cutforcesq, type2rhor, type2z2r,
type2frho, rhor_spline, z2r_spline, frho_spline,
rdr, rdrho, nrhor, nrho, nz2r, nfrho, nr,
atom->nlocal, atom->nlocal+atom->nghost, 300,
maxspecial, cell_size, gpu_mode, screen, fp_size);
type2frho, rhor_spline, z2r_spline, frho_spline,
rdr, rdrho, nrhor, nrho, nz2r, nfrho, nr,
atom->nlocal, atom->nlocal+atom->nghost, 300,
maxspecial, cell_size, gpu_mode, screen, fp_size);
GPU_EXTRA::check_flag(success,error,world);
if (gpu_mode == GPU_FORCE) {
int irequest = neighbor->request(this);
neighbor->requests[irequest]->half = 0;
@ -199,8 +199,51 @@ void PairEAMGPU::init_style()
/* ---------------------------------------------------------------------- */
int PairEAMGPU::pack_comm(int n, int *list, double *buf, int pbc_flag,
int *pbc)
double PairEAMGPU::single(int i, int j, int itype, int jtype,
double rsq, double factor_coul, double factor_lj,
double &fforce)
{
int m;
double r,p,rhoip,rhojp,z2,z2p,recip,phi,phip,psip;
double *coeff;
r = sqrt(rsq);
p = r*rdr + 1.0;
m = static_cast<int> (p);
m = MIN(m,nr-1);
p -= m;
p = MIN(p,1.0);
coeff = rhor_spline[type2rhor[itype][jtype]][m];
rhoip = (coeff[0]*p + coeff[1])*p + coeff[2];
coeff = rhor_spline[type2rhor[jtype][itype]][m];
rhojp = (coeff[0]*p + coeff[1])*p + coeff[2];
coeff = z2r_spline[type2z2r[itype][jtype]][m];
z2p = (coeff[0]*p + coeff[1])*p + coeff[2];
z2 = ((coeff[3]*p + coeff[4])*p + coeff[5])*p + coeff[6];
double fp_i,fp_j;
if (fp_single == false) {
fp_i = ((double*)fp_pinned)[i];
fp_j = ((double*)fp_pinned)[j];
} else {
fp_i = ((float*)fp_pinned)[i];
fp_j = ((float*)fp_pinned)[j];
}
recip = 1.0/r;
phi = z2*recip;
phip = z2p*recip - phi*recip;
psip = fp_i*rhojp + fp_j*rhoip + phip;
fforce = -psip*recip;
return phi;
}
/* ---------------------------------------------------------------------- */
int PairEAMGPU::pack_comm(int n, int *list, double *buf, int pbc_flag,
int *pbc)
{
int i,j,m;

View File

@ -5,7 +5,7 @@
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
@ -32,6 +32,7 @@ class PairEAMGPU : public PairEAM {
virtual ~PairEAMGPU();
void compute(int, int);
void init_style();
double single(int, int, int, int, double, double, double, double &);
double memory_usage();
int pack_comm(int, int *, double *, int, int *);
@ -44,7 +45,7 @@ class PairEAMGPU : public PairEAM {
double cpu_time;
int *gpulist;
void *fp_pinned;
bool fp_single;
bool fp_single;
};
}

View File

@ -44,6 +44,7 @@ Ewald::Ewald(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg)
if (narg != 1) error->all(FLERR,"Illegal kspace_style ewald command");
group_group_enable = 1;
group_allocate_flag = 0;
accuracy_relative = atof(arg[0]);
@ -67,7 +68,7 @@ Ewald::Ewald(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg)
Ewald::~Ewald()
{
deallocate();
deallocate_groups();
if (group_allocate_flag) deallocate_groups();
memory->destroy(ek);
memory->destroy3d_offset(cs,-kmax_created);
memory->destroy3d_offset(sn,-kmax_created);
@ -156,10 +157,11 @@ void Ewald::init()
// zprd used rather than zprd_slab
if (!gewaldflag) {
if (accuracy <= 0.0)
error->all(FLERR,"KSpace accuracy must be > 0");
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
if (g_ewald >= 1.0)
error->all(FLERR,"KSpace accuracy too large to estimate G vector");
g_ewald = sqrt(-log(g_ewald)) / cutoff;
if (g_ewald >= 1.0) g_ewald = (1.35 - 0.15*log(accuracy))/cutoff;
else g_ewald = sqrt(-log(g_ewald)) / cutoff;
}
// setup Ewald coefficients so can print stats
@ -174,6 +176,8 @@ void Ewald::init()
double lpr = sqrt(lprx*lprx + lpry*lpry + lprz*lprz) / sqrt(3.0);
double spr = 2.0*q2 * exp(-g_ewald*g_ewald*cutoff*cutoff) /
sqrt(natoms*cutoff*xprd*yprd*zprd_slab);
double tpr = estimate_table_accuracy(spr);
double accuracy = sqrt(lpr*lpr + spr*spr + tpr*tpr);
// stats
@ -181,18 +185,18 @@ void Ewald::init()
if (screen) {
fprintf(screen," G vector (1/distance) = %g\n",g_ewald);
fprintf(screen," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(screen," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(screen," KSpace vectors: actual max1d max3d = %d %d %d\n",
kcount,kmax,kmax3d);
}
if (logfile) {
fprintf(logfile," G vector (1/distnace) = %g\n",g_ewald);
fprintf(logfile," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(logfile," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(logfile," KSpace vectors: actual max1d max3d = %d %d %d\n",
kcount,kmax,kmax3d);
}

View File

@ -119,4 +119,12 @@ W: System is not charge neutral, net charge = %g
The total charge on all atoms on the system is not 0.0, which
is not valid for Ewald or PPPM.
E: KSpace accuracy must be > 0
The kspace accuracy designated in the input must be greater than zero.
E: Cannot (yet) use Kspace slab correction with compute group/group
This option is not yet supported.
*/

View File

@ -57,6 +57,16 @@ class PairLJCutCoulLongTIP4P : public PairLJCutCoulLong {
/* ERROR/WARNING messages:
E: TIP4P hydrogen is missing
The TIP4P pairwise computation failed to find the correct H atom
within a water molecule.
E: TIP4P hydrogen has incorrect atom type
The TIP4P pairwise computation found an H atom whose type does not
agree with the specified H type.
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
@ -92,14 +102,9 @@ E: Must use an angle style with TIP4P potential
TIP4P potentials assume angles in water are constrained by a fix shake
command.
E: TIP4P hydrogen is missing
E: Water H epsilon must be 0.0 for pair style lj/cut/coul/long/tip4p
The TIP4P pairwise computation failed to find the correct H atom
within a water molecule.
E: TIP4P hydrogen has incorrect atom type
The TIP4P pairwise computation found an H atom whose type does not
agree with the specified H type.
This is because LAMMPS does not compute the Lennard-Jones interactions
with these particles for efficiency reasons.
*/

View File

@ -1003,10 +1003,11 @@ void PPPM::set_grid()
bigint natoms = atom->natoms;
if (!gewaldflag) {
if (accuracy <= 0.0)
error->all(FLERR,"KSpace accuracy must be > 0");
g_ewald = accuracy*sqrt(natoms*cutoff*xprd*yprd*zprd) / (2.0*q2);
if (g_ewald >= 1.0)
error->all(FLERR,"KSpace accuracy too large to estimate G vector");
g_ewald = sqrt(-log(g_ewald)) / cutoff;
if (g_ewald >= 1.0) g_ewald = (1.35 - 0.15*log(accuracy))/cutoff;
else g_ewald = sqrt(-log(g_ewald)) / cutoff;
}
// set optimal nx_pppm,ny_pppm,nz_pppm based on order and accuracy
@ -1090,6 +1091,8 @@ void PPPM::set_grid()
double lpr = sqrt(lprx*lprx + lpry*lpry + lprz*lprz) / sqrt(3.0);
double spr = 2.0*q2 * exp(-g_ewald*g_ewald*cutoff*cutoff) /
sqrt(natoms*cutoff*xprd*yprd*zprd_slab);
double tpr = estimate_table_accuracy(spr);
double accuracy = sqrt(lpr*lpr + spr*spr + tpr*tpr);
// free local memory
@ -1108,9 +1111,9 @@ void PPPM::set_grid()
fprintf(screen," grid = %d %d %d\n",nx_pppm,ny_pppm,nz_pppm);
fprintf(screen," stencil order = %d\n",order);
fprintf(screen," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(screen," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(screen," using %s precision FFTs\n",fft_prec);
}
if (logfile) {
@ -1118,9 +1121,9 @@ void PPPM::set_grid()
fprintf(logfile," grid = %d %d %d\n",nx_pppm,ny_pppm,nz_pppm);
fprintf(logfile," stencil order = %d\n",order);
fprintf(logfile," estimated absolute RMS force accuracy = %g\n",
MAX(lpr,spr));
accuracy);
fprintf(logfile," estimated relative force accuracy = %g\n",
MAX(lpr,spr)/two_charge_force);
accuracy/two_charge_force);
fprintf(logfile," using %s precision FFTs\n",fft_prec);
}
}

View File

@ -196,9 +196,9 @@ E: Incorrect boundaries with slab PPPM
Must have periodic x,y dimensions and non-periodic z dimension to use
2d slab option with PPPM.
E: PPPM order cannot be greater than %d
E: PPPM order cannot be < 2 or > than %d
Self-explanatory.
This is a limitation of the PPPM implementation in LAMMPS.
E: KSpace style is incompatible with Pair style
@ -245,6 +245,10 @@ to run, but can reduce the order no further. Try increasing the
accuracy of PPPM by reducing the tolerance size, thus inducing a
larger PPPM grid.
E: KSpace accuracy must be > 0
The kspace accuracy designated in the input must be greater than zero.
E: Cannot compute PPPM G
LAMMPS failed to compute a valid approximation for the PPPM g_ewald
@ -266,4 +270,8 @@ outside a processor's sub-domain or even the entire simulation box.
This indicates bad physics, e.g. due to highly overlapping atoms, too
large a timestep, etc.
E: Cannot (yet) use K-space slab correction with compute group/group
This option is not yet supported.
*/

View File

@ -4,8 +4,7 @@ SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# generally no need to edit this section
# unless additional compiler/linker flags or libraries needed for your machine
# specify flags and libraries needed for your compiler
CC = g++
CCFLAGS = -O -g

View File

@ -5,6 +5,7 @@ if (test $1 = 1) then
cp fix_qeq_comb.cpp ..
cp pair_adp.cpp ..
cp pair_airebo.cpp ..
cp pair_bop.cpp ..
cp pair_comb.cpp ..
cp pair_eam.cpp ..
cp pair_eam_alloy.cpp ..
@ -19,6 +20,7 @@ if (test $1 = 1) then
cp fix_qeq_comb.h ..
cp pair_adp.h ..
cp pair_airebo.h ..
cp pair_bop.h ..
cp pair_comb.h ..
cp pair_eam.h ..
cp pair_eam_alloy.h ..
@ -35,6 +37,7 @@ elif (test $1 = 0) then
rm -f ../fix_qeq_comb.cpp
rm -f ../pair_adp.cpp
rm -f ../pair_airebo.cpp
rm -f ../pair_bop.cpp
rm -f ../pair_comb.cpp
rm -f ../pair_eam.cpp
rm -f ../pair_eam_alloy.cpp
@ -49,6 +52,7 @@ elif (test $1 = 0) then
rm -f ../fix_qeq_comb.h
rm -f ../pair_adp.h
rm -f ../pair_airebo.h
rm -f ../pair_bop.h
rm -f ../pair_comb.h
rm -f ../pair_eam.h
rm -f ../pair_eam_alloy.h

9547
src/MANYBODY/pair_bop.cpp Normal file

File diff suppressed because it is too large Load Diff

270
src/MANYBODY/pair_bop.h Normal file
View File

@ -0,0 +1,270 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
The this work follows the formulation from (a) D.G. Pettifor, et al., Mat.
Sci. and Eng. A365, 2-13, (2004) and (b) D.A. Murdick, et al., Phys.
Rev. B 73, 045206 (2006). (c) D.K. Ward, et al., Phys. Rev. B 85, 115206
(2012)
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(bop,PairBOP)
#else
#ifndef LMP_PAIR_BOP_H
#define LMP_PAIR_BOP_H
#include "pair.h"
#include "update.h"
namespace LAMMPS_NS {
class PairBOP : public Pair {
public:
PairBOP(class LAMMPS *);
virtual ~PairBOP();
void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void init_style();
double init_one(int, int);
double memory_usage();
private:
int me;
int maxneigh; // maximum size of neighbor list on this processor
int update_list; // check for changing maximum size of neighbor list
int maxbopn; // maximum size of bop neighbor list for allocation
int maxnall; // maximum size of bop neighbor list for allocation
int *map; // mapping from atom types to elements
int nelements; // # of unique elments
int nr; // increments for the BOP potential
int nBOt; // second BO increments
int bop_types; // number of elments in potential
int npairs; // number of element pairs
char **elements; // names of unique elements
int ***elem2param;
int nparams;
int bop_step;
int allocate_pi;
int allocate_sigma;
int allocate_neigh;
int nb_pi,nb_sg;
int *BOP_index; // index for neighbor list position
int neigh_total; // total number of neighbors stored
int *cos_index; // index for neighbor cosine if not using on the fly
int *neigh_flag; // index for neighbor cosine if not using on the fly
int cos_total; // number of cosines stored if not using on the fly
int neigh_ct; // limit for large arrays
/*Parameters variables*/
int ncutoff,nfunc;
int a_flag;
double *pi_a,*pro_delta,*pi_delta;
double *pi_p,*pi_c,*sigma_r0,*pi_r0,*phi_r0;
double *sigma_rc,*pi_rc,*phi_rc,*r1,*sigma_beta0;
double *pi_beta0,*phi0,*sigma_n,*pi_n,*phi_m;
double *sigma_nc,*pi_nc,*phi_nc;
double *pro,*sigma_delta,*sigma_c,*sigma_a;
double ***sigma_g0,***sigma_g1,***sigma_g2,***sigma_g3;
double ***sigma_g4,*sigma_f,*sigma_k,*small3;
double small1,small2,small3g,small4,small5,small6,small7;
double which,alpha,alpha1,beta1,gamma1,alpha2,beta2,alpha3;
double beta3,rsmall,rbig,rcore;
char **words;
double cutmax; //max cutoff for all elements
int otfly; //Defines whether to do on the fly
//calculations of angles and distances
//on the fly will slow down calculations
//but requires less memory on = 1, off=0
int table; //determines the method for reading in
//potential parameters a preset table
//or generate the tables using a spline
/* Neigh variables */
double *rcut,*dr,*rdr;
double **disij,*rij;
/*Triple variables */
double *cosAng,***dcosAng,***dcAng;
/*Double variables */
double *betaS,*dBetaS,*betaP;
double *dBetaP,*repul,*dRepul;
/*Sigma variables */
int **itypeSigBk,*nSigBk;
double *sigB;
double *sigB1;
/*Pi variables */
int **itypePiBk,*nPiBk;
double *piB;
/*Grids1 variables */
double **pBetaS,**pBetaS1,**pBetaS2,**pBetaS3;
double **pBetaS4,**pBetaS5,**pBetaS6;
/*Grids2 variables */
double **pBetaP,**pBetaP1,**pBetaP2,**pBetaP3;
double **pBetaP4,**pBetaP5,**pBetaP6;
/*Grids3 variables */
double **pRepul,**pRepul1,**pRepul2,**pRepul3;
double **pRepul4,**pRepul5,**pRepul6;
/*Grids4 variables */
double **FsigBO,**FsigBO1,**FsigBO2,**FsigBO3;
double **FsigBO4,**FsigBO5,**FsigBO6;
double dBO,rdBO;
/* End of BOP variables */
double **rcmin,**rcmax,**rcmaxp;
struct B_PI{
double dAA[3];
double dBB[3];
double dPiB[3];
int temp;
int i;
int j;
};
B_PI *bt_pi;
struct B_SG{
double dAA[3];
double dBB[3];
double dCC[3];
double dDD[3];
double dEE[3];
double dEE1[3];
double dFF[3];
double dAAC[3];
double dBBC[3];
double dCCC[3];
double dDDC[3];
double dEEC[3];
double dFFC[3];
double dGGC[3];
double dUT[3];
double dSigB1[3];
double dSigB[3];
int temp;
int i;
int j;
};
B_SG *bt_sg;
void setPbetaS();
void setPbetaP();
void setPrepul();
void setSign();
void gneigh();
void theta();
void theta_mod();
void sigmaBo();
void PiBo();
void sigmaBo_otf();
void PiBo_otf();
void sigmaBo_noa();
void sigmaBo_noa_otf();
void memory_theta_create();
void memory_theta_destroy();
void memory_theta_grow();
double cutoff(double, double, int, double);
double betaSfunc(int, double);
double dBetaSfunc(int, double, double, double);
double betaPfunc(int, double);
double dBetaPfunc(int, double, double, double);
double repulfunc(int, double);
double dRepulfunc(int, double, double, double);
void read_file(char *);
void read_table(char *);
void allocate();
void create_pi(int);
void create_sigma(int);
void destroy_pi();
void destroy_sigma();
void grow_pi(int,int);
void grow_sigma(int,int);
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
E: Pair style BOP requires atom IDs
This is a requirement to use the BOP potential.
E: Pair style BOP requires newton pair on
See the newton command. This is a restriction to use the BOP
potential.
E: Pair style bop requires comm ghost cutoff at least 3x larger than %g
Use the communicate ghost command to set this. See the pair bop
doc page for more details.
E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation.
E: Too many atom pairs for pair bop
The number of atomic pairs exceeds the expected number. Check your
atomic structure to ensure that it is realistic.
E: Too many atom triplets for pair bop
The number of three atom groups for angle determinations exceeds the
expected number. Check your atomic structrure to ensure that it is
realistic.
E: Cannot open BOP potential file %s
The specified BOP potential file cannot be opened. Check that the
path and name are correct.
*/

View File

@ -204,7 +204,6 @@ void FixBondBreak::post_integrate()
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
if (rsq <= cutsq) continue;

View File

@ -82,7 +82,6 @@ void AngleCharmm::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -92,7 +91,6 @@ void AngleCharmm::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);
@ -102,7 +100,6 @@ void AngleCharmm::compute(int eflag, int vflag)
delxUB = x[i3][0] - x[i1][0];
delyUB = x[i3][1] - x[i1][1];
delzUB = x[i3][2] - x[i1][2];
domain->minimum_image(delxUB,delyUB,delzUB);
rsqUB = delxUB*delxUB + delyUB*delyUB + delzUB*delzUB;
rUB = sqrt(rsqUB);

View File

@ -73,7 +73,6 @@ void AngleCosine::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -83,7 +82,6 @@ void AngleCosine::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -65,7 +65,6 @@ void AngleCosineDelta::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -75,7 +74,6 @@ void AngleCosineDelta::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -80,7 +80,6 @@ void AngleCosinePeriodic::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -90,7 +89,6 @@ void AngleCosinePeriodic::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -79,7 +79,6 @@ void AngleCosineSquared::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -89,7 +88,6 @@ void AngleCosineSquared::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -75,7 +75,6 @@ void AngleHarmonic::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -85,7 +84,6 @@ void AngleHarmonic::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -91,7 +91,6 @@ void AngleTable::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -101,7 +100,6 @@ void AngleTable::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

View File

@ -528,7 +528,7 @@ int AtomVecAngle::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = molecule[i];
@ -578,7 +578,7 @@ int AtomVecAngle::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
molecule[nlocal] = static_cast<int> (buf[m++]);
@ -650,7 +650,7 @@ int AtomVecAngle::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -701,7 +701,7 @@ int AtomVecAngle::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -748,7 +748,8 @@ void AtomVecAngle::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -766,7 +767,7 @@ void AtomVecAngle::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecAngle::data_atom(double *coord, int imagetmp, char **values)
void AtomVecAngle::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -49,12 +49,13 @@ class AtomVecAngle : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
protected:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
int *molecule;
int **nspecial,**special;

View File

@ -507,7 +507,7 @@ int AtomVecBond::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = molecule[i];
@ -549,7 +549,7 @@ int AtomVecBond::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
molecule[nlocal] = static_cast<int> (buf[m++]);
@ -613,7 +613,7 @@ int AtomVecBond::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -656,7 +656,7 @@ int AtomVecBond::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -695,7 +695,8 @@ void AtomVecBond::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -712,7 +713,7 @@ void AtomVecBond::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecBond::data_atom(double *coord, int imagetmp, char **values)
void AtomVecBond::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -48,12 +48,13 @@ class AtomVecBond : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
int *molecule;
int **nspecial,**special;

View File

@ -597,7 +597,7 @@ int AtomVecFull::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = q[i];
buf[m++] = molecule[i];
@ -666,7 +666,7 @@ int AtomVecFull::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
q[nlocal] = buf[m++];
molecule[nlocal] = static_cast<int> (buf[m++]);
@ -758,7 +758,7 @@ int AtomVecFull::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -828,7 +828,7 @@ int AtomVecFull::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -894,7 +894,8 @@ void AtomVecFull::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -915,7 +916,7 @@ void AtomVecFull::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecFull::data_atom(double *coord, int imagetmp, char **values)
void AtomVecFull::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -49,12 +49,13 @@ class AtomVecFull : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
protected:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
double *q;
int *molecule;

View File

@ -585,7 +585,7 @@ int AtomVecMolecular::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = molecule[i];
@ -653,7 +653,7 @@ int AtomVecMolecular::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
molecule[nlocal] = static_cast<int> (buf[m++]);
@ -744,7 +744,7 @@ int AtomVecMolecular::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -813,7 +813,7 @@ int AtomVecMolecular::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -878,7 +878,8 @@ void AtomVecMolecular::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -898,7 +899,7 @@ void AtomVecMolecular::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecMolecular::data_atom(double *coord, int imagetmp, char **values)
void AtomVecMolecular::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -48,12 +48,13 @@ class AtomVecMolecular : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
int *molecule;
int **nspecial,**special;

View File

@ -72,7 +72,6 @@ void BondFENE::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
// force from log term

View File

@ -74,7 +74,6 @@ void BondFENEExpand::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
// force from log term

View File

@ -66,7 +66,6 @@ void BondHarmonic::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);

View File

@ -71,7 +71,6 @@ void BondMorse::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);

View File

@ -67,7 +67,6 @@ void BondNonlinear::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);

View File

@ -89,7 +89,6 @@ void BondQuartic::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;

View File

@ -83,7 +83,6 @@ void BondTable::compute(int eflag, int vflag)
delx = x[i1][0] - x[i2][0];
dely = x[i1][1] - x[i2][1];
delz = x[i1][2] - x[i2][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r = sqrt(rsq);

View File

@ -101,26 +101,22 @@ void DihedralCharmm::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
ax = vb1y*vb2zm - vb1z*vb2ym;
ay = vb1z*vb2xm - vb1x*vb2zm;
@ -269,7 +265,6 @@ void DihedralCharmm::compute(int eflag, int vflag)
delx = x[i1][0] - x[i4][0];
dely = x[i1][1] - x[i4][1];
delz = x[i1][2] - x[i4][2];
domain->minimum_image(delx,dely,delz);
rsq = delx*delx + dely*dely + delz*delz;
r2inv = 1.0/rsq;
r6inv = r2inv*r2inv*r2inv;

View File

@ -87,26 +87,22 @@ void DihedralHarmonic::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c,s calculation

View File

@ -90,26 +90,22 @@ void DihedralHelix::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c0 calculation

View File

@ -86,26 +86,22 @@ void DihedralMultiHarmonic::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c0 calculation

View File

@ -86,26 +86,22 @@ void DihedralOPLS::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c0 calculation

View File

@ -81,26 +81,22 @@ void ImproperCvff::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb2xm = -vb2x;
vb2ym = -vb2y;
vb2zm = -vb2z;
domain->minimum_image(vb2xm,vb2ym,vb2zm);
// 3rd bond
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c0 calculation

View File

@ -81,17 +81,14 @@ void ImproperHarmonic::compute(int eflag, int vflag)
vb1x = x[i1][0] - x[i2][0];
vb1y = x[i1][1] - x[i2][1];
vb1z = x[i1][2] - x[i2][2];
domain->minimum_image(vb1x,vb1y,vb1z);
vb2x = x[i3][0] - x[i2][0];
vb2y = x[i3][1] - x[i2][1];
vb2z = x[i3][2] - x[i2][2];
domain->minimum_image(vb2x,vb2y,vb2z);
vb3x = x[i4][0] - x[i3][0];
vb3y = x[i4][1] - x[i3][1];
vb3z = x[i4][2] - x[i3][2];
domain->minimum_image(vb3x,vb3y,vb3z);
ss1 = 1.0 / (vb1x*vb1x + vb1y*vb1y + vb1z*vb1z);
ss2 = 1.0 / (vb2x*vb2x + vb2y*vb2y + vb2z*vb2z);

View File

@ -84,21 +84,18 @@ void ImproperUmbrella::compute(int eflag, int vflag)
vb1x = x[i2][0] - x[i1][0];
vb1y = x[i2][1] - x[i1][1];
vb1z = x[i2][2] - x[i1][2];
domain->minimum_image(vb1x,vb1y,vb1z);
// 2nd bond
vb2x = x[i3][0] - x[i1][0];
vb2y = x[i3][1] - x[i1][1];
vb2z = x[i3][2] - x[i1][2];
domain->minimum_image(vb2x,vb2y,vb2z);
// 3rd bond
vb3x = x[i4][0] - x[i1][0];
vb3y = x[i4][1] - x[i1][1];
vb3z = x[i4][2] - x[i1][2];
domain->minimum_image(vb3x,vb3y,vb3z);
// c0 calculation
// A = vb1 X vb2 is perpendicular to IJK plane

View File

@ -51,4 +51,9 @@ E: TIP4P hydrogen is missing
The TIP4P pairwise computation failed to find the correct H atom
within a water molecule.
E: TIP4P hydrogen has incorrect atom type
The TIP4P pairwise computation found an H atom whose type does not
agree with the specified H type.
*/

View File

@ -567,7 +567,7 @@ int AtomVecPeri::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = vfrac[i];
buf[m++] = rmass[i];
@ -601,7 +601,7 @@ int AtomVecPeri::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
vfrac[nlocal] = buf[m++];
rmass[nlocal] = buf[m++];
@ -655,7 +655,7 @@ int AtomVecPeri::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -695,7 +695,7 @@ int AtomVecPeri::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -733,7 +733,8 @@ void AtomVecPeri::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -753,7 +754,7 @@ void AtomVecPeri::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecPeri::data_atom(double *coord, int imagetmp, char **values)
void AtomVecPeri::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
if (nlocal == nmax) grow(0);

View File

@ -50,12 +50,13 @@ class AtomVecPeri : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
double *vfrac,*density,*rmass,*s0,**x0;
};

View File

@ -360,7 +360,7 @@ void FixPOEMS::init()
// only count joint atoms in 1st body
int *type = atom->type;
int *image = atom->image;
tagint *image = atom->image;
double *mass = atom->mass;
double **x = atom->x;
double **v = atom->v;
@ -379,9 +379,9 @@ void FixPOEMS::init()
for (i = 0; i < nlocal; i++) {
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
massone = mass[type[i]];
sum[ibody][0] += (x[i][0] + xbox*xprd) * massone;
sum[ibody][1] += (x[i][1] + ybox*yprd) * massone;
@ -416,9 +416,9 @@ void FixPOEMS::init()
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
@ -511,9 +511,9 @@ void FixPOEMS::init()
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
@ -544,9 +544,9 @@ void FixPOEMS::init()
if (natom2body[i]) {
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
@ -596,7 +596,7 @@ void FixPOEMS::setup(int vflag)
// only count joint atoms in 1st body
int *type = atom->type;
int *image = atom->image;
tagint *image = atom->image;
double *mass = atom->mass;
double **x = atom->x;
double **v = atom->v;
@ -617,9 +617,9 @@ void FixPOEMS::setup(int vflag)
ibody = atom2body[i][0];
massone = mass[type[i]];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
@ -710,7 +710,7 @@ void FixPOEMS::post_force(int vflag)
int xbox,ybox,zbox;
double dx,dy,dz;
int *image = atom->image;
tagint *image = atom->image;
double **x = atom->x;
double **f = atom->f;
int nlocal = atom->nlocal;
@ -730,9 +730,9 @@ void FixPOEMS::post_force(int vflag)
sum[ibody][1] += f[i][1];
sum[ibody][2] += f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xcm[ibody][0];
dy = x[i][1] + ybox*yprd - xcm[ibody][1];
dz = x[i][2] + zbox*zprd - xcm[ibody][2];
@ -1341,7 +1341,7 @@ void FixPOEMS::set_xv()
double x0,x1,x2,v0,v1,v2,fc0,fc1,fc2,massone;
double vr[6];
int *image = atom->image;
tagint *image = atom->image;
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
@ -1360,9 +1360,9 @@ void FixPOEMS::set_xv()
if (natom2body[i] == 0) continue;
ibody = atom2body[i][0];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
// save old positions and velocities for virial
@ -1445,7 +1445,7 @@ void FixPOEMS::set_v()
double **x = atom->x;
double **v = atom->v;
int *type = atom->type;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
double xprd = domain->xprd;
@ -1493,9 +1493,9 @@ void FixPOEMS::set_v()
fc1 = massone*(v[i][1] - v1)/dtf - f[i][1];
fc2 = massone*(v[i][2] - v2)/dtf - f[i][2];
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
x0 = x[i][0] + xbox*xprd;
x1 = x[i][1] + ybox*yprd;

View File

@ -96,7 +96,7 @@ double ComputeEventDisplace::compute_scalar()
double **x = atom->x;
int *mask = atom->mask;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
double *h = domain->h;
@ -109,9 +109,9 @@ double ComputeEventDisplace::compute_scalar()
if (triclinic == 0) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + xbox*xprd - xevent[i][0];
dy = x[i][1] + ybox*yprd - xevent[i][1];
dz = x[i][2] + zbox*zprd - xevent[i][2];
@ -124,9 +124,9 @@ double ComputeEventDisplace::compute_scalar()
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
xbox = (image[i] & 1023) - 512;
ybox = (image[i] >> 10 & 1023) - 512;
zbox = (image[i] >> 20) - 512;
xbox = (image[i] & IMGMASK) - IMGMAX;
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
zbox = (image[i] >> IMG2BITS) - IMGMAX;
dx = x[i][0] + h[0]*xbox + h[5]*ybox + h[4]*zbox - xevent[i][0];
dy = x[i][1] + h[1]*ybox + h[3]*zbox - xevent[i][1];
dz = x[i][2] + h[2]*zbox - xevent[i][2];

View File

@ -81,7 +81,7 @@ int FixEvent::setmask()
void FixEvent::store_event()
{
double **x = atom->x;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
@ -97,7 +97,7 @@ void FixEvent::store_event()
void FixEvent::restore_event()
{
double **x = atom->x;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
@ -108,9 +108,10 @@ void FixEvent::restore_event()
// Since xevent is unwrapped coordinate, need to
// adjust image flags when remapping
image[i] = (512 << 20) | (512 << 10) | 512;
image[i] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMASK << IMGBITS) | IMGMASK;
domain->remap(x[i],image[i]);
// domain->remap(x[i]);
// domain->remap(x[i]);
}
}
@ -125,7 +126,7 @@ void FixEvent::store_state()
{
double **x = atom->x;
double **v = atom->v;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {
@ -148,7 +149,7 @@ void FixEvent::restore_state()
{
double **x = atom->x;
double **v = atom->v;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++) {

View File

@ -830,7 +830,7 @@ void TAD::revert()
{
double **x = atom->x;
double **v = atom->v;
int *image = atom->image;
tagint *image = atom->image;
int nlocal = atom->nlocal;
double **array_atom = fix_revert->array_atom;
@ -839,9 +839,10 @@ void TAD::revert()
x[i][0] = array_atom[i][0];
x[i][1] = array_atom[i][1];
x[i][2] = array_atom[i][2];
image[i] = ((int(array_atom[i][5]) + 512 & 1023) << 20) |
((int(array_atom[i][4]) + 512 & 1023) << 10) |
(int(array_atom[i][3]) + 512 & 1023);
image[i] =
((int(array_atom[i][5]) + (tagint) IMGMAX & IMGMASK) << IMG2BITS) |
((int(array_atom[i][4]) + (tagint) IMGMAX & IMGMASK) << IMGBITS) |
(int(array_atom[i][3]) + IMGMAX & IMGMASK);
v[i][0] = -array_atom[i][6];
v[i][1] = -array_atom[i][7];
v[i][2] = -array_atom[i][8];

View File

@ -693,7 +693,8 @@ int AtomVecWavepacket::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = q[i];
buf[m++] = spin[i];
buf[m++] = eradius[i];
@ -728,7 +729,8 @@ int AtomVecWavepacket::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
q[nlocal] = buf[m++];
spin[nlocal] = static_cast<int> (buf[m++]);
eradius[nlocal] = buf[m++];
@ -782,7 +784,7 @@ int AtomVecWavepacket::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -824,7 +826,7 @@ int AtomVecWavepacket::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -865,7 +867,8 @@ void AtomVecWavepacket::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -888,7 +891,7 @@ void AtomVecWavepacket::create_atom(int itype, double *coord)
AWPMD: 0-tag 1-type 2-q 3-spin 4-eradius 5-etag 6-cs_re 7-cs_im
------------------------------------------------------------------------- */
void AtomVecWavepacket::data_atom(double *coord, int imagetmp, char **values)
void AtomVecWavepacket::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;
@ -896,7 +899,8 @@ void AtomVecWavepacket::data_atom(double *coord, int imagetmp, char **values)
tag[nlocal] = atoi(values[0]);
if (tag[nlocal] <= 0)
error->one(FLERR,"Invalid atom ID in Atoms section of data file (ID tag must be >0)");
error->one(FLERR,"Invalid atom ID in Atoms section of "
"data file (ID tag must be >0)");
type[nlocal] = atoi(values[1]);
if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes)
@ -997,7 +1001,8 @@ bigint AtomVecWavepacket::memory_usage()
if (atom->memcheck("spin")) bytes += memory->usage(spin,nmax);
if (atom->memcheck("eradius")) bytes += memory->usage(eradius,nmax);
if (atom->memcheck("ervel")) bytes += memory->usage(ervel,nmax);
if (atom->memcheck("erforce")) bytes += memory->usage(erforce,nmax*comm->nthreads);
if (atom->memcheck("erforce"))
bytes += memory->usage(erforce,nmax*comm->nthreads);
if (atom->memcheck("ervelforce")) bytes += memory->usage(ervelforce,nmax);
if (atom->memcheck("cs")) bytes += memory->usage(cs,2*nmax);

View File

@ -58,14 +58,15 @@ public:
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
void data_vel(int, char **);
int data_vel_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
///\en spin: -1 or 1 for electron, 0 for ion (compatible with eff)

View File

@ -166,7 +166,6 @@ void AngleCGCMM::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -176,7 +175,6 @@ void AngleCGCMM::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);
@ -200,7 +198,6 @@ void AngleCGCMM::compute(int eflag, int vflag)
delx3 = x[i1][0] - x[i3][0];
dely3 = x[i1][1] - x[i3][1];
delz3 = x[i1][2] - x[i3][2];
domain->minimum_image(delx3,dely3,delz3);
rsq3 = delx3*delx3 + dely3*dely3 + delz3*delz3;
r3 = sqrt(rsq3);

View File

@ -88,7 +88,6 @@ void AngleSDK::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -98,7 +97,6 @@ void AngleSDK::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);
@ -128,7 +126,6 @@ void AngleSDK::compute(int eflag, int vflag)
delx3 = x[i1][0] - x[i3][0];
dely3 = x[i1][1] - x[i3][1];
delz3 = x[i1][2] - x[i3][2];
domain->minimum_image(delx3,dely3,delz3);
rsq3 = delx3*delx3 + dely3*dely3 + delz3*delz3;
const int type1 = atom->type[i1];

View File

@ -576,7 +576,7 @@ int AtomVecElectron::pack_exchange(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = q[i];
buf[m++] = spin[i];
buf[m++] = eradius[i];
@ -607,7 +607,7 @@ int AtomVecElectron::unpack_exchange(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
q[nlocal] = buf[m++];
spin[nlocal] = static_cast<int> (buf[m++]);
eradius[nlocal] = buf[m++];
@ -657,7 +657,7 @@ int AtomVecElectron::pack_restart(int i, double *buf)
buf[m++] = tag[i];
buf[m++] = type[i];
buf[m++] = mask[i];
buf[m++] = image[i];
*((tagint *) &buf[m++]) = image[i];
buf[m++] = v[i][0];
buf[m++] = v[i][1];
buf[m++] = v[i][2];
@ -695,7 +695,7 @@ int AtomVecElectron::unpack_restart(double *buf)
tag[nlocal] = static_cast<int> (buf[m++]);
type[nlocal] = static_cast<int> (buf[m++]);
mask[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = static_cast<int> (buf[m++]);
image[nlocal] = *((tagint *) &buf[m++]);
v[nlocal][0] = buf[m++];
v[nlocal][1] = buf[m++];
v[nlocal][2] = buf[m++];
@ -731,7 +731,8 @@ void AtomVecElectron::create_atom(int itype, double *coord)
x[nlocal][1] = coord[1];
x[nlocal][2] = coord[2];
mask[nlocal] = 1;
image[nlocal] = (512 << 20) | (512 << 10) | 512;
image[nlocal] = ((tagint) IMGMAX << IMG2BITS) |
((tagint) IMGMAX << IMGBITS) | IMGMAX;
v[nlocal][0] = 0.0;
v[nlocal][1] = 0.0;
v[nlocal][2] = 0.0;
@ -749,7 +750,7 @@ void AtomVecElectron::create_atom(int itype, double *coord)
initialize other atom quantities
------------------------------------------------------------------------- */
void AtomVecElectron::data_atom(double *coord, int imagetmp, char **values)
void AtomVecElectron::data_atom(double *coord, tagint imagetmp, char **values)
{
int nlocal = atom->nlocal;

View File

@ -53,14 +53,15 @@ class AtomVecElectron : public AtomVec {
int pack_restart(int, double *);
int unpack_restart(double *);
void create_atom(int, double *);
void data_atom(double *, int, char **);
void data_atom(double *, tagint, char **);
int data_atom_hybrid(int, char **);
void data_vel(int, char **);
int data_vel_hybrid(int, char **);
bigint memory_usage();
private:
int *tag,*type,*mask,*image;
int *tag,*type,*mask;
tagint *image;
double **x,**v,**f;
int *spin;
double *q,*eradius,*ervel,*erforce;

View File

@ -2,6 +2,11 @@
if (test $1 = 1) then
if (test -e ../pair_eam_alloy.cpp) then
cp pair_cdeam.cpp ..
cp pair_cdeam.h ..
fi
cp angle_cosine_shift.cpp ..
cp angle_cosine_shift_exp.cpp ..
cp angle_dipole.cpp ..
@ -17,7 +22,6 @@ if (test $1 = 1) then
cp fix_spring_pull.cpp ..
cp improper_cossq.cpp ..
cp improper_ring.cpp ..
cp pair_cdeam.cpp ..
cp pair_coul_diel.cpp ..
cp pair_dipole_sf.cpp ..
cp pair_edip.cpp ..
@ -41,7 +45,6 @@ if (test $1 = 1) then
cp fix_spring_pull.h ..
cp improper_cossq.h ..
cp improper_ring.h ..
cp pair_cdeam.h ..
cp pair_coul_diel.h ..
cp pair_dipole_sf.h ..
cp pair_edip.h ..

View File

@ -78,7 +78,6 @@ void AngleCosineShift::compute(int eflag, int vflag)
delx1 = x[i1][0] - x[i2][0];
dely1 = x[i1][1] - x[i2][1];
delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1,dely1,delz1);
rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1;
r1 = sqrt(rsq1);
@ -88,7 +87,6 @@ void AngleCosineShift::compute(int eflag, int vflag)
delx2 = x[i3][0] - x[i2][0];
dely2 = x[i3][1] - x[i2][1];
delz2 = x[i3][2] - x[i2][2];
domain->minimum_image(delx2,dely2,delz2);
rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2;
r2 = sqrt(rsq2);

Some files were not shown because too many files have changed in this diff Show More