Merge branch 'master' into lammps-icms
Resolve Conflicts: src/region.cpp
This commit is contained in:
BIN
doc/Eqs/pair_bop.jpg
Normal file
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
9
doc/Eqs/pair_bop.tex
Normal 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 |
BIN
doc/Manual.pdf
BIN
doc/Manual.pdf
Binary file not shown.
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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, -, -
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
126
potentials/AlSiMgCuFe.meam
Normal 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
44
potentials/CdTe.bop
Normal 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
4832
potentials/CdTe.bop.table
Normal file
File diff suppressed because it is too large
Load Diff
44
potentials/GaAs.bop
Normal file
44
potentials/GaAs.bop
Normal 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
4832
potentials/GaAs.bop.table
Normal file
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
*/
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
*/
|
||||
|
||||
@ -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.
|
||||
|
||||
*/
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
*/
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
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
270
src/MANYBODY/pair_bop.h
Normal 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.
|
||||
|
||||
*/
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
*/
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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++) {
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 ..
|
||||
|
||||
@ -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
Reference in New Issue
Block a user