Merge branch 'lammps-icms' into lammps-colvars

This commit is contained in:
Axel Kohlmeyer
2013-01-23 06:01:36 -05:00
48 changed files with 1650 additions and 308 deletions

View File

@ -419,25 +419,26 @@ potentials. Click on the style itself for a full description:
<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_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_buck_long.html">buck/long/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_colloid.html">colloid</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/dsf</A></TD><TD ><A HREF = "pair_coul.html">coul/long</A></TD><TD ><A HREF = "pair_coul.html">coul/wolf</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_eam.html">eam</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_gauss.html">gauss</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_gran.html">gran/hooke/history</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_lcbop.html">lcbop</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</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/msm</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf</A></TD><TD ><A HREF = "pair_brownian.html">brownian</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_brownian.html">brownian/poly</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/msm</A></TD><TD ><A HREF = "pair_buck_long.html">buck/long/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/dsf</A></TD><TD ><A HREF = "pair_coul.html">coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/msm</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dpd.html">dpd/tstat</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/fs</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hertz/history</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse</A></TD><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></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/msm</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_lj.html">lj/cut</A></TD></TR>
<TR ALIGN="center"><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/dsf</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/tip4p/long</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj96.html">lj96/cut</A></TD><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></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lubricateU.html">lubricateU/poly</A></TD><TD ><A HREF = "pair_meam.html">meam</A></TD><TD ><A HREF = "pair_mie.html">mie/cut</A></TD><TD ><A HREF = "pair_morse.html">morse</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_airebo.html">rebo</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_table.html">table</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_yukawa.html">yukawa</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid</A>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/msm</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/tip4p/long</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_lj_smooth.html">lj/smooth</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_lubricate.html">lubricate/poly</A></TD></TR>
<TR ALIGN="center"><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><TD ><A HREF = "pair_mie.html">mie/cut</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>
</TD></TR></TABLE></DIV>
<P>These are pair styles contributed by users, which can be used if
@ -458,42 +459,42 @@ package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "pair_adp.html">adp/omp</A></TD><TD ><A HREF = "pair_airebo.html">airebo/omp</A></TD><TD ><A HREF = "pair_beck.html">beck/omp</A></TD><TD ><A HREF = "pair_born.html">born/coul/long/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/long/gpu</A></TD><TD ><A HREF = "pair_born.html">born/coul/long/omp</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf/gpu</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/gpu</A></TD><TD ><A HREF = "pair_born.html">born/omp</A></TD><TD ><A HREF = "pair_brownian.html">brownian/omp</A></TD><TD ><A HREF = "pair_brownian.html">brownian/poly/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/cut/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/omp</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/long/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long/omp</A></TD><TD ><A HREF = "pair_buck.html">buck/cuda</A></TD><TD ><A HREF = "pair_buck_long.html">buck/long/coul/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/omp</A></TD><TD ><A HREF = "pair_colloid.html">colloid/gpu</A></TD><TD ><A HREF = "pair_colloid.html">colloid/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_comb.html">comb/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/cut/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/debye/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/dsf/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/long/gpu</A></TD><TD ><A HREF = "pair_coul.html">coul/long/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/wolf</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dipole.html">dipole/cut/omp</A></TD><TD ><A HREF = "pair_dipole.html">dipole/sf/gpu</A></TD><TD ><A HREF = "pair_dipole.html">dipole/sf/omp</A></TD><TD ><A HREF = "pair_dpd.html">dpd/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dpd.html">dpd/tstat/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/gpu</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/alloy/opt</A></TD><TD ><A HREF = "pair_eam.html">eam/cd/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/fs/gpu</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/opt</A></TD><TD ><A HREF = "pair_eam.html">eam/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/opt</A></TD><TD ><A HREF = "pair_edip.html">edip/omp</A></TD><TD ><A HREF = "pair_eim.html">eim/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gauss.html">gauss/gpu</A></TD><TD ><A HREF = "pair_gauss.html">gauss/omp</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne/gpu</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hertz/history/omp</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/cuda</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/history/omp</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj/omp</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse/omp</A></TD><TD ><A HREF = "pair_line_lj.html">line/lj/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/gpu</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/opt</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/pppm/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut/omp</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/pppm/omp</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/omp</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/omp</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/dsf/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/opt</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/pppm/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/experimental/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/opt</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long/opt</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/cuda</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/gpu</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs/cuda</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs/omp</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/cuda</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_sdk.html">lj/sdk/gpu</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/omp</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/coul/long/gpu</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/coul/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_sf.html">lj/sf/omp</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth/cuda</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth/omp</A></TD><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj96.html">lj96/cut/cuda</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/gpu</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/omp</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lubricate.html">lubricate/poly/omp</A></TD><TD ><A HREF = "pair_meam_spline.html">meam/spline/omp</A></TD><TD ><A HREF = "pair_morse.html">morse/cuda</A></TD><TD ><A HREF = "pair_morse.html">morse/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse/omp</A></TD><TD ><A HREF = "pair_morse.html">morse/opt</A></TD><TD ><A HREF = "pair_peri.html">peri/lps/omp</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">rebo/omp</A></TD><TD ><A HREF = "pair_resquared.html">resquared/gpu</A></TD><TD ><A HREF = "pair_resquared.html">resquared/omp</A></TD><TD ><A HREF = "pair_soft.html">soft/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_sw.html">sw/cuda</A></TD><TD ><A HREF = "pair_sw.html">sw/omp</A></TD><TD ><A HREF = "pair_table.html">table/gpu</A></TD><TD ><A HREF = "pair_table.html">table/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_tersoff.html">tersoff/cuda</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff/omp</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff/table/omp</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_tri_lj.html">tri/lj/omp</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa/gpu</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa/omp</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid/omp</A>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/long/gpu</A></TD><TD ><A HREF = "pair_born.html">born/coul/long/omp</A></TD><TD ><A HREF = "pair_born.html">born/coul/msm/omp</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/wolf/omp</A></TD><TD ><A HREF = "pair_born.html">born/gpu</A></TD><TD ><A HREF = "pair_born.html">born/omp</A></TD><TD ><A HREF = "pair_brownian.html">brownian/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_brownian.html">brownian/poly/omp</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/long/cuda</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long/omp</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/msm/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/cuda</A></TD><TD ><A HREF = "pair_buck_long.html">buck/long/coul/long/omp</A></TD><TD ><A HREF = "pair_buck.html">buck/gpu</A></TD><TD ><A HREF = "pair_buck.html">buck/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_colloid.html">colloid/gpu</A></TD><TD ><A HREF = "pair_colloid.html">colloid/omp</A></TD><TD ><A HREF = "pair_comb.html">comb/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/cut/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/debye/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/dsf/gpu</A></TD><TD ><A HREF = "pair_coul.html">coul/long/gpu</A></TD><TD ><A HREF = "pair_coul.html">coul/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/msm/omp</A></TD><TD ><A HREF = "pair_coul.html">coul/wolf</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut/gpu</A></TD><TD ><A HREF = "pair_dipole.html">dipole/cut/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_dipole.html">dipole/sf/gpu</A></TD><TD ><A HREF = "pair_dipole.html">dipole/sf/omp</A></TD><TD ><A HREF = "pair_dpd.html">dpd/omp</A></TD><TD ><A HREF = "pair_dpd.html">dpd/tstat/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/alloy/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/gpu</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy/opt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/cd/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/cuda</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/fs/omp</A></TD><TD ><A HREF = "pair_eam.html">eam/fs/opt</A></TD><TD ><A HREF = "pair_eam.html">eam/gpu</A></TD><TD ><A HREF = "pair_eam.html">eam/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/opt</A></TD><TD ><A HREF = "pair_edip.html">edip/omp</A></TD><TD ><A HREF = "pair_eim.html">eim/omp</A></TD><TD ><A HREF = "pair_gauss.html">gauss/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gauss.html">gauss/omp</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne/gpu</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne/omp</A></TD><TD ><A HREF = "pair_gran.html">gran/hertz/history/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hooke/cuda</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/history/omp</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/omp</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse/omp</A></TD><TD ><A HREF = "pair_line_lj.html">line/lj/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/cuda</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/omp</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long/opt</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/gpu</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long/omp</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/msm/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/cuda</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/gpu</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/omp</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/dsf/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long/opt</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/msm/opt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/experimental/cuda</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/gpu</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/opt</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long/omp</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long/opt</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_expand.html">lj/expand/gpu</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand/omp</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs/cuda</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs/cuda</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/omp</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/gpu</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_sdk.html">lj/sdk/coul/long/gpu</A></TD><TD ><A HREF = "pair_sdk.html">lj/sdk/coul/long/omp</A></TD><TD ><A HREF = "pair_lj_sf.html">lj/sf/omp</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth/cuda</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj_smooth.html">lj/smooth/omp</A></TD><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear/omp</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/cuda</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_lj96.html">lj96/cut/omp</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/omp</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/poly/omp</A></TD><TD ><A HREF = "pair_meam_spline.html">meam/spline/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse/cuda</A></TD><TD ><A HREF = "pair_morse.html">morse/gpu</A></TD><TD ><A HREF = "pair_morse.html">morse/omp</A></TD><TD ><A HREF = "pair_morse.html">morse/opt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_peri.html">peri/lps/omp</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb/omp</A></TD><TD ><A HREF = "pair_airebo.html">rebo/omp</A></TD><TD ><A HREF = "pair_resquared.html">resquared/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_resquared.html">resquared/omp</A></TD><TD ><A HREF = "pair_soft.html">soft/omp</A></TD><TD ><A HREF = "pair_sw.html">sw/cuda</A></TD><TD ><A HREF = "pair_sw.html">sw/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_table.html">table/gpu</A></TD><TD ><A HREF = "pair_table.html">table/omp</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff/cuda</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_tersoff.html">tersoff/table/omp</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl/omp</A></TD><TD ><A HREF = "pair_tri_lj.html">tri/lj/omp</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa.html">yukawa/omp</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid/gpu</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid/omp</A>
</TD></TR></TABLE></DIV>
<HR>
@ -637,8 +638,8 @@ built with the <A HREF = "Section_accelerate.html">appropriate accelerated
package</A>.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "kspace_style.html">ewald/omp</A></TD><TD ><A HREF = "kspace_style.html">pppm/cuda</A></TD><TD ><A HREF = "kspace_style.html">pppm/gpu</A></TD><TD ><A HREF = "kspace_style.html">pppm/omp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "kspace_style.html">pppm/cg/omp</A></TD><TD ><A HREF = "kspace_style.html">pppm/tip4p/omp</A>
<TR ALIGN="center"><TD ><A HREF = "kspace_style.html">ewald/omp</A></TD><TD ><A HREF = "kspace_style.html">msm/omp</A></TD><TD ><A HREF = "kspace_style.html">pppm/cuda</A></TD><TD ><A HREF = "kspace_style.html">pppm/gpu</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "kspace_style.html">pppm/omp</A></TD><TD ><A HREF = "kspace_style.html">pppm/cg/omp</A></TD><TD ><A HREF = "kspace_style.html">pppm/tip4p/omp</A>
</TD></TR></TABLE></DIV>
</HTML>

View File

@ -636,12 +636,14 @@ potentials. Click on the style itself for a full description:
"bop"_pair_bop.html,
"born"_pair_born.html,
"born/coul/long"_pair_born.html,
"born/coul/msm"_pair_born.html,
"born/coul/wolf"_pair_born.html,
"brownian"_pair_brownian.html,
"brownian/poly"_pair_brownian.html,
"buck"_pair_buck.html,
"buck/coul/cut"_pair_buck.html,
"buck/coul/long"_pair_buck.html,
"buck/coul/msm"_pair_buck.html,
"buck/long/coul/long"_pair_buck_long.html,
"colloid"_pair_colloid.html,
"comb"_pair_comb.html,
@ -649,6 +651,7 @@ potentials. Click on the style itself for a full description:
"coul/debye"_pair_coul.html,
"coul/dsf"_pair_coul.html,
"coul/long"_pair_coul.html,
"coul/msm"_pair_coul.html,
"coul/wolf"_pair_coul.html,
"dipole/cut"_pair_dipole.html,
"dpd"_pair_dpd.html,
@ -671,6 +674,7 @@ potentials. Click on the style itself for a full description:
"lj/charmm/coul/charmm"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit"_pair_charmm.html,
"lj/charmm/coul/long"_pair_charmm.html,
"lj/charmm/coul/msm"_pair_charmm.html,
"lj/class2"_pair_class2.html,
"lj/class2/coul/cut"_pair_class2.html,
"lj/class2/coul/long"_pair_class2.html,
@ -679,6 +683,7 @@ potentials. Click on the style itself for a full description:
"lj/cut/coul/debye"_pair_lj.html,
"lj/cut/coul/dsf"_pair_lj.html,
"lj/cut/coul/long"_pair_lj.html,
"lj/cut/coul/msm"_pair_lj.html,
"lj/long/coul/long"_pair_lj_long.html,
"lj/cut/tip4p/long"_pair_lj.html,
"lj/long/tip4p/long"_pair_lj_long.html,
@ -744,6 +749,7 @@ package"_Section_accelerate.html.
"born/coul/long/cuda"_pair_born.html,
"born/coul/long/gpu"_pair_born.html,
"born/coul/long/omp"_pair_born.html,
"born/coul/msm/omp"_pair_born.html,
"born/coul/wolf/gpu"_pair_born.html,
"born/coul/wolf/omp"_pair_born.html,
"born/gpu"_pair_born.html,
@ -756,6 +762,7 @@ package"_Section_accelerate.html.
"buck/coul/long/cuda"_pair_buck.html,
"buck/coul/long/gpu"_pair_buck.html,
"buck/coul/long/omp"_pair_buck.html,
"buck/coul/msm/omp"_pair_buck.html,
"buck/cuda"_pair_buck.html,
"buck/long/coul/long/omp"_pair_buck_long.html,
"buck/gpu"_pair_buck.html,
@ -768,6 +775,7 @@ package"_Section_accelerate.html.
"coul/dsf/gpu"_pair_coul.html,
"coul/long/gpu"_pair_coul.html,
"coul/long/omp"_pair_coul.html,
"coul/msm/omp"_pair_coul.html,
"coul/wolf"_pair_coul.html,
"dipole/cut/gpu"_pair_dipole.html,
"dipole/cut/omp"_pair_dipole.html,
@ -809,13 +817,12 @@ package"_Section_accelerate.html.
"lj/charmm/coul/long/gpu"_pair_charmm.html,
"lj/charmm/coul/long/omp"_pair_charmm.html,
"lj/charmm/coul/long/opt"_pair_charmm.html,
"lj/charmm/coul/pppm/omp"_pair_charmm.html,
"lj/class2/coul/cut/cuda"_pair_class2.html,
"lj/class2/coul/cut/omp"_pair_class2.html,
"lj/class2/coul/long/cuda"_pair_class2.html,
"lj/class2/coul/long/gpu"_pair_class2.html,
"lj/class2/coul/pppm/omp"_pair_class2.html,
"lj/class2/coul/long/omp"_pair_class2.html,
"lj/class2/coul/msm/omp"_pair_class2.html,
"lj/class2/cuda"_pair_class2.html,
"lj/class2/gpu"_pair_class2.html,
"lj/class2/omp"_pair_class2.html,
@ -831,7 +838,7 @@ package"_Section_accelerate.html.
"lj/cut/coul/long/gpu"_pair_lj.html,
"lj/cut/coul/long/omp"_pair_lj.html,
"lj/cut/coul/long/opt"_pair_lj.html,
"lj/cut/coul/pppm/omp"_pair_lj.html,
"lj/cut/coul/msm/opt"_pair_lj.html,
"lj/cut/cuda"_pair_lj.html,
"lj/cut/experimental/cuda"_pair_lj.html,
"lj/cut/gpu"_pair_lj.html,
@ -1065,6 +1072,7 @@ built with the "appropriate accelerated
package"_Section_accelerate.html.
"ewald/omp"_kspace_style.html,
"msm/omp"_kspace_style.html,
"pppm/cuda"_kspace_style.html,
"pppm/gpu"_kspace_style.html,
"pppm/omp"_kspace_style.html,

View File

@ -54,6 +54,7 @@ own sub-directories with their own Makefiles.
<LI><A HREF = "#eff">eff</A>
<LI><A HREF = "#emacs">emacs</A>
<LI><A HREF = "#ipp">ipp</A>
<LI><A HREF = "#kate">kate</A>
<LI><A HREF = "#arc">lmp2arc</A>
<LI><A HREF = "#cfg">lmp2cfg</A>
<LI><A HREF = "#vmd">lmp2vmd</A>
@ -224,6 +225,17 @@ tools/createatoms tool's input file.
</P>
<HR>
<H4><A NAME = "kate"></A>kate tool
</H4>
<P>The file in the tools/kate directory is an add-on to the Kate editor
in the KDE suite that allow syntax highlighting of LAMMPS input
scripts. See the README.txt file for details.
</P>
<P>The file was provided by Alessandro Luigi Sellerio
(alessandro.sellerio at ieni.cnr.it).
</P>
<HR>
<H4><A NAME = "arc"></A>lmp2arc tool
</H4>
<P>The lmp2arc sub-directory contains a tool for converting LAMMPS output

View File

@ -50,6 +50,7 @@ own sub-directories with their own Makefiles.
"eff"_#eff
"emacs"_#emacs
"ipp"_#ipp
"kate"_#kate
"lmp2arc"_#arc
"lmp2cfg"_#cfg
"lmp2vmd"_#vmd
@ -220,6 +221,17 @@ tools/createatoms tool's input file.
:line
kate tool :h4,link(kate)
The file in the tools/kate directory is an add-on to the Kate editor
in the KDE suite that allow syntax highlighting of LAMMPS input
scripts. See the README.txt file for details.
The file was provided by Alessandro Luigi Sellerio
(alessandro.sellerio at ieni.cnr.it).
:line
lmp2arc tool :h4,link(arc)
The lmp2arc sub-directory contains a tool for converting LAMMPS output

View File

@ -42,9 +42,8 @@
<PRE> <I>scale</I> value = <I>no</I> or <I>yes</I>
<I>no</I> = the variable value is the new setting
<I>yes</I> = the variable value multiplies the original setting
</PRE>
<PRE> <I>reset</I> value = <I>no</I> or <I>yes</I>
<I>yes</I> = the variable value multiplies the original setting
<I>reset</I> value = <I>no</I> or <I>yes</I>
<I>no</I> = values will remain altered at the end of a run
<I>yes</I> = reset altered values to their original values at the end of a run
</PRE>
@ -65,7 +64,11 @@ attributes which can be varied by this fix are discussed below. Many
other fixes can also be used to time-vary simulation parameters,
e.g. the "fix deform" command will change the simulation box
size/shape and the "fix move" command will change atom positions and
velocities in a prescribed manner.
velocities in a prescribed manner. Also note that many commands allow
variables as arguments for specific parameters, if described in that
manner on their doc pages. An equal-style variable can calculate a
time-dependent quantity, so this is another way to vary a simulation
parameter over time.
</P>
<P>If <I>N</I> is specified as 0, the specified attributes are only changed
once, before the simulation begins. This is all that is needed if the

View File

@ -31,7 +31,7 @@ zero or more keyword/value pairs may be appended :l
keyword = {scale} or {reset} :l
{scale} value = {no} or {yes}
{no} = the variable value is the new setting
{yes} = the variable value multiplies the original setting :pre
{yes} = the variable value multiplies the original setting
{reset} value = {no} or {yes}
{no} = values will remain altered at the end of a run
{yes} = reset altered values to their original values at the end of a run :pre
@ -52,7 +52,11 @@ attributes which can be varied by this fix are discussed below. Many
other fixes can also be used to time-vary simulation parameters,
e.g. the "fix deform" command will change the simulation box
size/shape and the "fix move" command will change atom positions and
velocities in a prescribed manner.
velocities in a prescribed manner. Also note that many commands allow
variables as arguments for specific parameters, if described in that
manner on their doc pages. An equal-style variable can calculate a
time-dependent quantity, so this is another way to vary a simulation
parameter over time.
If {N} is specified as 0, the specified attributes are only changed
once, before the simulation begins. This is all that is needed if the

View File

@ -29,14 +29,18 @@
<LI>face = <I>xlo</I> or <I>xhi</I> or <I>ylo</I> or <I>yhi</I> or <I>zlo</I> or <I>zhi</I>
<PRE> args = coord epsilon sigma cutoff
<LI> args = coord epsilon sigma cutoff
coord = position of wall = EDGE or constant or variable
EDGE = current lo or hi edge of simulation box
constant = number like 0.0 or -30.0 (distance units)
variable = <A HREF = "variable.html">equal-style variable</A> like v_x or v_wiggle
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
sigma = size factor for wall-particle interaction (distance units)
cutoff = distance from wall at which wall-particle interaction is cut off (distance units)
epsilon can be a variable (see below)
<LI> sigma = size factor for wall-particle interaction (distance units)
sigma can be a variable (see below)
<PRE> cutoff = distance from wall at which wall-particle interaction is cut off (distance units)
</PRE>
<LI>zero or more keyword/value pairs may be appended
@ -47,9 +51,8 @@
<I>box</I> = the wall position is defined in simulation box units
<I>fld</I> value = <I>yes</I> or <I>no</I>
<I>yes</I> = invoke the wall constraint to be compatible with implicit FLD
<I>no</I> = invoke the wall constraint in the normal way
</PRE>
<PRE> <I>pbc</I> value = <I>yes</I> or <I>no</I>
<I>no</I> = invoke the wall constraint in the normal way
<I>pbc</I> value = <I>yes</I> or <I>no</I>
<I>yes</I> = allow periodic boundary in a wall dimension
<I>no</I> = require non-perioidic boundaries in any wall dimension
</PRE>
@ -144,6 +147,16 @@ constant K, and has units (energy/distance^2). The input parameter
spring is at the <I>cutoff</I>. This is a repulsive-only spring since the
interaction is truncated at the <I>cutoff</I>
</P>
<P>For any wall, the <I>epsilon</I> and/or <I>sigma</I> parameter can be specified
as an <A HREF = "variable.html">equal-style variable</A>, in which case it should be
specified as v_name, where name is the variable name. As with a
variable wall position, the variable is evaluated each timestep and
the result becomes the current epsilon or sigma of the wall.
Equal-style variables can specify formulas with various mathematical
functions, and include <A HREF = "thermo_style.html">thermo_style</A> command
keywords for the simulation box parameters and timestep and elapsed
time. Thus it is easy to specify a time-dependent wall interaction.
</P>
<P>IMPORTANT NOTE: For all of the styles, you must insure that r is
always > 0 for all particles in the group, or LAMMPS will generate an
error. This means you cannot start your simulation with particles at
@ -194,7 +207,8 @@ want.
<P>Here are examples of variable definitions that move the wall position
in a time-dependent fashion using equal-style
<A HREF = "variable.html">variables</A>.
<A HREF = "variable.html">variables</A>. The wall interaction parameters (epsilon,
sigma) could be varied with additional variable definitions.
</P>
<PRE>variable ramp equal ramp(0,10)
fix 1 all wall xlo v_ramp 1.0 1.0 2.5

View File

@ -25,7 +25,9 @@ face = {xlo} or {xhi} or {ylo} or {yhi} or {zlo} or {zhi} :l
constant = number like 0.0 or -30.0 (distance units)
variable = "equal-style variable"_variable.html like v_x or v_wiggle
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
epsilon can be a variable (see below) :l
sigma = size factor for wall-particle interaction (distance units)
sigma can be a variable (see below) :l
cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :pre
zero or more keyword/value pairs may be appended :l
keyword = {units} or {fld} :l
@ -34,7 +36,7 @@ keyword = {units} or {fld} :l
{box} = the wall position is defined in simulation box units
{fld} value = {yes} or {no}
{yes} = invoke the wall constraint to be compatible with implicit FLD
{no} = invoke the wall constraint in the normal way :pre
{no} = invoke the wall constraint in the normal way
{pbc} value = {yes} or {no}
{yes} = allow periodic boundary in a wall dimension
{no} = require non-perioidic boundaries in any wall dimension :pre
@ -129,6 +131,16 @@ constant K, and has units (energy/distance^2). The input parameter
spring is at the {cutoff}. This is a repulsive-only spring since the
interaction is truncated at the {cutoff}
For any wall, the {epsilon} and/or {sigma} parameter can be specified
as an "equal-style variable"_variable.html, in which case it should be
specified as v_name, where name is the variable name. As with a
variable wall position, the variable is evaluated each timestep and
the result becomes the current epsilon or sigma of the wall.
Equal-style variables can specify formulas with various mathematical
functions, and include "thermo_style"_thermo_style.html command
keywords for the simulation box parameters and timestep and elapsed
time. Thus it is easy to specify a time-dependent wall interaction.
IMPORTANT NOTE: For all of the styles, you must insure that r is
always > 0 for all particles in the group, or LAMMPS will generate an
error. This means you cannot start your simulation with particles at
@ -179,7 +191,8 @@ want.
Here are examples of variable definitions that move the wall position
in a time-dependent fashion using equal-style
"variables"_variable.html.
"variables"_variable.html. The wall interaction parameters (epsilon,
sigma) could be varied with additional variable definitions.
variable ramp equal ramp(0,10)
fix 1 all wall xlo v_ramp 1.0 1.0 2.5 :pre

View File

@ -15,7 +15,7 @@
</P>
<PRE>kspace_style style value
</PRE>
<UL><LI>style = <I>none</I> or <I>ewald</I> or <I>ewald/disp</I> or <I>ewald/omp</I> or <I>pppm</I> or <I>pppm/cg</I> or <I>pppm/disp</I> or <I>pppm/tip4p</I> or <I>pppm/disp/tip4p</I> or <I>pppm/gpu</I> or <I>pppm/omp</I> or <I>pppm/cg/omp</I> or <I>pppm/tip4p/omp</I> or <I>msm</I>
<UL><LI>style = <I>none</I> or <I>ewald</I> or <I>ewald/disp</I> or <I>ewald/omp</I> or <I>pppm</I> or <I>pppm/cg</I> or <I>pppm/disp</I> or <I>pppm/tip4p</I> or <I>pppm/disp/tip4p</I> or <I>pppm/gpu</I> or <I>pppm/omp</I> or <I>pppm/cg/omp</I> or <I>pppm/tip4p/omp</I> or <I>msm</I> or <I>msm/omp</I>
<PRE> <I>none</I> value = none
<I>ewald</I> value = accuracy
@ -44,6 +44,8 @@
<I>pppm/tip4p/omp</I> value = accuracy
accuracy = desired relative error in forces
<I>msm</I> value = accuracy
accuracy = desired relative error in forces
<I>msm/omp</I> value = accuracy
accuracy = desired relative error in forces
</PRE>

View File

@ -12,7 +12,7 @@ kspace_style command :h3
kspace_style style value :pre
style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} or {pppm/disp} or {pppm/tip4p} or {pppm/disp/tip4p} or {pppm/gpu} or {pppm/omp} or {pppm/cg/omp} or {pppm/tip4p/omp} or {msm} :ulb,l
style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} or {pppm/disp} or {pppm/tip4p} or {pppm/disp/tip4p} or {pppm/gpu} or {pppm/omp} or {pppm/cg/omp} or {pppm/tip4p/omp} or {msm} or {msm/omp} :ulb,l
{none} value = none
{ewald} value = accuracy
accuracy = desired relative error in forces
@ -40,6 +40,8 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg}
{pppm/tip4p/omp} value = accuracy
accuracy = desired relative error in forces
{msm} value = accuracy
accuracy = desired relative error in forces
{msm/omp} value = accuracy
accuracy = desired relative error in forces :pre
:ule

View File

@ -23,6 +23,10 @@
</H3>
<H3>pair_style born/coul/long/omp command
</H3>
<H3>pair_style born/coul/msm command
</H3>
<H3>pair_style born/coul/msm/omp command
</H3>
<H3>pair_style born/coul/wolf command
</H3>
<H3>pair_style born/coul/wolf/gpu command
@ -33,7 +37,7 @@
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = <I>born</I> or <I>born/coul/long</I> or <I>born/coul/wolf</I>
<UL><LI>style = <I>born</I> or <I>born/coul/long</I> or <I>born/coul/msm</I> or <I>born/coul/wolf</I>
<LI>args = list of arguments for a particular style
</UL>
<PRE> <I>born</I> args = cutoff
@ -41,6 +45,9 @@
<I>born/coul/long</I> args = cutoff (cutoff2)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>born/coul/msm</I> args = cutoff (cutoff2)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>born/coul/wolf</I> args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
@ -57,6 +64,11 @@ pair_style born/coul/long 10.0 8.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51
</PRE>
<PRE>pair_style born/coul/msm 10.0
pair_style born/coul/msm 10.0 8.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51
</PRE>
<PRE>pair_style born/coul/wolf 0.25 10.0
pair_style born/coul/wolf 0.25 10.0 9.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
@ -72,27 +84,24 @@ potential described in <A HREF = "#FumiTosi">(Fumi and Tosi)</A>, given by
<P>where sigma is an interaction-dependent length parameter, rho is an
ionic-pair dependent length parameter, and Rc is the cutoff.
</P>
<P>The <I>born/coul/long</I> style adds a Coulombic term as described for the
<A HREF = "pair_coul.html">coul/long</A> pair style. An additional damping factor
is applied to the Coulombic term so it can be used in conjunction with
the <A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
<P>The styles with <I>coul/long</I> or <I>coul/msm</I> add a Coulombic term as
described for the <A HREF = "pair_lj.html">lj/cut</A> pair styles. An additional
damping factor is applied to the Coulombic term so it can be used in
conjunction with the <A HREF = "kspace_style.html">kspace_style</A> command and its
<I>ewald</I> or <I>pppm</I> of <I>msm</I> option. The Coulombic cutoff specified for
this style means that pairwise interactions within this distance are
computed directly; interactions outside that distance are computed in
reciprocal space.
</P>
<P>If one cutoff is specified for the <I>born/coul/long</I> style, it is used
for both the A,C,D and Coulombic terms. If two cutoffs are specified,
the first is used as the cutoff for the A,C,D terms, and the second is
the cutoff for the Coulombic term.
<P>If one cutoff is specified for the <I>born/coul/long</I> and
<I>born/coul/msm</I> style, it is used for both the A,C,D and Coulombic
terms. If two cutoffs are specified, the first is used as the cutoff
for the A,C,D terms, and the second is the cutoff for the Coulombic
term.
</P>
<P>The <I>born/coul/wolf</I> style adds a Coulombic term as described for the
Wolf potential in the <A HREF = "pair_coul.html">coul/wolf</A> pair style.
</P>
<P>If one cutoff is specified for the <I>born/coulk/long</I> style, it is used
for both the A,C,D and Coulombic terms. If two cutoffs are specified,
the first is used as the cutoff for the A,C,D terms, and the second is
the cutoff for the Coulombic term.
</P>
<P>Note that these potentials are related to the <A HREF = "pair_born.html">Buckingham
potential</A>.
</P>

View File

@ -14,6 +14,8 @@ pair_style born/coul/long command :h3
pair_style born/coul/long/cuda command :h3
pair_style born/coul/long/gpu command :h3
pair_style born/coul/long/omp command :h3
pair_style born/coul/msm command :h3
pair_style born/coul/msm/omp command :h3
pair_style born/coul/wolf command :h3
pair_style born/coul/wolf/gpu command :h3
pair_style born/coul/wolf/omp command :h3
@ -22,13 +24,16 @@ pair_style born/coul/wolf/omp command :h3
pair_style style args :pre
style = {born} or {born/coul/long} or {born/coul/wolf}
style = {born} or {born/coul/long} or {born/coul/msm} or {born/coul/wolf}
args = list of arguments for a particular style :ul
{born} args = cutoff
cutoff = global cutoff for non-Coulombic interactions (distance units)
{born/coul/long} args = cutoff (cutoff2)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{born/coul/msm} args = cutoff (cutoff2)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{born/coul/wolf} args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units)
@ -45,6 +50,11 @@ pair_style born/coul/long 10.0 8.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51 :pre
pair_style born/coul/msm 10.0
pair_style born/coul/msm 10.0 8.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51 :pre
pair_style born/coul/wolf 0.25 10.0
pair_style born/coul/wolf 0.25 10.0 9.0
pair_coeff * * 6.08 0.317 2.340 24.18 11.51
@ -60,27 +70,24 @@ potential described in "(Fumi and Tosi)"_#FumiTosi, given by
where sigma is an interaction-dependent length parameter, rho is an
ionic-pair dependent length parameter, and Rc is the cutoff.
The {born/coul/long} style adds a Coulombic term as described for the
"coul/long"_pair_coul.html pair style. An additional damping factor
is applied to the Coulombic term so it can be used in conjunction with
the "kspace_style"_kspace_style.html command and its {ewald} or {pppm}
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
The styles with {coul/long} or {coul/msm} add a Coulombic term as
described for the "lj/cut"_pair_lj.html pair styles. An additional
damping factor is applied to the Coulombic term so it can be used in
conjunction with the "kspace_style"_kspace_style.html command and its
{ewald} or {pppm} of {msm} option. The Coulombic cutoff specified for
this style means that pairwise interactions within this distance are
computed directly; interactions outside that distance are computed in
reciprocal space.
If one cutoff is specified for the {born/coul/long} style, it is used
for both the A,C,D and Coulombic terms. If two cutoffs are specified,
the first is used as the cutoff for the A,C,D terms, and the second is
the cutoff for the Coulombic term.
If one cutoff is specified for the {born/coul/long} and
{born/coul/msm} style, it is used for both the A,C,D and Coulombic
terms. If two cutoffs are specified, the first is used as the cutoff
for the A,C,D terms, and the second is the cutoff for the Coulombic
term.
The {born/coul/wolf} style adds a Coulombic term as described for the
Wolf potential in the "coul/wolf"_pair_coul.html pair style.
If one cutoff is specified for the {born/coulk/long} style, it is used
for both the A,C,D and Coulombic terms. If two cutoffs are specified,
the first is used as the cutoff for the A,C,D terms, and the second is
the cutoff for the Coulombic term.
Note that these potentials are related to the "Buckingham
potential"_pair_born.html.

View File

@ -33,11 +33,15 @@
</H3>
<H3>pair_style buck/coul/long/omp command
</H3>
<H3>pair_style buck/coul/msm command
</H3>
<H3>pair_style buck/coul/msm/omp command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = <I>buck</I> or <I>buck/coul/cut</I> or <I>buck/coul/long</I>
<UL><LI>style = <I>buck</I> or <I>buck/coul/cut</I> or <I>buck/coul/long</I> or <I>buck/coul/msm</I>
<LI>args = list of arguments for a particular style
</UL>
<PRE> <I>buck</I> args = cutoff
@ -46,6 +50,9 @@
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>buck/coul/long</I> args = cutoff (cutoff2)
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>buck/coul/msm</I> args = cutoff (cutoff2)
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
</PRE>
@ -66,6 +73,11 @@ pair_style buck/coul/long 10.0 8.0
pair_coeff * * 100.0 1.5 200.0
pair_coeff 1 1 100.0 1.5 200.0 9.0
</PRE>
<PRE>pair_style buck/coul/msm 10.0
pair_style buck/coul/msm 10.0 8.0
pair_coeff * * 100.0 1.5 200.0
pair_coeff 1 1 100.0 1.5 200.0 9.0
</PRE>
<P><B>Description:</B>
</P>
<P>The <I>buck</I> style computes a Buckingham potential (exp/6 instead of
@ -76,20 +88,20 @@ Lennard-Jones 12/6) given by
<P>where rho is an ionic-pair dependent length parameter, and Rc is the
cutoff.
</P>
<P>The <I>buck/coul/cut</I> and <I>buck/coul/long</I> styles add a Coulombic term
as described for the <A HREF = "pair_lj.html">lj/cut</A> pair styles. For
<I>buck/coul/long</I>, an additional damping factor is applied to the
Coulombic term so it can be used in conjunction with the
<A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
<P>The styles with <I>coul/cut</I> or <I>coul/long</I> or <I>coul/msm</I> add a
Coulombic term as described for the <A HREF = "pair_lj.html">lj/cut</A> pair styles.
For <I>buck/coul/long</I> and <I>buc/coul/msm</I>, an additional damping factor
is applied to the Coulombic term so it can be used in conjunction with
the <A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
or <I>msm</I> option. The Coulombic cutoff specified for this style means
that pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
</P>
<P>If one cutoff is specified for the <I>born/coul/cut</I> and
<I>born/coulk/long</I> styles, it is used for both the A,C and Coulombic
terms. If two cutoffs are specified, the first is used as the cutoff
for the A,C terms, and the second is the cutoff for the Coulombic
term.
<I>born/coul/long</I> and <I>born/coul/msm</I> styles, it is used for both the
A,C and Coulombic terms. If two cutoffs are specified, the first is
used as the cutoff for the A,C terms, and the second is the cutoff for
the Coulombic term.
</P>
<P>Note that these potentials are related to the <A HREF = "pair_born.html">Born-Mayer-Huggins
potential</A>.

View File

@ -18,12 +18,14 @@ pair_style buck/coul/long command :h3
pair_style buck/coul/long/cuda command :h3
pair_style buck/coul/long/gpu command :h3
pair_style buck/coul/long/omp command :h3
pair_style buck/coul/msm command :h3
pair_style buck/coul/msm/omp command :h3
[Syntax:]
pair_style style args :pre
style = {buck} or {buck/coul/cut} or {buck/coul/long}
style = {buck} or {buck/coul/cut} or {buck/coul/long} or {buck/coul/msm}
args = list of arguments for a particular style :ul
{buck} args = cutoff
cutoff = global cutoff for Buckingham interactions (distance units)
@ -31,6 +33,9 @@ args = list of arguments for a particular style :ul
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{buck/coul/long} args = cutoff (cutoff2)
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{buck/coul/msm} args = cutoff (cutoff2)
cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units) :pre
@ -51,6 +56,11 @@ pair_style buck/coul/long 10.0 8.0
pair_coeff * * 100.0 1.5 200.0
pair_coeff 1 1 100.0 1.5 200.0 9.0 :pre
pair_style buck/coul/msm 10.0
pair_style buck/coul/msm 10.0 8.0
pair_coeff * * 100.0 1.5 200.0
pair_coeff 1 1 100.0 1.5 200.0 9.0 :pre
[Description:]
The {buck} style computes a Buckingham potential (exp/6 instead of
@ -61,20 +71,20 @@ Lennard-Jones 12/6) given by
where rho is an ionic-pair dependent length parameter, and Rc is the
cutoff.
The {buck/coul/cut} and {buck/coul/long} styles add a Coulombic term
as described for the "lj/cut"_pair_lj.html pair styles. For
{buck/coul/long}, an additional damping factor is applied to the
Coulombic term so it can be used in conjunction with the
"kspace_style"_kspace_style.html command and its {ewald} or {pppm}
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
The styles with {coul/cut} or {coul/long} or {coul/msm} add a
Coulombic term as described for the "lj/cut"_pair_lj.html pair styles.
For {buck/coul/long} and {buc/coul/msm}, an additional damping factor
is applied to the Coulombic term so it can be used in conjunction with
the "kspace_style"_kspace_style.html command and its {ewald} or {pppm}
or {msm} option. The Coulombic cutoff specified for this style means
that pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
If one cutoff is specified for the {born/coul/cut} and
{born/coulk/long} styles, it is used for both the A,C and Coulombic
terms. If two cutoffs are specified, the first is used as the cutoff
for the A,C terms, and the second is the cutoff for the Coulombic
term.
{born/coul/long} and {born/coul/msm} styles, it is used for both the
A,C and Coulombic terms. If two cutoffs are specified, the first is
used as the cutoff for the A,C terms, and the second is the cutoff for
the Coulombic term.
Note that these potentials are related to the "Born-Mayer-Huggins
potential"_pair_born.html.

View File

@ -31,11 +31,15 @@
</H3>
<H3>pair_style lj/charmm/coul/long/omp command
</H3>
<H3>pair_style lj/charmm/coul/msm command
</H3>
<H3>pair_style lj/charmm/coul/msm/omp command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = <I>lj/charmm/coul/charmm</I> or <I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I>
<UL><LI>style = <I>lj/charmm/coul/charmm</I> or <I>lj/charmm/coul/charmm/implicit</I> or <I>lj/charmm/coul/long</I> or <I>lj/charmm/coul/msm</I>
<LI>args = list of arguments for a particular style
</UL>
<PRE> <I>lj/charmm/coul/charmm</I> args = inner outer (inner2) (outer2)
@ -45,6 +49,9 @@
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
inner2, outer2 = global switching cutoffs for Coulombic (optional)
<I>lj/charmm/coul/long</I> args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args)
<I>lj/charmm/coul/msm</I> args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args)
</PRE>
@ -65,6 +72,11 @@ pair_style lj/charmm/coul/long 8.0 10.0 9.0
pair_coeff * * 100.0 2.0
pair_coeff 1 1 100.0 2.0 150.0 3.5
</PRE>
<PRE>pair_style lj/charmm/coul/msm 8.0 10.0
pair_style lj/charmm/coul/msm 8.0 10.0 9.0
pair_coeff * * 100.0 2.0
pair_coeff 1 1 100.0 2.0 150.0 3.5
</PRE>
<P><B>Description:</B>
</P>
<P>The <I>lj/charmm</I> styles compute LJ and Coulombic interactions with an
@ -91,13 +103,13 @@ which is a simple model for an implicit solvent with additional
screening. It is designed for use in a simulation of an unsolvated
biomolecule (no explicit water molecules).
</P>
<P>Styles <I>lj/charmm/coul/long</I> computes the same formulas as style
<I>lj/charmm/coul/charmm</I> except that an additional damping factor is
applied to the Coulombic term, as in the discussion for pair style
<I>lj/cut/coul/long</I>. Only one Coulombic cutoff is specified for
<I>lj/charmm/coul/long</I>; if only 2 arguments are used in the pair_style
command, then the outer LJ cutoff is used as the single Coulombic
cutoff.
<P>Styles <I>lj/charmm/coul/long</I> and <I>lj/charmm/coul/msm</I> compute the same
formulas as style <I>lj/charmm/coul/charmm</I> except that an additional
damping factor is applied to the Coulombic term, as described for the
<A HREF = "pair_lj.html">lj/cut</A> pair styles. Only one Coulombic cutoff is
specified for <I>lj/charmm/coul/long</I> and <I>lj/charmm/coul/msm</I>; if only
2 arguments are used in the pair_style command, then the outer LJ
cutoff is used as the single Coulombic cutoff.
</P>
<P>The following coefficients must be defined for each pair of atoms
types via the <A HREF = "pair_coeff.html">pair_coeff</A> command as in the examples

View File

@ -17,12 +17,14 @@ pair_style lj/charmm/coul/long/cuda command :h3
pair_style lj/charmm/coul/long/gpu command :h3
pair_style lj/charmm/coul/long/opt command :h3
pair_style lj/charmm/coul/long/omp command :h3
pair_style lj/charmm/coul/msm command :h3
pair_style lj/charmm/coul/msm/omp command :h3
[Syntax:]
pair_style style args :pre
style = {lj/charmm/coul/charmm} or {lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long}
style = {lj/charmm/coul/charmm} or {lj/charmm/coul/charmm/implicit} or {lj/charmm/coul/long} or {lj/charmm/coul/msm}
args = list of arguments for a particular style :ul
{lj/charmm/coul/charmm} args = inner outer (inner2) (outer2)
inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args)
@ -31,6 +33,9 @@ args = list of arguments for a particular style :ul
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
inner2, outer2 = global switching cutoffs for Coulombic (optional)
{lj/charmm/coul/long} args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args)
{lj/charmm/coul/msm} args = inner outer (cutoff)
inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args)
cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) :pre
@ -51,6 +56,11 @@ pair_style lj/charmm/coul/long 8.0 10.0 9.0
pair_coeff * * 100.0 2.0
pair_coeff 1 1 100.0 2.0 150.0 3.5 :pre
pair_style lj/charmm/coul/msm 8.0 10.0
pair_style lj/charmm/coul/msm 8.0 10.0 9.0
pair_coeff * * 100.0 2.0
pair_coeff 1 1 100.0 2.0 150.0 3.5 :pre
[Description:]
The {lj/charmm} styles compute LJ and Coulombic interactions with an
@ -77,13 +87,13 @@ which is a simple model for an implicit solvent with additional
screening. It is designed for use in a simulation of an unsolvated
biomolecule (no explicit water molecules).
Styles {lj/charmm/coul/long} computes the same formulas as style
{lj/charmm/coul/charmm} except that an additional damping factor is
applied to the Coulombic term, as in the discussion for pair style
{lj/cut/coul/long}. Only one Coulombic cutoff is specified for
{lj/charmm/coul/long}; if only 2 arguments are used in the pair_style
command, then the outer LJ cutoff is used as the single Coulombic
cutoff.
Styles {lj/charmm/coul/long} and {lj/charmm/coul/msm} compute the same
formulas as style {lj/charmm/coul/charmm} except that an additional
damping factor is applied to the Coulombic term, as described for the
"lj/cut"_pair_lj.html pair styles. Only one Coulombic cutoff is
specified for {lj/charmm/coul/long} and {lj/charmm/coul/msm}; if only
2 arguments are used in the pair_style command, then the outer LJ
cutoff is used as the single Coulombic cutoff.
The following coefficients must be defined for each pair of atoms
types via the "pair_coeff"_pair_coeff.html command as in the examples

View File

@ -27,6 +27,10 @@
</H3>
<H3>pair_style coul/long/gpu command
</H3>
<H3>pair_style coul/msm command
</H3>
<H3>pair_style coul/msm/omp command
</H3>
<H3>pair_style coul/wolf command
</H3>
<H3>pair_style coul/wolf/omp command
@ -60,6 +64,9 @@ pair_coeff * *
<PRE>pair_style coul/long 10.0
pair_coeff * *
</PRE>
<PRE>pair_style coul/msm 10.0
pair_coeff * *
</PRE>
<PRE>pair_style coul/wolf 0.2 9.0
pair_coeff * *
</PRE>
@ -112,13 +119,13 @@ forces calcluated by the Wolf summation method approach those of the
Ewald sum. So it is a means of getting effective long-range
interactions with a short-range potential.
</P>
<P>Style <I>coul/long</I> computes the same Coulombic interactions as style
<I>coul/cut</I> except that an additional damping factor is applied so it
can be used in conjunction with the <A HREF = "kspace_style.html">kspace_style</A>
command and its <I>ewald</I> or <I>pppm</I> option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
<P>Styles <I>coul/long</I> and <I>coul/msm</I> compute the same Coulombic
interactions as style <I>coul/cut</I> except that an additional damping
factor is applied so it can be used in conjunction with the
<A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
</P>
<P>These potentials are designed to be combined with other pair
potentials via the <A HREF = "pair_hybrid.html">pair_style hybrid/overlay</A>
@ -138,9 +145,10 @@ commands, or by mixing as described below:
If it is not used (as in some of the examples above), the default
global value specified in the pair_style command is used.
</P>
<P>For <I>coul/long</I> no cutoff can be specified for an individual I,J type
pair via the pair_coeff command. All type pairs use the same global
Coulombic cutoff specified in the pair_style command.
<P>For <I>coul/long</I> and <I>coul/msm</I> no cutoff can be specified for an
individual I,J type pair via the pair_coeff command. All type pairs
use the same global Coulombic cutoff specified in the pair_style
command.
</P>
<HR>

View File

@ -15,6 +15,8 @@ pair_style coul/dsf/gpu command :h3
pair_style coul/long command :h3
pair_style coul/long/omp command :h3
pair_style coul/long/gpu command :h3
pair_style coul/msm command :h3
pair_style coul/msm/omp command :h3
pair_style coul/wolf command :h3
pair_style coul/wolf/omp command :h3
@ -47,6 +49,9 @@ pair_coeff * * :pre
pair_style coul/long 10.0
pair_coeff * * :pre
pair_style coul/msm 10.0
pair_coeff * * :pre
pair_style coul/wolf 0.2 9.0
pair_coeff * * :pre
@ -99,13 +104,13 @@ forces calcluated by the Wolf summation method approach those of the
Ewald sum. So it is a means of getting effective long-range
interactions with a short-range potential.
Style {coul/long} computes the same Coulombic interactions as style
{coul/cut} except that an additional damping factor is applied so it
can be used in conjunction with the "kspace_style"_kspace_style.html
command and its {ewald} or {pppm} option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
Styles {coul/long} and {coul/msm} compute the same Coulombic
interactions as style {coul/cut} except that an additional damping
factor is applied so it can be used in conjunction with the
"kspace_style"_kspace_style.html command and its {ewald} or {pppm}
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
These potentials are designed to be combined with other pair
potentials via the "pair_style hybrid/overlay"_pair_hybrid.html
@ -125,9 +130,10 @@ For {coul/cut} and {coul/debye}, the cutoff coefficient is optional.
If it is not used (as in some of the examples above), the default
global value specified in the pair_style command is used.
For {coul/long} no cutoff can be specified for an individual I,J type
pair via the pair_coeff command. All type pairs use the same global
Coulombic cutoff specified in the pair_style command.
For {coul/long} and {coul/msm} no cutoff can be specified for an
individual I,J type pair via the pair_coeff command. All type pairs
use the same global Coulombic cutoff specified in the pair_style
command.
:line

View File

@ -51,6 +51,10 @@
</H3>
<H3>pair_style lj/cut/coul/long/omp command
</H3>
<H3>pair_style lj/cut/coul/msm command
</H3>
<H3>pair_style lj/cut/coul/msm/omp command
</H3>
<H3>pair_style lj/cut/tip4p/long command
</H3>
<H3>pair_style lj/cut/tip4p/long/omp command
@ -61,7 +65,7 @@
</P>
<PRE>pair_style style args
</PRE>
<UL><LI>style = <I>lj/cut</I> or <I>lj/cut/coul/cut</I> or <I>lj/cut/coul/debye</I> or <I>lj/cut/coul/dsf</I> or <I>lj/cut/coul/long</I> or <I>lj/cut/tip4p/long</I>
<UL><LI>style = <I>lj/cut</I> or <I>lj/cut/coul/cut</I> or <I>lj/cut/coul/debye</I> or <I>lj/cut/coul/dsf</I> or <I>lj/cut/coul/long</I> or <I>lj/cut/coul/msm</I> or <I>lj/cut/tip4p/long</I>
<LI>args = list of arguments for a particular style
</UL>
<PRE> <I>lj/cut</I> args = cutoff
@ -80,6 +84,9 @@
<I>lj/cut/coul/long</I> args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>lj/cut/coul/msm</I> args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
<I>lj/cut/tip4p/long</I> args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
@ -114,6 +121,11 @@ pair_style lj/cut/coul/long 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
</PRE>
<PRE>pair_style lj/cut/coul/msm 10.0
pair_style lj/cut/coul/msm 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
</PRE>
<PRE>pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
@ -164,13 +176,14 @@ is enforced by shifting the potential through placement of image
charges on the cutoff sphere. Convergence can often be improved by
setting <I>alpha</I> to a small non-zero value.
</P>
<P>Style <I>lj/cut/coul/long</I> computes the same Coulombic interactions as
style <I>lj/cut/coul/cut</I> except that an additional damping factor is
applied to the Coulombic term so it can be used in conjunction with
the <A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
<P>Styles <I>lj/cut/coul/long</I> and <I>lj/cut/coul/msm</I> compute the same
Coulombic interactions as style <I>lj/cut/coul/cut</I> except that an
additional damping factor is applied to the Coulombic term so it can
be used in conjunction with the <A HREF = "kspace_style.html">kspace_style</A>
command and its <I>ewald</I> or <I>pppm</I> option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
</P>
<P>Style <I>lj/cut/tip4p/long</I> implements the TIP4P water model of
<A HREF = "#Jorgensen">(Jorgensen)</A>, which introduces a massless site located a
@ -218,10 +231,10 @@ are specified, they are used as the LJ and Coulombic cutoffs for this
type pair. You cannot specify 2 cutoffs for style <I>lj/cut</I>, since it
has no Coulombic terms.
</P>
<P>For <I>lj/cut/coul/long</I> and <I>lj/cut/tip4p/long</I> only the LJ cutoff
can be specified since a Coulombic cutoff cannot be specified for an
individual I,J type pair. All type pairs use the same global
Coulombic cutoff specified in the pair_style command.
<P>For <I>lj/cut/coul/long</I> and <I>lj/cut/coul/msm</I> and <I>lj/cut/tip4p/long</I>
only the LJ cutoff can be specified since a Coulombic cutoff cannot be
specified for an individual I,J type pair. All type pairs use the
same global Coulombic cutoff specified in the pair_style command.
</P>
<HR>

View File

@ -27,6 +27,8 @@ pair_style lj/cut/coul/long/cuda command :h3
pair_style lj/cut/coul/long/gpu command :h3
pair_style lj/cut/coul/long/opt command :h3
pair_style lj/cut/coul/long/omp command :h3
pair_style lj/cut/coul/msm command :h3
pair_style lj/cut/coul/msm/omp command :h3
pair_style lj/cut/tip4p/long command :h3
pair_style lj/cut/tip4p/long/omp command :h3
pair_style lj/cut/tip4p/long/opt command :h3
@ -35,7 +37,7 @@ pair_style lj/cut/tip4p/long/opt command :h3
pair_style style args :pre
style = {lj/cut} or {lj/cut/coul/cut} or {lj/cut/coul/debye} or {lj/cut/coul/dsf} or {lj/cut/coul/long} or {lj/cut/tip4p/long}
style = {lj/cut} or {lj/cut/coul/cut} or {lj/cut/coul/debye} or {lj/cut/coul/dsf} or {lj/cut/coul/long} or {lj/cut/coul/msm} or {lj/cut/tip4p/long}
args = list of arguments for a particular style :ul
{lj/cut} args = cutoff
cutoff = global cutoff for Lennard Jones interactions (distance units)
@ -53,6 +55,9 @@ args = list of arguments for a particular style :ul
{lj/cut/coul/long} args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{lj/cut/coul/msm} args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
{lj/cut/tip4p/long} args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
@ -87,6 +92,11 @@ pair_style lj/cut/coul/long 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0 :pre
pair_style lj/cut/coul/msm 10.0
pair_style lj/cut/coul/msm 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0 :pre
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
@ -137,13 +147,14 @@ is enforced by shifting the potential through placement of image
charges on the cutoff sphere. Convergence can often be improved by
setting {alpha} to a small non-zero value.
Style {lj/cut/coul/long} computes the same Coulombic interactions as
style {lj/cut/coul/cut} except that an additional damping factor is
applied to the Coulombic term so it can be used in conjunction with
the "kspace_style"_kspace_style.html command and its {ewald} or {pppm}
option. The Coulombic cutoff specified for this style means that
pairwise interactions within this distance are computed directly;
interactions outside that distance are computed in reciprocal space.
Styles {lj/cut/coul/long} and {lj/cut/coul/msm} compute the same
Coulombic interactions as style {lj/cut/coul/cut} except that an
additional damping factor is applied to the Coulombic term so it can
be used in conjunction with the "kspace_style"_kspace_style.html
command and its {ewald} or {pppm} option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
Style {lj/cut/tip4p/long} implements the TIP4P water model of
"(Jorgensen)"_#Jorgensen, which introduces a massless site located a
@ -191,10 +202,10 @@ are specified, they are used as the LJ and Coulombic cutoffs for this
type pair. You cannot specify 2 cutoffs for style {lj/cut}, since it
has no Coulombic terms.
For {lj/cut/coul/long} and {lj/cut/tip4p/long} only the LJ cutoff
can be specified since a Coulombic cutoff cannot be specified for an
individual I,J type pair. All type pairs use the same global
Coulombic cutoff specified in the pair_style command.
For {lj/cut/coul/long} and {lj/cut/coul/msm} and {lj/cut/tip4p/long}
only the LJ cutoff can be specified since a Coulombic cutoff cannot be
specified for an individual I,J type pair. All type pairs use the
same global Coulombic cutoff specified in the pair_style command.
:line

View File

@ -31,6 +31,7 @@
dim = <I>x</I> or <I>y</I> or <I>z</I> = axis of cylinder
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
radius can be a variable (see below)
lo,hi = bounds of cylinder in dim (distance units)
<I>plane</I> args = px py pz nx ny nz
px,py,pz = point on the plane (distance units)
@ -43,6 +44,7 @@
<I>sphere</I> args = x y z radius
x,y,z = center of sphere (distance units)
radius = radius of sphere (distance units)
radius can be a variable (see below)
<I>union</I> args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
@ -175,6 +177,17 @@ since if the maximum tilt factor is 5 (as in this example), then
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
geometrically equivalent.
</P>
<P>The <I>radius</I> value for style <I>sphere</I> and <I>cylinder</I> can be specified
as an equal-style <A HREF = "variable.html">variable</A>. If the value is a
variable, it should be specified as v_name, where name is the variable
name. In this case, the variable will be evaluated each timestep, and
its value used to determine the radius of the region.
</P>
<P>Equal-style variables can specify formulas with various mathematical
functions, and include <A HREF = "thermo_style.html">thermo_style</A> command
keywords for the simulation box parameters and timestep and elapsed
time. Thus it is easy to specify a time-dependent radius.
</P>
<P>See <A HREF = "Section_howto.html#howto_12">Section_howto 12</A> of the doc pages
for a geometric description of triclinic boxes, as defined by LAMMPS,
and how to transform these parameters to and from other commonly used

View File

@ -26,6 +26,7 @@ style = {delete} or {block} or {cone} or {cylinder} or {plane} or {prism} or {sp
dim = {x} or {y} or {z} = axis of cylinder
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
radius can be a variable (see below)
lo,hi = bounds of cylinder in dim (distance units)
{plane} args = px py pz nx ny nz
px,py,pz = point on the plane (distance units)
@ -38,6 +39,7 @@ style = {delete} or {block} or {cone} or {cylinder} or {plane} or {prism} or {sp
{sphere} args = x y z radius
x,y,z = center of sphere (distance units)
radius = radius of sphere (distance units)
radius can be a variable (see below)
{union} args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
@ -166,6 +168,17 @@ since if the maximum tilt factor is 5 (as in this example), then
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
geometrically equivalent.
The {radius} value for style {sphere} and {cylinder} can be specified
as an equal-style "variable"_variable.html. If the value is a
variable, it should be specified as v_name, where name is the variable
name. In this case, the variable will be evaluated each timestep, and
its value used to determine the radius of the region.
Equal-style variables can specify formulas with various mathematical
functions, and include "thermo_style"_thermo_style.html command
keywords for the simulation box parameters and timestep and elapsed
time. Thus it is easy to specify a time-dependent radius.
See "Section_howto 12"_Section_howto.html#howto_12 of the doc pages
for a geometric description of triclinic boxes, as defined by LAMMPS,
and how to transform these parameters to and from other commonly used

View File

@ -115,8 +115,8 @@ void PairBrownian::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -503,7 +503,7 @@ void PairBrownian::init_style()
flagdeform = 1;
else if (strstr(modify->fix[i]->style,"wall") != NULL){
flagwall = 1; // Walls exist
if (((FixWall *) modify->fix[i])->varflag ) {
if (((FixWall *) modify->fix[i])->xflag ) {
flagwall = 2; // Moving walls exist
wallfix = (FixWall *) modify->fix[i];
}
@ -523,10 +523,10 @@ void PairBrownian::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
// Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -101,8 +101,8 @@ void PairBrownianPoly::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -363,10 +363,10 @@ void PairBrownianPoly::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
// Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -181,8 +181,8 @@ void PairLubricate::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -597,7 +597,7 @@ void PairLubricate::init_style()
}
if (strstr(modify->fix[i]->style,"wall") != NULL){
flagwall = 1; // Walls exist
if (((FixWall *) modify->fix[i])->varflag ) {
if (((FixWall *) modify->fix[i])->xflag ) {
flagwall = 2; // Moving walls exist
wallfix = (FixWall *) modify->fix[i];
}
@ -619,10 +619,10 @@ void PairLubricate::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
//Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -627,8 +627,8 @@ void PairLubricateU::compute_Fh(double **x)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -866,8 +866,8 @@ void PairLubricateU::compute_RU()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -1143,8 +1143,8 @@ void PairLubricateU::compute_RU(double **x)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -1879,7 +1879,7 @@ void PairLubricateU::init_style()
flagdeform = 1;
else if (strstr(modify->fix[i]->style,"wall") != NULL){
flagwall = 1; // Walls exist
if (((FixWall *) modify->fix[i])->varflag ) {
if (((FixWall *) modify->fix[i])->xflag ) {
flagwall = 2; // Moving walls exist
wallfix = (FixWall *) modify->fix[i];
}
@ -1899,10 +1899,10 @@ void PairLubricateU::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
//Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -379,8 +379,8 @@ void PairLubricateUPoly::compute_Fh(double **x)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -660,8 +660,8 @@ void PairLubricateUPoly::compute_RU(double **x)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -1212,7 +1212,7 @@ void PairLubricateUPoly::init_style()
flagdeform = 1;
else if (strstr(modify->fix[i]->style,"wall") != NULL){
flagwall = 1; // Walls exist
if (((FixWall *) modify->fix[i])->varflag ) {
if (((FixWall *) modify->fix[i])->xflag ) {
flagwall = 2; // Moving walls exist
wallfix = (FixWall *) modify->fix[i];
}
@ -1233,10 +1233,10 @@ void PairLubricateUPoly::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
//Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -165,8 +165,8 @@ void PairLubricatePoly::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;
@ -492,7 +492,7 @@ void PairLubricatePoly::init_style()
}
if (strstr(modify->fix[i]->style,"wall") != NULL){
flagwall = 1; // Walls exist
if (((FixWall *) modify->fix[i])->varflag ) {
if (((FixWall *) modify->fix[i])->xflag ) {
flagwall = 2; // Moving walls exist
wallfix = (FixWall *) modify->fix[i];
}
@ -511,10 +511,10 @@ void PairLubricatePoly::init_style()
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallfix->varindex[m] = input->variable->find(wallfix->varstr[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallfix->xindex[m] = input->variable->find(wallfix->xstr[m]);
//Since fix->wall->init happens after pair->init_style
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];

View File

@ -91,8 +91,8 @@ void PairBrownianOMP::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;

View File

@ -91,8 +91,8 @@ void PairBrownianPolyOMP::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;

View File

@ -85,8 +85,8 @@ void PairLubricateOMP::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;

View File

@ -86,8 +86,8 @@ void PairLubricatePolyOMP::compute(int eflag, int vflag)
for (int m = 0; m < wallfix->nwall; m++){
int dim = wallfix->wallwhich[m] / 2;
int side = wallfix->wallwhich[m] % 2;
if (wallfix->wallstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->varindex[m]);
if (wallfix->xstyle[m] == VARIABLE){
wallcoord = input->variable->compute_equal(wallfix->xindex[m]);
}
else wallcoord = wallfix->coord0[m];
if (side == 0) walllo[dim] = wallcoord;

View File

@ -49,6 +49,8 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
fldflag = 0;
int pbcflag = 0;
for (int i = 0; i < 6; i++) xstr[i] = estr[i] = sstr[i] = NULL;
int iarg = 3;
while (iarg < narg) {
if ((strcmp(arg[iarg],"xlo") == 0) || (strcmp(arg[iarg],"xhi") == 0) ||
@ -70,23 +72,41 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
wallwhich[nwall] = newwall;
if (strcmp(arg[iarg+1],"EDGE") == 0) {
wallstyle[nwall] = EDGE;
xstyle[nwall] = EDGE;
int dim = wallwhich[nwall] / 2;
int side = wallwhich[nwall] % 2;
if (side == 0) coord0[nwall] = domain->boxlo[dim];
else coord0[nwall] = domain->boxhi[dim];
} else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) {
wallstyle[nwall] = VARIABLE;
xstyle[nwall] = VARIABLE;
int n = strlen(&arg[iarg+1][2]) + 1;
varstr[nwall] = new char[n];
strcpy(varstr[nwall],&arg[iarg+1][2]);
xstr[nwall] = new char[n];
strcpy(xstr[nwall],&arg[iarg+1][2]);
} else {
wallstyle[nwall] = CONSTANT;
xstyle[nwall] = CONSTANT;
coord0[nwall] = atof(arg[iarg+1]);
}
epsilon[nwall] = atof(arg[iarg+2]);
sigma[nwall] = atof(arg[iarg+3]);
if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) {
int n = strlen(&arg[iarg+2][2]) + 1;
estr[nwall] = new char[n];
strcpy(estr[nwall],&arg[iarg+2][2]);
estyle[nwall] = VARIABLE;
} else {
epsilon[nwall] = atof(arg[iarg+2]);
estyle[nwall] = CONSTANT;
}
if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) {
int n = strlen(&arg[iarg+3][2]) + 1;
sstr[nwall] = new char[n];
strcpy(sstr[nwall],&arg[iarg+3][2]);
sstyle[nwall] = VARIABLE;
} else {
sigma[nwall] = atof(arg[iarg+3]);
sstyle[nwall] = CONSTANT;
}
cutoff[nwall] = atof(arg[iarg+4]);
nwall++;
iarg += 5;
@ -136,11 +156,11 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
}
}
// scale factors for CONSTANT and VARIABLE walls
// scale factors for wall position for CONSTANT and VARIABLE walls
int flag = 0;
for (int m = 0; m < nwall; m++)
if (wallstyle[m] != EDGE) flag = 1;
if (xstyle[m] != EDGE) flag = 1;
if (flag) {
if (scaleflag && domain->lattice == NULL)
@ -154,18 +174,24 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
else xscale = yscale = zscale = 1.0;
for (int m = 0; m < nwall; m++) {
if (wallstyle[m] != CONSTANT) continue;
if (xstyle[m] != CONSTANT) continue;
if (wallwhich[m] < YLO) coord0[m] *= xscale;
else if (wallwhich[m] < ZLO) coord0[m] *= yscale;
else coord0[m] *= zscale;
}
}
// set varflag if any wall positions are variable
// set xflag if any wall positions are variable
// set vflag if any wall positions are variable
// set wstyle to VARIABLE if either epsilon or sigma is a variable
varflag = 0;
for (int m = 0; m < nwall; m++)
if (wallstyle[m] == VARIABLE) varflag = 1;
vflag = xflag = 0;
for (int m = 0; m < nwall; m++) {
if (xstyle[m] == VARIABLE) xflag = 1;
if (xflag || estyle[m] == VARIABLE || sstyle[m] == VARIABLE) vflag = 1;
if (estyle[m] == VARIABLE || sstyle[m] == VARIABLE) wstyle[m] = VARIABLE;
else wstyle[m] = CONSTANT;
}
eflag = 0;
for (int m = 0; m <= nwall; m++) ewall[m] = 0.0;
@ -175,8 +201,11 @@ FixWall::FixWall(LAMMPS *lmp, int narg, char **arg) :
FixWall::~FixWall()
{
for (int m = 0; m < nwall; m++)
if (wallstyle[m] == VARIABLE) delete [] varstr[m];
for (int m = 0; m < nwall; m++) {
delete [] xstr[m];
delete [] estr[m];
delete [] sstr[m];
}
}
/* ---------------------------------------------------------------------- */
@ -203,12 +232,27 @@ void FixWall::init()
dt = update->dt;
for (int m = 0; m < nwall; m++) {
if (wallstyle[m] != VARIABLE) continue;
varindex[m] = input->variable->find(varstr[m]);
if (varindex[m] < 0)
error->all(FLERR,"Variable name for fix wall does not exist");
if (!input->variable->equalstyle(varindex[m]))
error->all(FLERR,"Variable for fix wall is invalid style");
if (xstyle[m] == VARIABLE) {
xindex[m] = input->variable->find(xstr[m]);
if (xindex[m] < 0)
error->all(FLERR,"Variable name for fix wall does not exist");
if (!input->variable->equalstyle(xindex[m]))
error->all(FLERR,"Variable for fix wall is invalid style");
}
if (estyle[m] == VARIABLE) {
eindex[m] = input->variable->find(estr[m]);
if (eindex[m] < 0)
error->all(FLERR,"Variable name for fix wall does not exist");
if (!input->variable->equalstyle(eindex[m]))
error->all(FLERR,"Variable for fix wall is invalid style");
}
if (sstyle[m] == VARIABLE) {
sindex[m] = input->variable->find(sstr[m]);
if (sindex[m] < 0)
error->all(FLERR,"Variable name for fix wall does not exist");
if (!input->variable->equalstyle(sindex[m]))
error->all(FLERR,"Variable for fix wall is invalid style");
}
}
// setup coefficients
@ -256,23 +300,37 @@ void FixWall::post_force(int vflag)
for (int m = 0; m <= nwall; m++) ewall[m] = 0.0;
// coord = current position of wall
// evaluate variable if necessary, wrap with clear/add
// evaluate variables if necessary, wrap with clear/add
// for epsilon/sigma variables need to re-invoke precompute()
if (varflag) modify->clearstep_compute();
if (vflag) modify->clearstep_compute();
double coord;
for (int m = 0; m < nwall; m++) {
if (wallstyle[m] == VARIABLE) {
coord = input->variable->compute_equal(varindex[m]);
if (xstyle[m] == VARIABLE) {
coord = input->variable->compute_equal(xindex[m]);
if (wallwhich[m] < YLO) coord *= xscale;
else if (wallwhich[m] < ZLO) coord *= yscale;
else coord *= zscale;
} else coord = coord0[m];
if (wstyle[m] == VARIABLE) {
if (estyle[m] == VARIABLE) {
epsilon[m] = input->variable->compute_equal(eindex[m]);
if (epsilon[m] < 0.0)
error->all(FLERR,"Variable evaluation in fix wall gave bad value");
}
if (sstyle[m] == VARIABLE) {
sigma[m] = input->variable->compute_equal(sindex[m]);
if (sigma[m] < 0.0)
error->all(FLERR,"Variable evaluation in fix wall gave bad value");
}
precompute(m);
}
wall_particle(m,wallwhich[m],coord);
}
if (varflag) modify->addstep_compute(update->ntimestep + 1);
if (vflag) modify->addstep_compute(update->ntimestep + 1);
}
/* ---------------------------------------------------------------------- */

View File

@ -20,6 +20,14 @@ namespace LAMMPS_NS {
class FixWall : public Fix {
public:
int nwall;
int wallwhich[6];
double coord0[6];
int xflag; // 1 if any wall position is a variable
int xstyle[6];
int xindex[6];
char *xstr[6];
FixWall(class LAMMPS *, int, char **);
virtual ~FixWall();
int setmask();
@ -36,20 +44,15 @@ class FixWall : public Fix {
virtual void precompute(int) = 0;
virtual void wall_particle(int, int, double) = 0;
int nwall;
int wallwhich[6];
double coord0[6];
int varflag;
int wallstyle[6];
int varindex[6];
char *varstr[6];
protected:
double epsilon[6],sigma[6],cutoff[6];
double ewall[7],ewall_all[7];
double xscale,yscale,zscale;
int eflag;
int estyle[6],sstyle[6],wstyle[6];
int eindex[6],sindex[6];
char *estr[6],*sstr[6];
int vflag; // 1 if any wall position,epsilon,sigma is a var
int eflag; // per-wall flag for energy summation
int nlevels_respa;
double dt;
int fldflag;

View File

@ -36,9 +36,10 @@ Region::Region(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
style = new char[n];
strcpy(style,arg[1]);
varshape = 0;
xstr = ystr = zstr = tstr = NULL;
dx = dy = dz = 0.0;
laststep = -1;
lastshape = lastdynamic = -1;
}
/* ---------------------------------------------------------------------- */
@ -100,23 +101,35 @@ int Region::dynamic_check()
XOR computes 0 if 2 args are the same, 1 if different
note that inside() returns 1 for points on surface of region
thus point on surface of exterior region will not match
if region has variable shape, invoke shape_update() once per timestep
if region is dynamic, apply inverse transform to x,y,z
unmove first, then unrotate, so don't have to change rotation point
caller is responsible for wrapping this call with
modify->clearstep_compute() and modify->addstep_compute() if needed
------------------------------------------------------------------------- */
int Region::match(double x, double y, double z)
{
if (dynamic) inverse_transform(x,y,z);
if (varshape && update->ntimestep != lastshape) {
shape_update();
lastshape = update->ntimestep;
}
if (dynamic && update->ntimestep) inverse_transform(x,y,z);
return !(inside(x,y,z) ^ interior);
}
/* ----------------------------------------------------------------------
generate list of contact points for interior or exterior regions
if region has variable shape, invoke shape_update() once per timestep
if region is dynamic:
before: inverse transform x,y,z (unmove, then unrotate)
after: forward transform contact point xs,yx,zs (rotate, then move),
then reset contact delx,dely,delz based on new contact point
no need to do this if no rotation since delxyz doesn't change
caller is responsible for wrapping this call with
modify->clearstep_compute() and modify->addstep_compute() if needed
------------------------------------------------------------------------- */
int Region::surface(double x, double y, double z, double cutoff)
@ -125,6 +138,11 @@ int Region::surface(double x, double y, double z, double cutoff)
double xs,ys,zs;
double xnear[3],xorig[3];
if (varshape && update->ntimestep != lastshape) {
shape_update();
lastshape = update->ntimestep;
}
if (dynamic) {
xorig[0] = x;
xorig[1] = y;
@ -179,13 +197,13 @@ void Region::add_contact(int n, double *x, double xp, double yp, double zp)
void Region::forward_transform(double &x, double &y, double &z)
{
if (rotateflag) {
if (update->ntimestep != laststep)
if (update->ntimestep != lastdynamic)
theta = input->variable->compute_equal(tvar);
rotate(x,y,z,theta);
}
if (moveflag) {
if (update->ntimestep != laststep) {
if (update->ntimestep != lastdynamic) {
if (xstr) dx = input->variable->compute_equal(xvar);
if (ystr) dy = input->variable->compute_equal(yvar);
if (zstr) dz = input->variable->compute_equal(zvar);
@ -195,7 +213,7 @@ void Region::forward_transform(double &x, double &y, double &z)
z += dz;
}
laststep = update->ntimestep;
lastdynamic = update->ntimestep;
}
/* ----------------------------------------------------------------------
@ -206,7 +224,7 @@ void Region::forward_transform(double &x, double &y, double &z)
void Region::inverse_transform(double &x, double &y, double &z)
{
if (moveflag) {
if (update->ntimestep != laststep) {
if (update->ntimestep != lastdynamic) {
if (xstr) dx = input->variable->compute_equal(xvar);
if (ystr) dy = input->variable->compute_equal(yvar);
if (zstr) dz = input->variable->compute_equal(zvar);
@ -217,12 +235,12 @@ void Region::inverse_transform(double &x, double &y, double &z)
}
if (rotateflag) {
if (update->ntimestep != laststep)
if (update->ntimestep != lastdynamic)
theta = input->variable->compute_equal(tvar);
rotate(x,y,z,-theta);
}
laststep = update->ntimestep;
lastdynamic = update->ntimestep;
}
/* ----------------------------------------------------------------------

View File

@ -28,6 +28,7 @@ class Region : protected Pointers {
double extent_ylo,extent_yhi;
double extent_zlo,extent_zhi;
int bboxflag; // 1 if bounding box is computable
int varshape; // 1 if region shape changes over time
// contact = particle near region surface
@ -40,27 +41,34 @@ class Region : protected Pointers {
Region(class LAMMPS *, int, char **);
virtual ~Region();
void init();
virtual void init();
virtual int dynamic_check();
// called by other classes to check point versus region
int match(double, double, double);
int surface(double, double, double, double);
// implemented by each region, not called by other classes
virtual int inside(double, double, double) = 0;
virtual int surface_interior(double *, double) = 0;
virtual int surface_exterior(double *, double) = 0;
virtual void shape_update() {}
protected:
void add_contact(int, double *, double, double, double);
void options(int, char **);
private:
int dynamic; // 1 if region changes over time
int moveflag,rotateflag;
int dynamic; // 1 if region position/orientation changes over time
int moveflag,rotateflag; // 1 if position/orientation changes
double point[3],axis[3],runit[3];
char *xstr,*ystr,*zstr,*tstr;
int xvar,yvar,zvar,tvar;
double dx,dy,dz,theta;
bigint laststep;
bigint lastshape,lastdynamic;
void forward_transform(double &, double &, double &);
void inverse_transform(double &, double &, double &);

View File

@ -15,12 +15,16 @@
#include "stdlib.h"
#include "string.h"
#include "region_cylinder.h"
#include "update.h"
#include "domain.h"
#include "input.h"
#include "variable.h"
#include "error.h"
using namespace LAMMPS_NS;
#define BIG 1.0e20
enum{CONSTANT,VARIABLE};
/* ---------------------------------------------------------------------- */
@ -36,15 +40,29 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) :
if (axis == 'x') {
c1 = yscale*atof(arg[3]);
c2 = zscale*atof(arg[4]);
radius = yscale*atof(arg[5]);
} else if (axis == 'y') {
c1 = xscale*atof(arg[3]);
c2 = zscale*atof(arg[4]);
radius = xscale*atof(arg[5]);
} else if (axis == 'z') {
c1 = xscale*atof(arg[3]);
c2 = yscale*atof(arg[4]);
radius = xscale*atof(arg[5]);
}
rstr = NULL;
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
rstr = new char[n];
strcpy(rstr,&arg[5][2]);
radius = 0.0;
rstyle = VARIABLE;
varshape = 1;
variable_check();
shape_update();
} else {
radius = atof(arg[5]);
if (axis == 'x') radius *= xscale;
else radius *= xscale;
rstyle = CONSTANT;
}
if (strcmp(arg[6],"INF") == 0 || strcmp(arg[6],"EDGE") == 0) {
@ -100,6 +118,7 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) :
if (radius <= 0.0) error->all(FLERR,"Illegal region cylinder command");
// extent of cylinder
// for variable radius, uses initial radius
if (interior) {
bboxflag = 1;
@ -139,9 +158,18 @@ RegCylinder::RegCylinder(LAMMPS *lmp, int narg, char **arg) :
RegCylinder::~RegCylinder()
{
delete [] rstr;
delete [] contact;
}
/* ---------------------------------------------------------------------- */
void RegCylinder::init()
{
Region::init();
if (rstr) variable_check();
}
/* ----------------------------------------------------------------------
inside = 1 if x,y,z is inside or on surface
inside = 0 if x,y,z is outside and not on surface
@ -400,3 +428,29 @@ int RegCylinder::surface_exterior(double *x, double cutoff)
return 0;
}
}
/* ----------------------------------------------------------------------
change region shape via variable evaluation
------------------------------------------------------------------------- */
void RegCylinder::shape_update()
{
radius = input->variable->compute_equal(rvar);
if (radius < 0.0)
error->one(FLERR,"Variable evaluation in region gave bad value");
if (axis == 'x') radius *= xscale;
else radius *= xscale;
}
/* ----------------------------------------------------------------------
error check on existence of variable
------------------------------------------------------------------------- */
void RegCylinder::variable_check()
{
rvar = input->variable->find(rstr);
if (rvar < 0)
error->all(FLERR,"Variable name for region cylinder does not exist");
if (!input->variable->equalstyle(rvar))
error->all(FLERR,"Variable for region cylinder is invalid style");
}

View File

@ -30,15 +30,22 @@ class RegCylinder : public Region {
public:
RegCylinder(class LAMMPS *, int, char **);
~RegCylinder();
void init();
int inside(double, double, double);
int surface_interior(double *, double);
int surface_exterior(double *, double);
void shape_update();
private:
char axis;
double c1,c2;
double radius;
double lo,hi;
int rstyle,rvar;
char *rstr;
void variable_check();
};
}

View File

@ -37,14 +37,19 @@ RegIntersect::RegIntersect(LAMMPS *lmp, int narg, char **arg) :
int iregion;
for (int iarg = 0; iarg < n; iarg++) {
iregion = domain->find_region(arg[iarg+3]);
if (iregion == -1) error->all(FLERR,"Region intersect region ID does not exist");
if (iregion == -1)
error->all(FLERR,"Region intersect region ID does not exist");
list[nregion++] = iregion;
}
// extent of intersection of regions
// has bounding box if interior and any sub-region has bounding box
// this region is variable shape if any of sub-regions are
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
if (regions[list[ilist]]->varshape) varshape = 1;
// extent of intersection of regions
// has bounding box if interior and any sub-region has bounding box
bboxflag = 0;
for (int ilist = 0; ilist < nregion; ilist++)
@ -90,6 +95,16 @@ RegIntersect::~RegIntersect()
delete [] contact;
}
/* ---------------------------------------------------------------------- */
void RegIntersect::init()
{
Region::init();
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
regions[list[ilist]]->init();
}
/* ----------------------------------------------------------------------
return 1 if region is dynamic, 0 if static
dynamic if any sub-region is dynamic, else static
@ -205,3 +220,14 @@ int RegIntersect::surface_exterior(double *x, double cutoff)
return n;
}
/* ----------------------------------------------------------------------
change region shape of all sub-regions
------------------------------------------------------------------------- */
void RegIntersect::shape_update()
{
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
regions[list[ilist]]->shape_update();
}

View File

@ -28,10 +28,12 @@ class RegIntersect : public Region {
public:
RegIntersect(class LAMMPS *, int, char **);
~RegIntersect();
void init();
int dynamic_check();
int inside(double, double, double);
int surface_interior(double *, double);
int surface_exterior(double *, double);
void shape_update();
private:
int nregion;

View File

@ -15,10 +15,15 @@
#include "stdlib.h"
#include "string.h"
#include "region_sphere.h"
#include "update.h"
#include "input.h"
#include "variable.h"
#include "error.h"
using namespace LAMMPS_NS;
enum{CONSTANT,VARIABLE};
/* ---------------------------------------------------------------------- */
RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) :
@ -29,13 +34,28 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) :
xc = xscale*atof(arg[2]);
yc = yscale*atof(arg[3]);
zc = zscale*atof(arg[4]);
radius = xscale*atof(arg[5]);
rstr = NULL;
if (strstr(arg[5],"v_") == arg[5]) {
int n = strlen(&arg[5][2]) + 1;
rstr = new char[n];
strcpy(rstr,&arg[5][2]);
radius = 0.0;
rstyle = VARIABLE;
varshape = 1;
variable_check();
shape_update();
} else {
radius = xscale*atof(arg[5]);
rstyle = CONSTANT;
}
// error check
if (radius < 0.0) error->all(FLERR,"Illegal region sphere command");
// extent of sphere
// for variable radius, uses initial radius
if (interior) {
bboxflag = 1;
@ -55,9 +75,18 @@ RegSphere::RegSphere(LAMMPS *lmp, int narg, char **arg) :
RegSphere::~RegSphere()
{
delete [] rstr;
delete [] contact;
}
/* ---------------------------------------------------------------------- */
void RegSphere::init()
{
Region::init();
if (rstr) variable_check();
}
/* ----------------------------------------------------------------------
inside = 1 if x,y,z is inside or on surface
inside = 0 if x,y,z is outside and not on surface
@ -124,3 +153,27 @@ int RegSphere::surface_exterior(double *x, double cutoff)
}
return 0;
}
/* ----------------------------------------------------------------------
change region shape via variable evaluation
------------------------------------------------------------------------- */
void RegSphere::shape_update()
{
radius = xscale * input->variable->compute_equal(rvar);
if (radius < 0.0)
error->one(FLERR,"Variable evaluation in region gave bad value");
}
/* ----------------------------------------------------------------------
error check on existence of variable
------------------------------------------------------------------------- */
void RegSphere::variable_check()
{
rvar = input->variable->find(rstr);
if (rvar < 0)
error->all(FLERR,"Variable name for region sphere does not exist");
if (!input->variable->equalstyle(rvar))
error->all(FLERR,"Variable for region sphere is invalid style");
}

View File

@ -28,13 +28,19 @@ class RegSphere : public Region {
public:
RegSphere(class LAMMPS *, int, char **);
~RegSphere();
void init();
int inside(double, double, double);
int surface_interior(double *, double);
int surface_exterior(double *, double);
void shape_update();
private:
double xc,yc,zc;
double radius;
int rstyle,rvar;
char *rstr;
void variable_check();
};
}

View File

@ -38,14 +38,19 @@ RegUnion::RegUnion(LAMMPS *lmp, int narg, char **arg) : Region(lmp, narg, arg)
int iregion;
for (int iarg = 0; iarg < n; iarg++) {
iregion = domain->find_region(arg[iarg+3]);
if (iregion == -1) error->all(FLERR,"Region union region ID does not exist");
if (iregion == -1)
error->all(FLERR,"Region union region ID does not exist");
list[nregion++] = iregion;
}
// extent of union of regions
// has bounding box if interior and all sub-regions have bounding box
// this region is variable shape if any of sub-regions are
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
if (regions[list[ilist]]->varshape) varshape = 1;
// extent of union of regions
// has bounding box if interior and all sub-regions have bounding box
bboxflag = 1;
for (int ilist = 0; ilist < nregion; ilist++)
@ -82,6 +87,16 @@ RegUnion::~RegUnion()
delete [] contact;
}
/* ---------------------------------------------------------------------- */
void RegUnion::init()
{
Region::init();
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
regions[list[ilist]]->init();
}
/* ----------------------------------------------------------------------
return 1 if region is dynamic, 0 if static
dynamic if any sub-region is dynamic, else static
@ -197,3 +212,14 @@ int RegUnion::surface_exterior(double *x, double cutoff)
return n;
}
/* ----------------------------------------------------------------------
change region shape of all sub-regions
------------------------------------------------------------------------- */
void RegUnion::shape_update()
{
Region **regions = domain->regions;
for (int ilist = 0; ilist < nregion; ilist++)
regions[list[ilist]]->shape_update();
}

View File

@ -28,10 +28,12 @@ class RegUnion : public Region {
public:
RegUnion(class LAMMPS *, int, char **);
~RegUnion();
void init();
int dynamic_check();
int inside(double, double, double);
int surface_interior(double *, double);
int surface_exterior(double *, double);
void shape_update();
private:
int nregion;

View File

@ -2159,17 +2159,17 @@ double Variable::eval_tree(Tree *tree, int i)
}
if (tree->type == RMASK) {
if (domain->regions[tree->ivalue1]->inside(atom->x[i][0],
atom->x[i][1],
atom->x[i][2])) return 1.0;
if (domain->regions[tree->ivalue1]->match(atom->x[i][0],
atom->x[i][1],
atom->x[i][2])) return 1.0;
else return 0.0;
}
if (tree->type == GRMASK) {
if ((atom->mask[i] & tree->ivalue1) &&
(domain->regions[tree->ivalue2]->inside(atom->x[i][0],
atom->x[i][1],
atom->x[i][2]))) return 1.0;
(domain->regions[tree->ivalue2]->match(atom->x[i][0],
atom->x[i][1],
atom->x[i][2]))) return 1.0;
else return 0.0;
}

View File

@ -1 +1 @@
#define LAMMPS_VERSION "19 Jan 2013"
#define LAMMPS_VERSION "21 Jan 2013"

6
tools/kate/README.txt Normal file
View File

@ -0,0 +1,6 @@
The lammps.xml file in this dir is for use with the Kate editor
in the KDE suite, to do syntax highlighting for LAMMPS input
scripts.
The author is Alessandro Luigi Sellerio <alessandro.sellerio@ieni.cnr.it>.
Please contact him with questions.

878
tools/kate/lammps.xml Normal file
View File

@ -0,0 +1,878 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Lammps Syntax Highlighting definitions for KDE-Kate editor
First version October 2011 by Alessandro L. Sellerio
Version 1.0 dated 09/01/2012 by Alessandro L. Sellerio
Contact the original author at alessandro.sellerio@ieni.cnr.it
Inspired by original KDE file: bash.xml
Put this file in ~.kde/share/apps/katepart/syntax
-->
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">
]>
<language version="1.0" kateversion="3.9.4"
author="Alessandro L. Sellerio" license="GPL v.3 or greater"
name="Lammps" section="Scientific" extensions="*.lgg;*.lmp;*.lammps;*.liggghts" casesensitive="FALSE"
priority="9">
<highlighting>
<list name="kw_commands">
<item>angle_coeff</item>
<item>angle_style</item>
<item>atom_modify</item>
<item>atom_style</item>
<item>balance</item>
<item>bond_coeff</item>
<item>bond_style</item>
<item>boundary</item>
<item>box</item>
<item>change_box</item>
<item>clear</item>
<item>communicate</item>
<item>compute</item>
<item>compute_modify</item>
<item>create_atoms</item>
<item>create_box</item>
<item>delete_atoms</item>
<item>delete_bonds</item>
<item>dielectric</item>
<item>dihedral_coeff</item>
<item>dihedral_style</item>
<item>dimension</item>
<item>displace_atoms</item>
<item>dump</item>
<item>dump_image</item>
<item>dump_modify</item>
<item>echo</item>
<item>fix</item>
<item>fix_modify</item>
<item>group</item>
<item>if</item>
<item>improper_coeff</item>
<item>improper_style</item>
<item>include</item>
<item>jump</item>
<item>kspace_modify</item>
<item>kspace_style</item>
<item>label</item>
<item>lattice</item>
<item>log</item>
<item>mass</item>
<item>minimize</item>
<item>min_modify</item>
<item>min_style</item>
<item>neb</item>
<item>neigh_modify</item>
<item>neighbor</item>
<item>newton</item>
<item>next</item>
<item>package</item>
<item>pair_coeff</item>
<item>pair_modify</item>
<item>pair_style</item>
<item>pair_write</item>
<item>partition</item>
<item>prd</item>
<item>print</item>
<item>processors</item>
<item>quit</item>
<item>read_data</item>
<item>read_dump</item>
<item>read_restart</item>
<item>region</item>
<item>replicate</item>
<item>rerun</item>
<item>reset_timestep</item>
<item>restart</item>
<item>run</item>
<item>run_style</item>
<item>set</item>
<item>shell</item>
<item>special_bonds</item>
<item>suffix</item>
<item>tad</item>
<item>temper</item>
<item>thermo</item>
<item>thermo_modify</item>
<item>thermo_style</item>
<item>timestep</item>
<item>uncompute</item>
<item>undump</item>
<item>unfix</item>
<item>units</item>
<item>variable</item>
<item>velocity</item>
<item>write_restart</item>
</list>
<list name="kw_fixes">
<item>adapt</item>
<item>addforce</item>
<item>append/atoms</item>
<item>aveforce</item>
<item>ave/atom</item>
<item>ave/correlate</item>
<item>ave/histo</item>
<item>ave/spatial</item>
<item>ave/time</item>
<item>balance</item>
<item>bond/break</item>
<item>bond/create</item>
<item>bond/swap</item>
<item>box/relax</item>
<item>deform</item>
<item>deposit</item>
<item>drag</item>
<item>dt/reset</item>
<item>efield</item>
<item>enforce2d</item>
<item>evaporate</item>
<item>external</item>
<item>freeze</item>
<item>gcmc</item>
<item>gravity</item>
<item>heat</item>
<item>indent</item>
<item>langevin</item>
<item>lineforce</item>
<item>momentum</item>
<item>move</item>
<item>msst</item>
<item>neb</item>
<item>nph</item>
<item>nphug</item>
<item>nph/asphere</item>
<item>nph/sphere</item>
<item>npt</item>
<item>npt/asphere</item>
<item>npt/sphere</item>
<item>nve</item>
<item>nve/asphere</item>
<item>nve/asphere/noforce</item>
<item>nve/limit</item>
<item>nve/line</item>
<item>nve/noforce</item>
<item>nve/sphere</item>
<item>nve/tri</item>
<item>nvt</item>
<item>nvt/asphere</item>
<item>nvt/sllod</item>
<item>nvt/sphere</item>
<item>orient/fcc</item>
<item>planeforce</item>
<item>poems</item>
<item>pour</item>
<item>press/berendsen</item>
<item>print</item>
<item>qeq/comb</item>
<item>reax/bonds</item>
<item>recenter</item>
<item>restrain</item>
<item>rigid</item>
<item>rigid/nph</item>
<item>rigid/npt</item>
<item>rigid/nve</item>
<item>rigid/nvt</item>
<item>setforce</item>
<item>shake</item>
<item>spring</item>
<item>spring/rg</item>
<item>spring/self</item>
<item>srd</item>
<item>store/force</item>
<item>store/state</item>
<item>temp/berendsen</item>
<item>temp/rescale</item>
<item>thermal/conductivity</item>
<item>tmd</item>
<item>ttm</item>
<item>viscosity</item>
<item>viscous</item>
<item>wall/colloid</item>
<item>wall/gran</item>
<item>wall/harmonic</item>
<item>wall/lj126</item>
<item>wall/lj93</item>
<item>wall/piston</item>
<item>wall/reflect</item>
<item>wall/region</item>
<item>wall/srd</item>
</list>
<list name="kw_optional_fixes">
<item>addtorque</item>
<item>atc</item>
<item>colvars</item>
<item>imd</item>
<item>langevin/eff</item>
<item>meso</item>
<item>meso/stationary</item>
<item>nph/eff</item>
<item>npt/eff</item>
<item>nve/eff</item>
<item>nvt/eff</item>
<item>nvt/sllod/eff</item>
<item>qeq/reax</item>
<item>reax/c/bonds</item>
<item>smd</item>
<item>temp/rescale/eff</item>
</list>
<list name="kw_accelerated_fixes">
<item>freeze/cuda</item>
<item>addforce/cuda</item>
<item>aveforce/cuda</item>
<item>enforce2d/cuda</item>
<item>gravity/cuda</item>
<item>gravity/omp</item>
<item>npt/cuda</item>
<item>nve/cuda</item>
<item>nve/sphere/omp</item>
<item>nvt/cuda</item>
<item>qeq/comb/omp</item>
<item>setforce/cuda</item>
<item>shake/cuda</item>
<item>temp/berendsen/cuda</item>
<item>temp/rescale/cuda</item>
<item>temp/rescale/limit/cuda</item>
<item>viscous/cuda</item>
</list>
<list name="kw_computes">
<item>angle/local</item>
<item>atom/molecule</item>
<item>bond/local</item>
<item>centro/atom</item>
<item>cluster/atom</item>
<item>cna/atom</item>
<item>com</item>
<item>com/molecule</item>
<item>contact/atom</item>
<item>coord/atom</item>
<item>damage/atom</item>
<item>dihedral/local</item>
<item>displace/atom</item>
<item>erotate/asphere</item>
<item>erotate/sphere</item>
<item>erotate/sphere/atom</item>
<item>event/displace</item>
<item>group/group</item>
<item>gyration</item>
<item>gyration/molecule</item>
<item>heat/flux</item>
<item>improper/local</item>
<item>ke</item>
<item>ke/atom</item>
<item>msd</item>
<item>msd/molecule</item>
<item>pair</item>
<item>pair/local</item>
<item>pe</item>
<item>pe/atom</item>
<item>pressure</item>
<item>property/atom</item>
<item>property/local</item>
<item>property/molecule</item>
<item>rdf</item>
<item>reduce</item>
<item>reduce/region</item>
<item>slice</item>
<item>stress/atom</item>
<item>temp</item>
<item>temp/asphere</item>
<item>temp/com</item>
<item>temp/deform</item>
<item>temp/partial</item>
<item>temp/profile</item>
<item>temp/ramp</item>
<item>temp/region</item>
<item>temp/sphere</item>
</list>
<list name="kw_optional_computes">
<item>ackland/atom</item>
<item>ke/eff</item>
<item>ke/atom/eff</item>
<item>meso_e/atom</item>
<item>meso_rho/atom</item>
<item>meso_t/atom</item>
<item>temp/eff</item>
<item>temp/deform/eff</item>
<item>temp/region/eff</item>
<item>temp/rotate</item>
</list>
<list name="kw_accelerated_computes">
<item>pe/cuda</item>
<item>pressure/cuda</item>
<item>temp/cuda</item>
<item>temp/partial/cuda</item>
</list>
<list name="kw_ps_potentials">
<item>none</item>
<item>hybrid</item>
<item>hybrid/overlay</item>
<item>adp</item>
<item>airebo</item>
<item>beck</item>
<item>bop</item>
<item>born</item>
<item>born/coul/long</item>
<item>born/coul/wolf</item>
<item>brownian</item>
<item>brownian/poly</item>
<item>buck</item>
<item>buck/coul/cut</item>
<item>buck/coul/long</item>
<item>buck/long/coul/long</item>
<item>colloid</item>
<item>comb</item>
<item>coul/cut</item>
<item>coul/debye</item>
<item>coul/dsf</item>
<item>coul/long</item>
<item>coul/wolf</item>
<item>dipole/cut</item>
<item>dpd</item>
<item>dpd/tstat</item>
<item>dsmc</item>
<item>eam</item>
<item>eam/alloy</item>
<item>eam/fs</item>
<item>eim</item>
<item>gauss</item>
<item>gayberne</item>
<item>gran/hertz/history</item>
<item>gran/hooke</item>
<item>gran/hooke/history</item>
<item>hbond/dreiding/lj</item>
<item>hbond/dreiding/morse</item>
<item>kim</item>
<item>lcbop</item>
<item>line/lj</item>
<item>lj/charmm/coul/charmm</item>
<item>lj/charmm/coul/charmm/implicit</item>
<item>lj/charmm/coul/long</item>
<item>lj/class2</item>
<item>lj/class2/coul/cut</item>
<item>lj/class2/coul/long</item>
<item>lj/cut</item>
<item>lj/cut/coul/cut</item>
<item>lj/cut/coul/debye</item>
<item>lj/cut/coul/dsf</item>
<item>lj/cut/coul/long</item>
<item>lj/long/coul/long</item>
<item>lj/cut/tip4p/long</item>
<item>lj/long/tip4p/long</item>
<item>lj/expand</item>
<item>lj/gromacs</item>
<item>lj/gromacs/coul/gromacs</item>
<item>lj/smooth</item>
<item>lj/smooth/linear</item>
<item>lj96/cut</item>
<item>lubricate</item>
<item>lubricate/poly</item>
<item>lubricateU</item>
<item>lubricateU/poly</item>
<item>meam</item>
<item>morse</item>
<item>peri/lps</item>
<item>peri/pmb</item>
<item>reax</item>
<item>rebo</item>
<item>resquared</item>
<item>soft</item>
<item>sw</item>
<item>table</item>
<item>tersoff</item>
<item>tersoff/zbl</item>
<item>tri/lj</item>
<item>yukawa</item>
<item>yukawa/colloid</item>
</list>
<list name="kw_optional_ps_potentials">
<item>awpmd/cut</item>
<item>coul/diel</item>
<item>dipole/sf</item>
<item>eam/cd</item>
<item>edip</item>
<item>eff/cut</item>
<item>gauss/cut</item>
<item>lj/sdk</item>
<item>lj/sdk/coul/long</item>
<item>lj/sf</item>
<item>meam/spline</item>
<item>meam/sw/spline</item>
<item>reax/c</item>
<item>sph/heatconduction</item>
<item>sph/idealgas</item>
<item>sph/lj</item>
<item>sph/rhosum</item>
<item>sph/taitwater</item>
<item>sph/taitwater/morris</item>
<item>tersoff/table</item>
</list>
<list name="kw_accelerated_ps_potentials">
<item>adp/omp</item>
<item>airebo/omp</item>
<item>beck/omp</item>
<item>born/coul/long/cuda</item>
<item>born/coul/long/gpu</item>
<item>born/coul/long/omp</item>
<item>born/coul/wolf/gpu</item>
<item>born/coul/wolf/omp</item>
<item>born/gpu</item>
<item>born/omp</item>
<item>brownian/omp</item>
<item>brownian/poly/omp</item>
<item>buck/coul/cut/cuda</item>
<item>buck/coul/cut/gpu</item>
<item>buck/coul/cut/omp</item>
<item>buck/coul/long/cuda</item>
<item>buck/coul/long/gpu</item>
<item>buck/coul/long/omp</item>
<item>buck/cuda</item>
<item>buck/long/coul/long/omp</item>
<item>buck/gpu</item>
<item>buck/omp</item>
<item>colloid/gpu</item>
<item>colloid/omp</item>
<item>comb/omp</item>
<item>coul/cut/omp</item>
<item>coul/debye/omp</item>
<item>coul/dsf/gpu</item>
<item>coul/long/gpu</item>
<item>coul/long/omp</item>
<item>coul/wolf</item>
<item>dipole/cut/gpu</item>
<item>dipole/cut/omp</item>
<item>dipole/sf/gpu</item>
<item>dipole/sf/omp</item>
<item>dpd/omp</item>
<item>dpd/tstat/omp</item>
<item>eam/alloy/cuda</item>
<item>eam/alloy/gpu</item>
<item>eam/alloy/omp</item>
<item>eam/alloy/opt</item>
<item>eam/cd/omp</item>
<item>eam/cuda</item>
<item>eam/fs/cuda</item>
<item>eam/fs/gpu</item>
<item>eam/fs/omp</item>
<item>eam/fs/opt</item>
<item>eam/gpu</item>
<item>eam/omp</item>
<item>eam/opt</item>
<item>edip/omp</item>
<item>eim/omp</item>
<item>gauss/gpu</item>
<item>gauss/omp</item>
<item>gayberne/gpu</item>
<item>gayberne/omp</item>
<item>gran/hertz/history/omp</item>
<item>gran/hooke/cuda</item>
<item>gran/hooke/history/omp</item>
<item>gran/hooke/omp</item>
<item>hbond/dreiding/lj/omp</item>
<item>hbond/dreiding/morse/omp</item>
<item>line/lj/omp</item>
<item>lj/charmm/coul/charmm/cuda</item>
<item>lj/charmm/coul/charmm/omp</item>
<item>lj/charmm/coul/charmm/implicit/cuda</item>
<item>lj/charmm/coul/charmm/implicit/omp</item>
<item>lj/charmm/coul/long/cuda</item>
<item>lj/charmm/coul/long/gpu</item>
<item>lj/charmm/coul/long/omp</item>
<item>lj/charmm/coul/long/opt</item>
<item>lj/charmm/coul/pppm/omp</item>
<item>lj/class2/coul/cut/cuda</item>
<item>lj/class2/coul/cut/omp</item>
<item>lj/class2/coul/long/cuda</item>
<item>lj/class2/coul/long/gpu</item>
<item>lj/class2/coul/pppm/omp</item>
<item>lj/class2/coul/long/omp</item>
<item>lj/class2/cuda</item>
<item>lj/class2/gpu</item>
<item>lj/class2/omp</item>
<item>lj/long/coul/long/omp</item>
<item>lj/cut/coul/cut/cuda</item>
<item>lj/cut/coul/cut/gpu</item>
<item>lj/cut/coul/cut/omp</item>
<item>lj/cut/coul/debye/cuda</item>
<item>lj/cut/coul/debye/gpu</item>
<item>lj/cut/coul/debye/omp</item>
<item>lj/cut/coul/dsf/gpu</item>
<item>lj/cut/coul/long/cuda</item>
<item>lj/cut/coul/long/gpu</item>
<item>lj/cut/coul/long/omp</item>
<item>lj/cut/coul/long/opt</item>
<item>lj/cut/coul/pppm/omp</item>
<item>lj/cut/cuda</item>
<item>lj/cut/experimental/cuda</item>
<item>lj/cut/gpu</item>
<item>lj/cut/omp</item>
<item>lj/cut/opt</item>
<item>lj/cut/tip4p/long/omp</item>
<item>lj/cut/tip4p/long/opt</item>
<item>lj/expand/cuda</item>
<item>lj/expand/gpu</item>
<item>lj/expand/omp</item>
<item>lj/gromacs/coul/gromacs/cuda</item>
<item>lj/gromacs/coul/gromacs/omp</item>
<item>lj/gromacs/cuda</item>
<item>lj/gromacs/omp</item>
<item>lj/sdk/gpu</item>
<item>lj/sdk/omp</item>
<item>lj/sdk/coul/long/gpu</item>
<item>lj/sdk/coul/long/omp</item>
<item>lj/sf/omp</item>
<item>lj/smooth/cuda</item>
<item>lj/smooth/omp</item>
<item>lj/smooth/linear/omp</item>
<item>lj96/cut/cuda</item>
<item>lj96/cut/gpu</item>
<item>lj96/cut/omp</item>
<item>lubricate/omp</item>
<item>lubricate/poly/omp</item>
<item>meam/spline/omp</item>
<item>morse/cuda</item>
<item>morse/gpu</item>
<item>morse/omp</item>
<item>morse/opt</item>
<item>peri/lps/omp</item>
<item>peri/pmb/omp</item>
<item>rebo/omp</item>
<item>resquared/gpu</item>
<item>resquared/omp</item>
<item>soft/omp</item>
<item>sw/cuda</item>
<item>sw/omp</item>
<item>table/gpu</item>
<item>table/omp</item>
<item>tersoff/cuda</item>
<item>tersoff/omp</item>
<item>tersoff/table/omp</item>
<item>tersoff/zbl/omp</item>
<item>tri/lj/omp</item>
<item>yukawa/gpu</item>
<item>yukawa/omp</item>
<item>yukawa/colloid/gpu</item>
<item>yukawa/colloid/omp</item>
</list>
<list name="kw_bs_potentials">
<item>none</item>
<item>hybrid</item>
<item>class2</item>
<item>fene</item>
<item>fene/expand</item>
<item>harmonic</item>
<item>morse</item>
<item>nonlinear</item>
<item>quartic</item>
<item>table</item>
</list>
<list name="kw_optional_bs_potentials">
<item>harmonic/shift</item>
<item>harmonic/shift/cut</item>
</list>
<list name="kw_accelerated_bs_potentials">
<item>class2/omp</item>
<item>fene/omp</item>
<item>fene/expand/omp</item>
<item>harmonic/omp</item>
<item>harmonic/shift/omp</item>
<item>harmonic/shift/cut/omp</item>
<item>morse/omp</item>
<item>nonlinear/omp</item>
<item>quartic/omp</item>
<item>table/omp</item>
</list>
<list name="kw_as_potentials">
<item>none</item>
<item>hybrid</item>
<item>charmm</item>
<item>class2</item>
<item>cosine</item>
<item>cosine/delta</item>
<item>cosine/periodic</item>
<item>cosine/squared</item>
<item>harmonic</item>
<item>table</item>
</list>
<list name="kw_optional_as_potentials">
<item>sdk</item>
<item>cosine/shift</item>
<item>cosine/shift/exp</item>
<item>dipole</item>
<item>fourier</item>
<item>fourier/simple</item>
<item>quartic</item>
</list>
<list name="kw_accelerated_as_potentials">
<item>charmm/omp</item>
<item>class2/omp</item>
<item>cosine/omp</item>
<item>cosine/delta/omp</item>
<item>cosine/periodic/omp</item>
<item>cosine/shift/omp</item>
<item>cosine/shift/exp/omp</item>
<item>cosine/squared/omp</item>
<item>dipole/ompharmonic/omp</item>
<item>table/omp</item>
</list>
<list name="kw_ds_potentials">
<item>none</item>
<item>hybrid</item>
<item>charmm</item>
<item>class2</item>
<item>harmonic</item>
<item>helix</item>
<item>multi/harmonic</item>
<item>opls</item>
</list>
<list name="kw_optional_ds_potentials">
<item>cosine/shift/exp</item>
<item>fourier</item>
<item>nharmonic</item>
<item>quadratic</item>
<item>table</item>
</list>
<list name="kw_accelerated_ds_potentials">
<item>charmm/omp</item>
<item>class2/omp</item>
<item>cosine/shift/exp/omp</item>
<item>harmonic/omp</item>
<item>helix/omp</item>
<item>multi/harmonic/omp</item>
<item>opls/omptable/omp</item>
</list>
<list name="kw_all_is_potentials">
<item>none</item>
<item>hybrid</item>
<item>class2</item>
<item>cvff</item>
<item>harmonic</item>
<item>umbrella</item>
<item>cossq</item>
<item>ring</item>
<item>class2/omp</item>
<item>cossq/omp</item>
<item>cvff/omp</item>
<item>fourier</item>
<item>harmonic/omp</item>
<item>ring/omp</item>
<item>umbrella/omp</item>
</list>
<list name="kw_all_kspace_solvers">
<item>ewald</item>
<item>ewald/disp</item>
<item>msm</item>
<item>pppm</item>
<item>pppm/cg</item>
<item>pppm/disp</item>
<item>pppm/disp/tip4p</item>
<item>pppm/tip4p</item>
<item>ewald/omp</item>
<item>pppm/cuda</item>
<item>pppm/gpu</item>
<item>pppm/omp</item>
<item>pppm/cg/omp</item>
<item>pppm/tip4p/omp</item>
</list>
<list name="kw_operators">
<item>equal</item>
<item>add</item>
<item>sub</item>
<item>mult</item>
<item>div</item>
</list>
<list name="kw_special">
<item>NULL</item>
<item>EDGE</item>
<item>&amp;</item>
</list>
<list name="kw_conditionals">
<item>if</item>
<item>then</item>
<item>elif</item>
<item>else</item>
</list>
<!-- SHORT LIST OF DEFINED KEYWORD GROUPS
kw_commands
kw_fixes
kw_optional_fixes
kw_accelerated_fixes
kw_computes
kw_optional_computes
kw_accelerated_computes
kw_ps_potentials
kw_optional_ps_potentials
kw_accelerated_ps_potentials
kw_bs_potentials
kw_optional_bs_potentials
kw_accelerated_bs_potentials
kw_as_potentials
kw_optional_as_potentials
kw_accelerated_as_potentials
kw_ds_potentials
kw_optional_ds_potentials
kw_accelerated_ds_potentials
kw_all_is_potentials
kw_all_kspace_solvers
kw_operators
kw_special
kw_conditionals
-->
<contexts>
<!-- "Start" is the starting context -->
<context attribute="Normal Text" lineEndContext="#stay" name="Start">
<IncludeRules context="FindAll" />
</context>
<!-- Following rulessets are then included -->
<!-- FindAll tries to interpret all the strings including other rules -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
<IncludeRules context="FindComments" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- FindComments consumes comments till EOL -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="Comment" String="[\s](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
</context>
<!-- FindCommands matches expected items. -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
<!-- We handle float and integer numbers -->
<Float attribute="Floating" context="#stay"/>
<Int attribute="Integer" context="#stay"/>
<!-- We handle variable assignments, using tricks on how
variables are actually defined or recalled in lammps -->
<RegExpr attribute="Variable" context="#stay" String="\b&varname;(?=\s+equal)" />
<RegExpr attribute="Variable" context="#stay" String="\bv_\S+" />
<!-- Reading keywords -->
<keyword attribute="Commands" context="#stay" String="kw_commands" />
<keyword attribute="Fixes" context="#stay" String="kw_fixes" />
<keyword attribute="Fixes" context="#stay" String="kw_accelerated_fixes" />
<keyword attribute="Fixes" context="#stay" String="kw_optional_fixes" />
<keyword attribute="Computes" context="#stay" String="kw_computes" />
<keyword attribute="Computes" context="#stay" String="kw_optional_computes" />
<keyword attribute="Computes" context="#stay" String="kw_accelerated_computes" />
<keyword attribute="Potentials" context="#stay" String="kw_ps_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_optional_ps_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_accelerated_ps_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_bs_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_optional_bs_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_accelerated_bs_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_as_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_optional_as_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_accelerated_as_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_ds_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_optional_ds_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_accelerated_ds_potentials" />
<keyword attribute="Potentials" context="#stay" String="kw_all_is_potentials" />
<keyword attribute="KSpaceSolvers" context="#stay" String="kw_all_kspace_solvers" />
<keyword attribute="Special" context="#stay" String="kw_special" />
<keyword attribute="Conditionals" context="#stay" String="kw_conditionals" />
<keyword attribute="Operators" context="#stay" String="kw_operators" />
<!-- Getting the ampersand "&" right -->
<DetectChar char="&amp;" attribute="Special" context="#stay" />
</context>
<!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
<DetectChar attribute="String" context="StringSQ" char="'" />
<DetectChar attribute="String" context="StringDQ" char="&quot;" />
<Detect2Chars attribute="String" context="StringEsc" char="$" char1="'" />
<Detect2Chars attribute="String" context="StringDQ" char="$" char1="&quot;" />
</context>
<!-- FindSubstitutions looks for anything starting with $ and ` and their escapes -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
<RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
<RegExpr attribute="Variable" context="#stay" String="\$\{&varname;\}" />
<RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;(\[[*@]\])?\}" />
<RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;(\[[*@]\]|[*@])?\}" />
<RegExpr attribute="Variable" context="VarBraceErr" String="\$\{&varname;" />
<RegExpr attribute="Variable" context="VarBraceErr" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />
</context>
<!-- FOLLOWING: contexts that can be branched to. -->
<!-- StringSQ consumes anything till ' -->
<context attribute="String" lineEndContext="#stay" name="StringSQ">
<DetectChar attribute="String" context="#pop" char="'" />
</context>
<!-- StringDQ consumes anything till ", substitutes vars and expressions -->
<context attribute="String" lineEndContext="#stay" name="StringDQ">
<DetectChar attribute="String" context="#pop" char="&quot;" />
<RegExpr attribute="String" context="#stay" String="\\[`&quot;\\$\n]" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- StringEsc eats till ', but escaping many characters -->
<context attribute="String" lineEndContext="#stay" name="StringEsc">
<DetectChar attribute="String" context="#pop" char="'" />
<RegExpr attribute="String" context="#stay" String="\\[abefnrtv\\']" />
<RegExpr attribute="String" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
</context>
<!-- VarBraceErr is called as soon as ${xxx is encoutered -->
<context attribute="Error" lineEndContext="#stay" name="VarBraceErr">
<DetectChar attribute="Variable" context="#pop" char="}" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal" defStyleNum="dsNormal"/>
<itemData name="Commands" defStyleNum="dsKeyword"/>
<itemData name="Fixes" defStyleNum="dsFunction"/>
<itemData name="Computes" defStyleNum="dsKeyword"/>
<itemData name="Potentials" defStyleNum="dsChar"/>
<itemData name="KSpaceSolvers" defStyleNum="dsKeyword"/>
<itemData name="Special" defStyleNum="dsAlert"/>
<itemData name="Conditionals" defStyleNum="dsChar"/>
<itemData name="Variable" defStyleNum="dsDataType"/>
<itemData name="Operators" defStyleNum="dsOthers"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Floating" defStyleNum="dsFloat" spellChecking="false"/>
<itemData name="Integer" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#" />
</comments>
<keywords casesensitive="0" weakDeliminator="[]$._{}-/" />
</general>
</language>