Merge remote branch 'lammps-ro/master' into lammps-icms
Resolved Conflicts: doc/Manual.html doc/Manual.txt
This commit is contained in:
BIN
doc/Eqs/pair_cs.jpg
Normal file
BIN
doc/Eqs/pair_cs.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
9
doc/Eqs/pair_cs.tex
Normal file
9
doc/Eqs/pair_cs.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentstyle[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E = \frac{C q_i q_j}{\epsilon (r + r_{min})} \qquad r \rightarrow 0
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
@ -1,7 +1,7 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS-ICMS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="5 Mar 2015 version">
|
||||
<META NAME="docnumber" CONTENT="6 Mar 2015 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
<CENTER><H3>LAMMPS-ICMS Documentation
|
||||
</H3></CENTER>
|
||||
<CENTER><H4>5 Mar 2015 version
|
||||
<CENTER><H4>6 Mar 2015 version
|
||||
</H4></CENTER>
|
||||
<H4>Version info:
|
||||
</H4>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS-ICMS Users Manual</TITLE>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="5 Mar 2015 version">
|
||||
<META NAME="docnumber" CONTENT="6 Mar 2015 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
@ -19,7 +19,7 @@
|
||||
<H1></H1>
|
||||
|
||||
LAMMPS-ICMS Documentation :c,h3
|
||||
5 Mar 2015 version :c,h4
|
||||
6 Mar 2015 version :c,h4
|
||||
|
||||
Version info: :h4
|
||||
|
||||
|
||||
@ -449,9 +449,9 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_msd_chunk.html">msd/chunk</A></TD><TD ><A HREF = "compute_msd_nongauss.html">msd/nongauss</A></TD><TD ><A HREF = "compute_pair.html">pair</A></TD><TD ><A HREF = "compute_pair_local.html">pair/local</A></TD><TD ><A HREF = "compute_pe.html">pe (c)</A></TD><TD ><A HREF = "compute_pe_atom.html">pe/atom</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_plasticity_atom.html">plasticity/atom</A></TD><TD ><A HREF = "compute_pressure.html">pressure (c)</A></TD><TD ><A HREF = "compute_property_atom.html">property/atom</A></TD><TD ><A HREF = "compute_property_local.html">property/local</A></TD><TD ><A HREF = "compute_property_chunk.html">property/chunk</A></TD><TD ><A HREF = "compute_rdf.html">rdf</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_reduce.html">reduce</A></TD><TD ><A HREF = "compute_reduce.html">reduce/region</A></TD><TD ><A HREF = "compute_slice.html">slice</A></TD><TD ><A HREF = "compute_sna.html">sna/atom</A></TD><TD ><A HREF = "compute_sna.html">snad/atom</A></TD><TD ><A HREF = "compute_sna.html">snav/atom</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_stress_atom.html">stress/atom</A></TD><TD ><A HREF = "compute_temp.html">temp (c)</A></TD><TD ><A HREF = "compute_temp_asphere.html">temp/asphere</A></TD><TD ><A HREF = "compute_temp_com.html">temp/com</A></TD><TD ><A HREF = "compute_temp_chunk.html">temp/chunk</A></TD><TD ><A HREF = "compute_temp_deform.html">temp/deform</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_temp_partial.html">temp/partial (c)</A></TD><TD ><A HREF = "compute_temp_profile.html">temp/profile</A></TD><TD ><A HREF = "compute_temp_ramp.html">temp/ramp</A></TD><TD ><A HREF = "compute_temp_region.html">temp/region</A></TD><TD ><A HREF = "compute_temp_sphere.html">temp/sphere</A></TD><TD ><A HREF = "compute_ti.html">ti</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_torque_chunk.html">torque/chunk</A></TD><TD ><A HREF = "compute_vacf.html">vacf</A></TD><TD ><A HREF = "compute_vcm_chunk.html">vcm/chunk</A></TD><TD ><A HREF = "compute_voronoi_atom.html">voronoi/atom</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_stress_atom.html">stress/atom</A></TD><TD ><A HREF = "compute_temp.html">temp (c)</A></TD><TD ><A HREF = "compute_temp_asphere.html">temp/asphere</A></TD><TD ><A HREF = "compute_temp_com.html">temp/com</A></TD><TD ><A HREF = "compute_temp_chunk.html">temp/chunk</A></TD><TD ><A HREF = "compute_temp_cs.html">temp/cs</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_temp_deform.html">temp/deform</A></TD><TD ><A HREF = "compute_temp_partial.html">temp/partial (c)</A></TD><TD ><A HREF = "compute_temp_profile.html">temp/profile</A></TD><TD ><A HREF = "compute_temp_ramp.html">temp/ramp</A></TD><TD ><A HREF = "compute_temp_region.html">temp/region</A></TD><TD ><A HREF = "compute_temp_sphere.html">temp/sphere</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_ti.html">ti</A></TD><TD ><A HREF = "compute_torque_chunk.html">torque/chunk</A></TD><TD ><A HREF = "compute_vacf.html">vacf</A></TD><TD ><A HREF = "compute_vcm_chunk.html">vcm/chunk</A></TD><TD ><A HREF = "compute_voronoi_atom.html">voronoi/atom</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>These are additional compute styles in USER packages, which can be
|
||||
@ -478,30 +478,31 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
<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 (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">airebo (o)</A></TD><TD ><A HREF = "pair_beck.html">beck (go)</A></TD><TD ><A HREF = "pair_body.html">body</A></TD><TD ><A HREF = "pair_bop.html">bop</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born (go)</A></TD><TD ><A HREF = "pair_born.html">born/coul/long (cgo)</A></TD><TD ><A HREF = "pair_born.html">born/coul/msm (o)</A></TD><TD ><A HREF = "pair_born.html">born/coul/wolf (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_brownian.html">brownian (o)</A></TD><TD ><A HREF = "pair_brownian.html">brownian/poly (o)</A></TD><TD ><A HREF = "pair_buck.html">buck (cgko)</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/cut (cgo)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/long (cgo)</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/msm (o)</A></TD><TD ><A HREF = "pair_buck_long.html">buck/long/coul/long (o)</A></TD><TD ><A HREF = "pair_colloid.html">colloid (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_comb.html">comb (o)</A></TD><TD ><A HREF = "pair_comb.html">comb3</A></TD><TD ><A HREF = "pair_coul.html">coul/cut (gko)</A></TD><TD ><A HREF = "pair_coul.html">coul/debye (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/dsf (gko)</A></TD><TD ><A HREF = "pair_coul.html">coul/long (go)</A></TD><TD ><A HREF = "pair_coul.html">coul/msm</A></TD><TD ><A HREF = "pair_coul.html">coul/streitz</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/wolf (ko)</A></TD><TD ><A HREF = "pair_dpd.html">dpd (o)</A></TD><TD ><A HREF = "pair_dpd.html">dpd/tstat (o)</A></TD><TD ><A HREF = "pair_dsmc.html">dsmc</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam (cgkot)</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy (cgot)</A></TD><TD ><A HREF = "pair_eam.html">eam/fs (cgot)</A></TD><TD ><A HREF = "pair_eim.html">eim (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_gauss.html">gauss (go)</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne (gio)</A></TD><TD ><A HREF = "pair_gran.html">gran/hertz/history (o)</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke (co)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hooke/history (o)</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj (o)</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse (o)</A></TD><TD ><A HREF = "pair_kim.html">kim</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lcbop.html">lcbop</A></TD><TD ><A HREF = "pair_line_lj.html">line/lj (o)</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm (co)</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit (co)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long (cgio)</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/msm</A></TD><TD ><A HREF = "pair_class2.html">lj/class2 (cgo)</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut (co)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_class2.html">lj/class2/coul/long (cgo)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut (cgikot)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut (cgko)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye (cgo)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/dsf (go)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long (cgikot)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/msm (go)</A></TD><TD ><A HREF = "pair_dipole.html">lj/cut/dipole/cut (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_dipole.html">lj/cut/dipole/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/cut (o)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long (ot)</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand (cgo)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_gromacs.html">lj/gromacs (cgo)</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs (co)</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long (o)</A></TD><TD ><A HREF = "pair_dipole.html">lj/long/dipole/long</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj_long.html">lj/long/tip4p/long</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth (co)</A></TD><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear (o)</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut (cgo)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lubricate.html">lubricate (o)</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/poly (o)</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU</A></TD><TD ><A HREF = "pair_lubricateU.html">lubricateU/poly</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_meam.html">meam (o)</A></TD><TD ><A HREF = "pair_mie.html">mie/cut (o)</A></TD><TD ><A HREF = "pair_morse.html">morse (cgot)</A></TD><TD ><A HREF = "pair_nb3b_harmonic.html">nb3b/harmonic (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_nm.html">nm/cut (o)</A></TD><TD ><A HREF = "pair_nm.html">nm/cut/coul/cut (o)</A></TD><TD ><A HREF = "pair_nm.html">nm/cut/coul/long (o)</A></TD><TD ><A HREF = "pair_peri.html">peri/eps</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_peri.html">peri/lps (o)</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb (o)</A></TD><TD ><A HREF = "pair_peri.html">peri/ves</A></TD><TD ><A HREF = "pair_reax.html">reax</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_airebo.html">rebo (o)</A></TD><TD ><A HREF = "pair_resquared.html">resquared (go)</A></TD><TD ><A HREF = "pair_snap.html">snap</A></TD><TD ><A HREF = "pair_soft.html">soft (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_sw.html">sw (cgio)</A></TD><TD ><A HREF = "pair_table.html">table (gko)</A></TD><TD ><A HREF = "pair_tersoff.html">tersoff (co)</A></TD><TD ><A HREF = "pair_tersoff_mod.html">tersoff/mod (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl (o)</A></TD><TD ><A HREF = "pair_coul.html">tip4p/cut (o)</A></TD><TD ><A HREF = "pair_coul.html">tip4p/long (o)</A></TD><TD ><A HREF = "pair_tri_lj.html">tri/lj (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_yukawa.html">yukawa (go)</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid (go)</A></TD><TD ><A HREF = "pair_zbl.html">zbl (o)</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born (go)</A></TD><TD ><A HREF = "pair_born.html">born/coul/long (cgo)</A></TD><TD ><A HREF = "pair_cs.html">born/coul/long/cs</A></TD><TD ><A HREF = "pair_born.html">born/coul/msm (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_born.html">born/coul/wolf (go)</A></TD><TD ><A HREF = "pair_brownian.html">brownian (o)</A></TD><TD ><A HREF = "pair_brownian.html">brownian/poly (o)</A></TD><TD ><A HREF = "pair_buck.html">buck (cgko)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_buck.html">buck/coul/cut (cgo)</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/long (cgo)</A></TD><TD ><A HREF = "pair_cs.html">buck/coul/long/cs</A></TD><TD ><A HREF = "pair_buck.html">buck/coul/msm (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_buck_long.html">buck/long/coul/long (o)</A></TD><TD ><A HREF = "pair_colloid.html">colloid (go)</A></TD><TD ><A HREF = "pair_comb.html">comb (o)</A></TD><TD ><A HREF = "pair_comb.html">comb3</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/cut (gko)</A></TD><TD ><A HREF = "pair_coul.html">coul/debye (go)</A></TD><TD ><A HREF = "pair_coul.html">coul/dsf (gko)</A></TD><TD ><A HREF = "pair_coul.html">coul/long (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">coul/msm</A></TD><TD ><A HREF = "pair_coul.html">coul/streitz</A></TD><TD ><A HREF = "pair_coul.html">coul/wolf (ko)</A></TD><TD ><A HREF = "pair_dpd.html">dpd (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_dpd.html">dpd/tstat (o)</A></TD><TD ><A HREF = "pair_dsmc.html">dsmc</A></TD><TD ><A HREF = "pair_eam.html">eam (cgkot)</A></TD><TD ><A HREF = "pair_eam.html">eam/alloy (cgot)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/fs (cgot)</A></TD><TD ><A HREF = "pair_eim.html">eim (o)</A></TD><TD ><A HREF = "pair_gauss.html">gauss (go)</A></TD><TD ><A HREF = "pair_gayberne.html">gayberne (gio)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_gran.html">gran/hertz/history (o)</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke (co)</A></TD><TD ><A HREF = "pair_gran.html">gran/hooke/history (o)</A></TD><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/lj (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_hbond_dreiding.html">hbond/dreiding/morse (o)</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 (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm (co)</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/charmm/implicit (co)</A></TD><TD ><A HREF = "pair_charmm.html">lj/charmm/coul/long (cgio)</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 (cgo)</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/cut (co)</A></TD><TD ><A HREF = "pair_class2.html">lj/class2/coul/long (cgo)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut (cgikot)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/cut (cgko)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/debye (cgo)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/dsf (go)</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/coul/long (cgikot)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/coul/msm (go)</A></TD><TD ><A HREF = "pair_dipole.html">lj/cut/dipole/cut (go)</A></TD><TD ><A HREF = "pair_dipole.html">lj/cut/dipole/long</A></TD><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/cut (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj.html">lj/cut/tip4p/long (ot)</A></TD><TD ><A HREF = "pair_lj_expand.html">lj/expand (cgo)</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs (cgo)</A></TD><TD ><A HREF = "pair_gromacs.html">lj/gromacs/coul/gromacs (co)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj_long.html">lj/long/coul/long (o)</A></TD><TD ><A HREF = "pair_dipole.html">lj/long/dipole/long</A></TD><TD ><A HREF = "pair_lj_long.html">lj/long/tip4p/long</A></TD><TD ><A HREF = "pair_lj_smooth.html">lj/smooth (co)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_lj_smooth_linear.html">lj/smooth/linear (o)</A></TD><TD ><A HREF = "pair_lj96.html">lj96/cut (cgo)</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate (o)</A></TD><TD ><A HREF = "pair_lubricate.html">lubricate/poly (o)</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 (o)</A></TD><TD ><A HREF = "pair_mie.html">mie/cut (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_morse.html">morse (cgot)</A></TD><TD ><A HREF = "pair_nb3b_harmonic.html">nb3b/harmonic (o)</A></TD><TD ><A HREF = "pair_nm.html">nm/cut (o)</A></TD><TD ><A HREF = "pair_nm.html">nm/cut/coul/cut (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_nm.html">nm/cut/coul/long (o)</A></TD><TD ><A HREF = "pair_peri.html">peri/eps</A></TD><TD ><A HREF = "pair_peri.html">peri/lps (o)</A></TD><TD ><A HREF = "pair_peri.html">peri/pmb (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_peri.html">peri/ves</A></TD><TD ><A HREF = "pair_reax.html">reax</A></TD><TD ><A HREF = "pair_airebo.html">rebo (o)</A></TD><TD ><A HREF = "pair_resquared.html">resquared (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_snap.html">snap</A></TD><TD ><A HREF = "pair_soft.html">soft (go)</A></TD><TD ><A HREF = "pair_sw.html">sw (cgio)</A></TD><TD ><A HREF = "pair_table.html">table (gko)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_tersoff.html">tersoff (co)</A></TD><TD ><A HREF = "pair_tersoff_mod.html">tersoff/mod (o)</A></TD><TD ><A HREF = "pair_tersoff_zbl.html">tersoff/zbl (o)</A></TD><TD ><A HREF = "pair_coul.html">tip4p/cut (o)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_coul.html">tip4p/long (o)</A></TD><TD ><A HREF = "pair_tri_lj.html">tri/lj (o)</A></TD><TD ><A HREF = "pair_yukawa.html">yukawa (go)</A></TD><TD ><A HREF = "pair_yukawa_colloid.html">yukawa/colloid (go)</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_zbl.html">zbl (o)</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>These are additional pair styles in USER packages, which can be used
|
||||
|
||||
@ -681,6 +681,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"temp/asphere"_compute_temp_asphere.html,
|
||||
"temp/com"_compute_temp_com.html,
|
||||
"temp/chunk"_compute_temp_chunk.html,
|
||||
"temp/cs"_compute_temp_cs.html,
|
||||
"temp/deform"_compute_temp_deform.html,
|
||||
"temp/partial (c)"_compute_temp_partial.html,
|
||||
"temp/profile"_compute_temp_profile.html,
|
||||
@ -732,6 +733,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"bop"_pair_bop.html,
|
||||
"born (go)"_pair_born.html,
|
||||
"born/coul/long (cgo)"_pair_born.html,
|
||||
"born/coul/long/cs"_pair_cs.html,
|
||||
"born/coul/msm (o)"_pair_born.html,
|
||||
"born/coul/wolf (go)"_pair_born.html,
|
||||
"brownian (o)"_pair_brownian.html,
|
||||
@ -739,6 +741,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"buck (cgko)"_pair_buck.html,
|
||||
"buck/coul/cut (cgo)"_pair_buck.html,
|
||||
"buck/coul/long (cgo)"_pair_buck.html,
|
||||
"buck/coul/long/cs"_pair_cs.html,
|
||||
"buck/coul/msm (o)"_pair_buck.html,
|
||||
"buck/long/coul/long (o)"_pair_buck_long.html,
|
||||
"colloid (go)"_pair_colloid.html,
|
||||
|
||||
@ -36,7 +36,8 @@
|
||||
6.21 <A HREF = "#howto_21">Calculating viscosity</A><BR>
|
||||
6.22 <A HREF = "#howto_22">Calculating a diffusion coefficient</A><BR>
|
||||
6.23 <A HREF = "#howto_23">Using chunks to calculate system properties</A><BR>
|
||||
6.24 <A HREF = "#howto_24">Setting parameters for the kspace_style pppm/disp command</A> <BR>
|
||||
6.24 <A HREF = "#howto_24">Setting parameters for the kspace_style pppm/disp command</A><BR>
|
||||
6.25 <A HREF = "#howto_25">Adiabatic core/shell model</A> <BR>
|
||||
|
||||
<P>The example input scripts included in the LAMMPS distribution and
|
||||
highlighted in <A HREF = "Section_example.html">Section_example</A> also show how to
|
||||
@ -2418,6 +2419,191 @@ to specify this command explicitly.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "howto_25"></A><H4>6.25 Adiabatic core/shell model
|
||||
</H4>
|
||||
<P>The adiabatic core-shell model by <A HREF = "#MitchellFinchham">Mitchell and
|
||||
Finchham</A> is a simple method for adding
|
||||
polarizability to a system. In order to mimic the electron shell of
|
||||
an ion, a ghost atom is attached to it. This way the ions are split
|
||||
into a core and a shell where the latter is meant to react to the
|
||||
electrostatic environment inducing polarizability.
|
||||
</P>
|
||||
<P>Technically, shells are attached to the cores by a spring force f =
|
||||
k*r where k is a parametrized spring constant and r is the distance
|
||||
between the core and the shell. The charges of the core and the shell
|
||||
add up to the ion charge, thus q(ion) = q(core) + q(shell). In a
|
||||
similar fashion the mass of the ion is distributed on the core and the
|
||||
shell with the core having the larger mass.
|
||||
</P>
|
||||
<P>To run this model in LAMMPS, <A HREF = "atom_style.html">atom_style</A> <I>full</I> can
|
||||
be used since atom charge and bonds are needed. Each kind of
|
||||
core/shell pair requires two atom types and a bond type. The core and
|
||||
shell of a core/shell pair should be bonded to each other with a
|
||||
harmonic bond that provides the spring force. For example, a data file
|
||||
for NaCl, as found in examples/coreshell, has this format:
|
||||
</P>
|
||||
<PRE>432 atoms # core and shell atoms
|
||||
216 bonds # number of core/shell springs
|
||||
</PRE>
|
||||
<PRE>4 atom types # 2 cores and 2 shells for Na and Cl
|
||||
2 bond types
|
||||
</PRE>
|
||||
<PRE>0.0 24.09597 xlo xhi
|
||||
0.0 24.09597 ylo yhi
|
||||
0.0 24.09597 zlo zhi
|
||||
</PRE>
|
||||
<PRE>Masses # core/shell mass ratio = 0.1
|
||||
</PRE>
|
||||
<PRE>1 20.690784 # Na core
|
||||
2 31.90500 # Cl core
|
||||
3 2.298976 # Na shell
|
||||
4 3.54500 # Cl shell
|
||||
</PRE>
|
||||
<PRE>Atoms
|
||||
</PRE>
|
||||
<PRE>1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1
|
||||
2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1
|
||||
3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2
|
||||
4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2
|
||||
(...)
|
||||
</PRE>
|
||||
<PRE>Bonds # Bond topology for spring forces
|
||||
</PRE>
|
||||
<PRE>1 2 1 2 # spring for core/shell pair 1
|
||||
2 2 3 4 # spring for core/shell pair 2
|
||||
(...)
|
||||
</PRE>
|
||||
<P>Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only
|
||||
defined between the shells. Coulombic interactions are defined
|
||||
between all cores and shells. If desired, additional bonds can be
|
||||
specified between cores.
|
||||
</P>
|
||||
<P>The <A HREF = "special_bonds.html">special_bonds</A> command should be used to
|
||||
turn-off the Coulombic interaction within core/shell pairs, since that
|
||||
interaction is set by the bond spring. This is done using the
|
||||
<A HREF = "special_bonds.html">special_bonds</A> command with a 1-2 weight = 0.0,
|
||||
which is the default value.
|
||||
</P>
|
||||
<P>Since the core/shell model permits distances of r = 0.0 between the
|
||||
core and shell, a pair style with a "cs" suffix needs to be used to
|
||||
implement a valid long-range Coulombic correction. Several such pair
|
||||
styles are provided in the CORESHELL package. See <A HREF = "pair_cs.html">this doc
|
||||
page</A> for details. All of the core/shell enabled pair
|
||||
styles require the use of a long-range Coulombic solver, as specified
|
||||
by the <A HREF = "kspace_style.html">kspace_style</A> command. Either the PPPM or
|
||||
Ewald solvers can be used.
|
||||
</P>
|
||||
<P>For the NaCL example problem, these pair style and bond style settings
|
||||
are used:
|
||||
</P>
|
||||
<PRE>pair_style born/coul/long/cs 20.0 20.0
|
||||
pair_coeff * * 0.0 1.000 0.00 0.00 0.00
|
||||
pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na
|
||||
pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl
|
||||
pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl
|
||||
</PRE>
|
||||
<PRE>bond_style harmonic
|
||||
bond_coeff 1 63.014 0.0
|
||||
bond_coeff 2 25.724 0.0
|
||||
</PRE>
|
||||
<P>When running dynamics with the adiabatic core/shell model, the
|
||||
following issues should be considered. Since the relative motion of
|
||||
the core and shell particles corresponds to the polarization, typical
|
||||
thermostats can alter the polarization behaviour, meaining the shell
|
||||
will not react freely to its electrostatic environment. Therefore
|
||||
it's typically desirable to decouple the relative motion of the
|
||||
core/shell pair, which is an imaginary degree of freedom, from the
|
||||
real physical system. To do that, the <A HREF = "compute_temp_cs.html">compute
|
||||
temp/cs</A> command can be used, in conjunction with
|
||||
any of the thermostat fixes, such as <A HREF = "fix_nh.html">fix nvt</A> or <A HREF = "fix_langevin">fix
|
||||
langevin</A>. This compute uses the center-of-mass velocity
|
||||
of the core/shell pairs to calculate a temperature, and insures that
|
||||
velocity is what is rescaled for thermostatting purposes. The
|
||||
<A HREF = "compute_temp_cs.html">compute temp/cs</A> command requires input of two
|
||||
groups, one for the core atoms, another for the shell atoms. These
|
||||
can be defined using the <A HREF = "group.html">group <I>type</I></A> command. Note that
|
||||
to perform thermostatting using this definition of temperature, the
|
||||
<A HREF = "fix_modify.html">fix modify temp</A> command should be used to assign the
|
||||
comptue to the thermostat fix. Likewise the <A HREF = "thermo_modify.html">thermo_modify
|
||||
temp</A> command can be used to make this temperature
|
||||
be output for the overall system.
|
||||
</P>
|
||||
<P>For the NaCl example, this can be done as follows:
|
||||
</P>
|
||||
<PRE>group cores type 1 2
|
||||
group shells type 3 4
|
||||
compute CSequ all temp/cs cores shells
|
||||
fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system
|
||||
fix thermostatequ all nve # integrator as needed for the berendsen thermostat
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
thermo_modify temp CSequ # output of center-of-mass derived temperature
|
||||
</PRE>
|
||||
<P>When intializing the velocities of a system with core/shell pairs, it
|
||||
is also desirable to not introduce energy into the relative motion of
|
||||
the core/shell particles, but only assign a center-of-mass velocity to
|
||||
the pairs. This can be done by using the <I>bias</I> keyword of the
|
||||
<A HREF = "velocity.html">velocity create</A> command and assigning the <A HREF = "compute_temp_cs.html">compute
|
||||
temp/cs</A> command to the <I>temp</I> keyword of the
|
||||
<A HREF = "velocity.html">velocity</A> commmand, e.g.
|
||||
</P>
|
||||
<PRE>velocity all create 1427 134 bias yes temp CSequ
|
||||
velocity all scale 1427 temp CSequ
|
||||
</PRE>
|
||||
<P>It is important to note that the polarizability of the core/shell
|
||||
pairs is based on their relative motion. Therefore the choice of
|
||||
spring force and mass ratio need to ensure much faster relative motion
|
||||
of the 2 atoms within the core/shell pair than their center-of-mass
|
||||
velocity. This allow the shells to effectively react instantaneously
|
||||
to the electrostatic environment. This fast movement also limits the
|
||||
timestep size that can be used.
|
||||
</P>
|
||||
<P>Additionally, the mass mismatch of the core and shell particles means
|
||||
that only a small amount of energy is transfered to the decoupled
|
||||
imaginary degrees of freedom. However, this transfer will typically
|
||||
lead to a a small drift in total energy over time. This internal
|
||||
energy can be monitored using the <A HREF = "compute_chunk_atom.html">compute
|
||||
chunk/atom</A> and <A HREF = "compute_temp_chunk.html">compute
|
||||
temp/chunk</A> commands. The internal kinetic
|
||||
energies of each core/shell pair can then be summed using the sum()
|
||||
special functino of the <A HREF = "variable.html">variable</A> command. Or they can
|
||||
be time/averaged and output using the <A HREF = "fix_ave_time.html">fix ave/time</A>
|
||||
command. To use these commands, each core/shell pair must be defined
|
||||
as a "chunk". If each core/shell pair is defined as its own molecule,
|
||||
the molecule ID can be used to define the chunks. If cores are bonded
|
||||
to each other to form larger molecules, then another way to define the
|
||||
chunks is to use the <A HREF = "fix_property_atom.html">fix property/atom</A> to
|
||||
assign a core/shell ID to each atom via a special field in the data
|
||||
file read by the <A HREF = "read_data.html">read_data</A> command. This field can
|
||||
then be accessed by the <A HREF = "compute_property_atom.html">compute
|
||||
property/atom</A> command, to use as input to
|
||||
the <A HREF = "compute_chunk_atom.html">compute chunk/atom</A> command to define the
|
||||
core/shell pairs as chunks.
|
||||
</P>
|
||||
<P>For example,
|
||||
</P>
|
||||
<PRE>fix csinfo all property/atom i_CSID # property/atom command
|
||||
read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file
|
||||
compute prop all property/atom i_CSID
|
||||
compute cs_chunk all chunk/atom c_prop
|
||||
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs
|
||||
fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector
|
||||
</PRE>
|
||||
<P>The additional section in the date file would be formatted like this:
|
||||
</P>
|
||||
<PRE>CS-Info # header of additional section
|
||||
</PRE>
|
||||
<PRE>1 1 # column 1 = atom ID, column 2 = core/shell ID
|
||||
2 1
|
||||
3 2
|
||||
4 2
|
||||
5 3
|
||||
6 3
|
||||
7 4
|
||||
8 4
|
||||
(...)
|
||||
</PRE>
|
||||
<HR>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME = "Berendsen"></A>
|
||||
@ -2463,4 +2649,9 @@ Phys, 79, 926 (1983).
|
||||
|
||||
<P><B>(Shinoda)</B> Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
|
||||
</P>
|
||||
<A NAME = "MitchellFinchham"></A>
|
||||
|
||||
<P><B>(Mitchell and Finchham)</B> Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
</P>
|
||||
</HTML>
|
||||
|
||||
@ -33,7 +33,8 @@ This section describes how to perform common tasks using LAMMPS.
|
||||
6.21 "Calculating viscosity"_#howto_21
|
||||
6.22 "Calculating a diffusion coefficient"_#howto_22
|
||||
6.23 "Using chunks to calculate system properties"_#howto_23
|
||||
6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 :all(b)
|
||||
6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24
|
||||
6.25 "Adiabatic core/shell model"_#howto_25 :all(b)
|
||||
|
||||
The example input scripts included in the LAMMPS distribution and
|
||||
highlighted in "Section_example"_Section_example.html also show how to
|
||||
@ -2401,6 +2402,191 @@ Note that the code does not check automatically whether any mixing
|
||||
rule is fulfilled. If mixing rules do not apply, the user will have
|
||||
to specify this command explicitly.
|
||||
|
||||
:line
|
||||
|
||||
6.25 Adiabatic core/shell model :link(howto_25),h4
|
||||
|
||||
The adiabatic core-shell model by "Mitchell and
|
||||
Finchham"_#MitchellFinchham is a simple method for adding
|
||||
polarizability to a system. In order to mimic the electron shell of
|
||||
an ion, a ghost atom is attached to it. This way the ions are split
|
||||
into a core and a shell where the latter is meant to react to the
|
||||
electrostatic environment inducing polarizability.
|
||||
|
||||
Technically, shells are attached to the cores by a spring force f =
|
||||
k*r where k is a parametrized spring constant and r is the distance
|
||||
between the core and the shell. The charges of the core and the shell
|
||||
add up to the ion charge, thus q(ion) = q(core) + q(shell). In a
|
||||
similar fashion the mass of the ion is distributed on the core and the
|
||||
shell with the core having the larger mass.
|
||||
|
||||
To run this model in LAMMPS, "atom_style"_atom_style.html {full} can
|
||||
be used since atom charge and bonds are needed. Each kind of
|
||||
core/shell pair requires two atom types and a bond type. The core and
|
||||
shell of a core/shell pair should be bonded to each other with a
|
||||
harmonic bond that provides the spring force. For example, a data file
|
||||
for NaCl, as found in examples/coreshell, has this format:
|
||||
|
||||
432 atoms # core and shell atoms
|
||||
216 bonds # number of core/shell springs :pre
|
||||
|
||||
4 atom types # 2 cores and 2 shells for Na and Cl
|
||||
2 bond types :pre
|
||||
|
||||
0.0 24.09597 xlo xhi
|
||||
0.0 24.09597 ylo yhi
|
||||
0.0 24.09597 zlo zhi :pre
|
||||
|
||||
Masses # core/shell mass ratio = 0.1 :pre
|
||||
|
||||
1 20.690784 # Na core
|
||||
2 31.90500 # Cl core
|
||||
3 2.298976 # Na shell
|
||||
4 3.54500 # Cl shell :pre
|
||||
|
||||
Atoms :pre
|
||||
|
||||
1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1
|
||||
2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1
|
||||
3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2
|
||||
4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2
|
||||
(...) :pre
|
||||
|
||||
Bonds # Bond topology for spring forces :pre
|
||||
|
||||
1 2 1 2 # spring for core/shell pair 1
|
||||
2 2 3 4 # spring for core/shell pair 2
|
||||
(...) :pre
|
||||
|
||||
Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only
|
||||
defined between the shells. Coulombic interactions are defined
|
||||
between all cores and shells. If desired, additional bonds can be
|
||||
specified between cores.
|
||||
|
||||
The "special_bonds"_special_bonds.html command should be used to
|
||||
turn-off the Coulombic interaction within core/shell pairs, since that
|
||||
interaction is set by the bond spring. This is done using the
|
||||
"special_bonds"_special_bonds.html command with a 1-2 weight = 0.0,
|
||||
which is the default value.
|
||||
|
||||
Since the core/shell model permits distances of r = 0.0 between the
|
||||
core and shell, a pair style with a "cs" suffix needs to be used to
|
||||
implement a valid long-range Coulombic correction. Several such pair
|
||||
styles are provided in the CORESHELL package. See "this doc
|
||||
page"_pair_cs.html for details. All of the core/shell enabled pair
|
||||
styles require the use of a long-range Coulombic solver, as specified
|
||||
by the "kspace_style"_kspace_style.html command. Either the PPPM or
|
||||
Ewald solvers can be used.
|
||||
|
||||
For the NaCL example problem, these pair style and bond style settings
|
||||
are used:
|
||||
|
||||
pair_style born/coul/long/cs 20.0 20.0
|
||||
pair_coeff * * 0.0 1.000 0.00 0.00 0.00
|
||||
pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na
|
||||
pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl
|
||||
pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl :pre
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 63.014 0.0
|
||||
bond_coeff 2 25.724 0.0 :pre
|
||||
|
||||
When running dynamics with the adiabatic core/shell model, the
|
||||
following issues should be considered. Since the relative motion of
|
||||
the core and shell particles corresponds to the polarization, typical
|
||||
thermostats can alter the polarization behaviour, meaining the shell
|
||||
will not react freely to its electrostatic environment. Therefore
|
||||
it's typically desirable to decouple the relative motion of the
|
||||
core/shell pair, which is an imaginary degree of freedom, from the
|
||||
real physical system. To do that, the "compute
|
||||
temp/cs"_compute_temp_cs.html command can be used, in conjunction with
|
||||
any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix
|
||||
langevin"_fix_langevin. This compute uses the center-of-mass velocity
|
||||
of the core/shell pairs to calculate a temperature, and insures that
|
||||
velocity is what is rescaled for thermostatting purposes. The
|
||||
"compute temp/cs"_compute_temp_cs.html command requires input of two
|
||||
groups, one for the core atoms, another for the shell atoms. These
|
||||
can be defined using the "group {type}"_group.html command. Note that
|
||||
to perform thermostatting using this definition of temperature, the
|
||||
"fix modify temp"_fix_modify.html command should be used to assign the
|
||||
comptue to the thermostat fix. Likewise the "thermo_modify
|
||||
temp"_thermo_modify.html command can be used to make this temperature
|
||||
be output for the overall system.
|
||||
|
||||
For the NaCl example, this can be done as follows:
|
||||
|
||||
group cores type 1 2
|
||||
group shells type 3 4
|
||||
compute CSequ all temp/cs cores shells
|
||||
fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system
|
||||
fix thermostatequ all nve # integrator as needed for the berendsen thermostat
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
thermo_modify temp CSequ # output of center-of-mass derived temperature :pre
|
||||
|
||||
When intializing the velocities of a system with core/shell pairs, it
|
||||
is also desirable to not introduce energy into the relative motion of
|
||||
the core/shell particles, but only assign a center-of-mass velocity to
|
||||
the pairs. This can be done by using the {bias} keyword of the
|
||||
"velocity create"_velocity.html command and assigning the "compute
|
||||
temp/cs"_compute_temp_cs.html command to the {temp} keyword of the
|
||||
"velocity"_velocity.html commmand, e.g.
|
||||
|
||||
velocity all create 1427 134 bias yes temp CSequ
|
||||
velocity all scale 1427 temp CSequ :pre
|
||||
|
||||
It is important to note that the polarizability of the core/shell
|
||||
pairs is based on their relative motion. Therefore the choice of
|
||||
spring force and mass ratio need to ensure much faster relative motion
|
||||
of the 2 atoms within the core/shell pair than their center-of-mass
|
||||
velocity. This allow the shells to effectively react instantaneously
|
||||
to the electrostatic environment. This fast movement also limits the
|
||||
timestep size that can be used.
|
||||
|
||||
Additionally, the mass mismatch of the core and shell particles means
|
||||
that only a small amount of energy is transfered to the decoupled
|
||||
imaginary degrees of freedom. However, this transfer will typically
|
||||
lead to a a small drift in total energy over time. This internal
|
||||
energy can be monitored using the "compute
|
||||
chunk/atom"_compute_chunk_atom.html and "compute
|
||||
temp/chunk"_compute_temp_chunk.html commands. The internal kinetic
|
||||
energies of each core/shell pair can then be summed using the sum()
|
||||
special functino of the "variable"_variable.html command. Or they can
|
||||
be time/averaged and output using the "fix ave/time"_fix_ave_time.html
|
||||
command. To use these commands, each core/shell pair must be defined
|
||||
as a "chunk". If each core/shell pair is defined as its own molecule,
|
||||
the molecule ID can be used to define the chunks. If cores are bonded
|
||||
to each other to form larger molecules, then another way to define the
|
||||
chunks is to use the "fix property/atom"_fix_property_atom.html to
|
||||
assign a core/shell ID to each atom via a special field in the data
|
||||
file read by the "read_data"_read_data.html command. This field can
|
||||
then be accessed by the "compute
|
||||
property/atom"_compute_property_atom.html command, to use as input to
|
||||
the "compute chunk/atom"_compute_chunk_atom.html command to define the
|
||||
core/shell pairs as chunks.
|
||||
|
||||
For example,
|
||||
|
||||
fix csinfo all property/atom i_CSID # property/atom command
|
||||
read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file
|
||||
compute prop all property/atom i_CSID
|
||||
compute cs_chunk all chunk/atom c_prop
|
||||
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs
|
||||
fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre
|
||||
|
||||
The additional section in the date file would be formatted like this:
|
||||
|
||||
CS-Info # header of additional section :pre
|
||||
|
||||
1 1 # column 1 = atom ID, column 2 = core/shell ID
|
||||
2 1
|
||||
3 2
|
||||
4 2
|
||||
5 3
|
||||
6 3
|
||||
7 4
|
||||
8 4
|
||||
(...) :pre
|
||||
|
||||
:line
|
||||
:line
|
||||
|
||||
@ -2437,3 +2623,7 @@ Phys, 79, 926 (1983).
|
||||
|
||||
:link(Shinoda)
|
||||
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
|
||||
|
||||
:link(MitchellFinchham)
|
||||
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
|
||||
@ -44,26 +44,27 @@ packages, more details are provided.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR ALIGN="center"><TD >Package</TD><TD > Description</TD><TD > Author(s)</TD><TD > Doc page</TD><TD > Example</TD><TD > Library</TD></TR>
|
||||
<TR ALIGN="center"><TD >ASPHERE</TD><TD > aspherical particles</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_14">Section_howto</A></TD><TD > ellipse</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >ASPHERE</TD><TD > aspherical particles</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_14">Section_howto 6.14</A></TD><TD > ellipse</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >BODY</TD><TD > body-style particles</TD><TD > -</TD><TD > <A HREF = "body.html">body</A></TD><TD > body</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >CLASS2</TD><TD > class 2 force fields</TD><TD > -</TD><TD > <A HREF = "pair_class2.html">pair_style lj/class2</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >COLLOID</TD><TD > colloidal particles</TD><TD > -</TD><TD > <A HREF = "atom_style.html">atom_style colloid</A></TD><TD > colloid</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >CORESHELL</TD><TD > adiabatic core/shell model</TD><TD > Hendrik Heenen (Technical U of Munich)</TD><TD > <A HREF = "Section_howto.html#howto_25">Section_howto 6.25</A></TD><TD > coreshell</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >DIPOLE</TD><TD > point dipole particles</TD><TD > -</TD><TD > <A HREF = "pair_dipole.html">pair_style dipole/cut</A></TD><TD > dipole</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >FLD</TD><TD > Fast Lubrication Dynamics</TD><TD > Kumar & Bybee & Higdon (1)</TD><TD > <A HREF = "pair_lubricateU.html">pair_style lubricateU</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >GPU</TD><TD > GPU-enabled styles</TD><TD > Mike Brown (ORNL)</TD><TD > <A HREF = "Section_accelerate.html#acc_6">Section accelerate</A></TD><TD > gpu</TD><TD > lib/gpu</TD></TR>
|
||||
<TR ALIGN="center"><TD >GRANULAR</TD><TD > granular systems</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_6">Section_howto</A></TD><TD > pour</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >GPU</TD><TD > GPU-enabled styles</TD><TD > Mike Brown (ORNL)</TD><TD > <A HREF = "accelerate_gpu.html">Section accelerate</A></TD><TD > gpu</TD><TD > lib/gpu</TD></TR>
|
||||
<TR ALIGN="center"><TD >GRANULAR</TD><TD > granular systems</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_6">Section_howto 6.6</A></TD><TD > pour</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >KIM</TD><TD > openKIM potentials</TD><TD > Smirichinski & Elliot & Tadmor (3)</TD><TD > <A HREF = "pair_kim.html">pair_style kim</A></TD><TD > kim</TD><TD > KIM</TD></TR>
|
||||
<TR ALIGN="center"><TD >KOKKOS</TD><TD > Kokkos-enabled styles</TD><TD > Trott & Edwards (4)</TD><TD > <A HREF = "Section_accelerate.html#acc_8">Section_accelerate</A></TD><TD > kokkos</TD><TD > lib/kokkos</TD></TR>
|
||||
<TR ALIGN="center"><TD >KOKKOS</TD><TD > Kokkos-enabled styles</TD><TD > Trott & Edwards (4)</TD><TD > <A HREF = "accelerate_kokkos.html">Section_accelerate</A></TD><TD > kokkos</TD><TD > lib/kokkos</TD></TR>
|
||||
<TR ALIGN="center"><TD >KSPACE</TD><TD > long-range Coulombic solvers</TD><TD > -</TD><TD > <A HREF = "kspace_style.html">kspace_style</A></TD><TD > peptide</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >MANYBODY</TD><TD > many-body potentials</TD><TD > -</TD><TD > <A HREF = "pair_tersoff.html">pair_style tersoff</A></TD><TD > shear</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >MEAM</TD><TD > modified EAM potential</TD><TD > Greg Wagner (Sandia)</TD><TD > <A HREF = "pair_meam.html">pair_style meam</A></TD><TD > meam</TD><TD > lib/meam</TD></TR>
|
||||
<TR ALIGN="center"><TD >MC</TD><TD > Monte Carlo options</TD><TD > -</TD><TD > <A HREF = "fix_gcmc.html">fix gcmc</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >MOLECULE</TD><TD > molecular system force fields</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_3">Section_howto</A></TD><TD > peptide</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >OPT</TD><TD > optimized pair styles</TD><TD > Fischer & Richie & Natoli (2)</TD><TD > <A HREF = "Section_accelerate.html#acc_4">Section accelerate</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >MOLECULE</TD><TD > molecular system force fields</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_3">Section_howto 6.3</A></TD><TD > peptide</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >OPT</TD><TD > optimized pair styles</TD><TD > Fischer & Richie & Natoli (2)</TD><TD > <A HREF = "accelerate_opt.html">Section accelerate</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >PERI</TD><TD > Peridynamics models</TD><TD > Mike Parks (Sandia)</TD><TD > <A HREF = "pair_peri.html">pair_style peri</A></TD><TD > peri</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >POEMS</TD><TD > coupled rigid body motion</TD><TD > Rudra Mukherjee (JPL)</TD><TD > <A HREF = "fix_poems.html">fix poems</A></TD><TD > rigid</TD><TD > lib/poems</TD></TR>
|
||||
<TR ALIGN="center"><TD >REAX</TD><TD > ReaxFF potential</TD><TD > Aidan Thompson (Sandia)</TD><TD > <A HREF = "pair_reax.html">pair_style reax</A></TD><TD > reax</TD><TD > lib/reax</TD></TR>
|
||||
<TR ALIGN="center"><TD >REPLICA</TD><TD > multi-replica methods</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_5">Section_howto</A></TD><TD > tad</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >REPLICA</TD><TD > multi-replica methods</TD><TD > -</TD><TD > <A HREF = "Section_howto.html#howto_5">Section_howto 6.5</A></TD><TD > tad</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >RIGID</TD><TD > rigid bodies</TD><TD > -</TD><TD > <A HREF = "fix_rigid.html">fix rigid</A></TD><TD > rigid</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >SHOCK</TD><TD > shock loading methods</TD><TD > -</TD><TD > <A HREF = "fix_msst.html">fix msst</A></TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >SNAP</TD><TD > quantum-fit potential</TD><TD > Aidan Thompson (Sandia)</TD><TD > <A HREF = "pair_snap.html">pair snap</A></TD><TD > snap</TD><TD > -</TD></TR>
|
||||
@ -123,14 +124,14 @@ on how to build LAMMPS with both kinds of auxiliary libraries.
|
||||
<TR ALIGN="center"><TD >USER-AWPMD</TD><TD > wave-packet MD</TD><TD > Ilya Valuev (JIHT)</TD><TD > <A HREF = "pair_awpmd.html">pair_style awpmd/cut</A></TD><TD > USER/awpmd</TD><TD > -</TD><TD > lib/awpmd</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-CG-CMM</TD><TD > coarse-graining model</TD><TD > Axel Kohlmeyer (Temple U)</TD><TD > <A HREF = "pair_sdk.html">pair_style lj/sdk</A></TD><TD > USER/cg-cmm</TD><TD > <A HREF = "http://lammps.sandia.gov/pictures.html#cg">cg</A></TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-COLVARS</TD><TD > collective variables</TD><TD > Fiorin & Henin & Kohlmeyer (3)</TD><TD > <A HREF = "fix_colvars.html">fix colvars</A></TD><TD > USER/colvars</TD><TD > <A HREF = "colvars">colvars</A></TD><TD > lib/colvars</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-CUDA</TD><TD > NVIDIA GPU styles</TD><TD > Christian Trott (U Tech Ilmenau)</TD><TD > <A HREF = "Section_accelerate.html#acc_7">Section accelerate</A></TD><TD > USER/cuda</TD><TD > -</TD><TD > lib/cuda</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-CUDA</TD><TD > NVIDIA GPU styles</TD><TD > Christian Trott (U Tech Ilmenau)</TD><TD > <A HREF = "accelerate_cuda.html">Section accelerate</A></TD><TD > USER/cuda</TD><TD > -</TD><TD > lib/cuda</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-EFF</TD><TD > electron force field</TD><TD > Andres Jaramillo-Botero (Caltech)</TD><TD > <A HREF = "pair_eff.html">pair_style eff/cut</A></TD><TD > USER/eff</TD><TD > <A HREF = "http://lammps.sandia.gov/movies.html#eff">eff</A></TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-FEP</TD><TD > free energy perturbation</TD><TD > Agilio Padua (U Blaise Pascal Clermont-Ferrand)</TD><TD > <A HREF = "fix_adapt.html">fix adapt/fep</A></TD><TD > USER/fep</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-INTEL</TD><TD > Vectorized CPU and Intel(R) coprocessor styles</TD><TD > W. Michael Brown (Intel)</TD><TD > <A HREF = "Section_accelerate.html#acc_9">Section accelerate</A></TD><TD > examples/intel</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-INTEL</TD><TD > Vectorized CPU and Intel(R) coprocessor styles</TD><TD > W. Michael Brown (Intel)</TD><TD > <A HREF = "accelerate_intel.html">Section accelerate</A></TD><TD > examples/intel</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-LB</TD><TD > Lattice Boltzmann fluid</TD><TD > Colin Denniston (U Western Ontario)</TD><TD > <A HREF = "fix_lb_fluid.html">fix lb/fluid</A></TD><TD > USER/lb</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-MISC</TD><TD > single-file contributions</TD><TD > USER-MISC/README</TD><TD > USER-MISC/README</TD><TD > -</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-MOLFILE</TD><TD > <A HREF = "http://www.ks.uiuc.edu/Research/vmd">VMD</A> molfile plug-ins</TD><TD > Axel Kohlmeyer (Temple U)</TD><TD > <A HREF = "dump_molfile.html">dump molfile</A></TD><TD > -</TD><TD > -</TD><TD > VMD-MOLFILE</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-OMP</TD><TD > OpenMP threaded styles</TD><TD > Axel Kohlmeyer (Temple U)</TD><TD > <A HREF = "Section_accelerate.html#acc_5">Section accelerate</A></TD><TD > -</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-OMP</TD><TD > OpenMP threaded styles</TD><TD > Axel Kohlmeyer (Temple U)</TD><TD > <A HREF = "accelerate_omp.html">Section accelerate</A></TD><TD > -</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-PHONON</TD><TD > phonon dynamical matrix</TD><TD > Ling-Ti Kong (Shanghai Jiao Tong U)</TD><TD > <A HREF = "fix_phonon.html">fix phonon</A></TD><TD > USER/phonon</TD><TD > -</TD><TD > -</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-QMMM</TD><TD > QM/MM coupling</TD><TD > Axel Kohlmeyer (Temple U)</TD><TD > <A HREF = "fix_qmmm.html">fix qmmm</A></TD><TD > USER/qmmm</TD><TD > -</TD><TD > lib/qmmm</TD></TR>
|
||||
<TR ALIGN="center"><TD >USER-QUIP</TD><TD > QM/MM coupling</TD><TD > Albert Bartok-Partay (U Cambridge)</TD><TD > <A HREF = "fix_quip.html">fix quip</A></TD><TD > USER/quip</TD><TD > -</TD><TD > lib/quip</TD></TR>
|
||||
|
||||
@ -39,26 +39,27 @@ packages, more details are provided.
|
||||
The current list of standard packages is as follows:
|
||||
|
||||
Package, Description, Author(s), Doc page, Example, Library
|
||||
ASPHERE, aspherical particles, -, "Section_howto"_Section_howto.html#howto_14, ellipse, -
|
||||
ASPHERE, aspherical particles, -, "Section_howto 6.14"_Section_howto.html#howto_14, ellipse, -
|
||||
BODY, body-style particles, -, "body"_body.html, body, -
|
||||
CLASS2, class 2 force fields, -, "pair_style lj/class2"_pair_class2.html, -, -
|
||||
COLLOID, colloidal particles, -, "atom_style colloid"_atom_style.html, colloid, -
|
||||
CORESHELL, adiabatic core/shell model, Hendrik Heenen (Technical U of Munich), "Section_howto 6.25"_Section_howto.html#howto_25, coreshell, -
|
||||
DIPOLE, point dipole particles, -, "pair_style dipole/cut"_pair_dipole.html, dipole, -
|
||||
FLD, Fast Lubrication Dynamics, Kumar & Bybee & Higdon (1), "pair_style lubricateU"_pair_lubricateU.html, -, -
|
||||
GPU, GPU-enabled styles, Mike Brown (ORNL), "Section accelerate"_Section_accelerate.html#acc_6, gpu, lib/gpu
|
||||
GRANULAR, granular systems, -, "Section_howto"_Section_howto.html#howto_6, pour, -
|
||||
GPU, GPU-enabled styles, Mike Brown (ORNL), "Section accelerate"_accelerate_gpu.html, gpu, lib/gpu
|
||||
GRANULAR, granular systems, -, "Section_howto 6.6"_Section_howto.html#howto_6, pour, -
|
||||
KIM, openKIM potentials, Smirichinski & Elliot & Tadmor (3), "pair_style kim"_pair_kim.html, kim, KIM
|
||||
KOKKOS, Kokkos-enabled styles, Trott & Edwards (4), "Section_accelerate"_Section_accelerate.html#acc_8, kokkos, lib/kokkos
|
||||
KOKKOS, Kokkos-enabled styles, Trott & Edwards (4), "Section_accelerate"_accelerate_kokkos.html, kokkos, lib/kokkos
|
||||
KSPACE, long-range Coulombic solvers, -, "kspace_style"_kspace_style.html, peptide, -
|
||||
MANYBODY, many-body potentials, -, "pair_style tersoff"_pair_tersoff.html, shear, -
|
||||
MEAM, modified EAM potential, Greg Wagner (Sandia), "pair_style meam"_pair_meam.html, meam, lib/meam
|
||||
MC, Monte Carlo options, -, "fix gcmc"_fix_gcmc.html, -, -
|
||||
MOLECULE, molecular system force fields, -, "Section_howto"_Section_howto.html#howto_3, peptide, -
|
||||
OPT, optimized pair styles, Fischer & Richie & Natoli (2), "Section accelerate"_Section_accelerate.html#acc_4, -, -
|
||||
MOLECULE, molecular system force fields, -, "Section_howto 6.3"_Section_howto.html#howto_3, peptide, -
|
||||
OPT, optimized pair styles, Fischer & Richie & Natoli (2), "Section accelerate"_accelerate_opt.html, -, -
|
||||
PERI, Peridynamics models, Mike Parks (Sandia), "pair_style peri"_pair_peri.html, peri, -
|
||||
POEMS, coupled rigid body motion, Rudra Mukherjee (JPL), "fix poems"_fix_poems.html, rigid, lib/poems
|
||||
REAX, ReaxFF potential, Aidan Thompson (Sandia), "pair_style reax"_pair_reax.html, reax, lib/reax
|
||||
REPLICA, multi-replica methods, -, "Section_howto"_Section_howto.html#howto_5, tad, -
|
||||
REPLICA, multi-replica methods, -, "Section_howto 6.5"_Section_howto.html#howto_5, tad, -
|
||||
RIGID, rigid bodies, -, "fix rigid"_fix_rigid.html, rigid, -
|
||||
SHOCK, shock loading methods, -, "fix msst"_fix_msst.html, -, -
|
||||
SNAP, quantum-fit potential, Aidan Thompson (Sandia), "pair snap"_pair_snap.html, snap, -
|
||||
@ -115,14 +116,14 @@ USER-ATC, atom-to-continuum coupling, Jones & Templeton & Zimmerman (2), "fix at
|
||||
USER-AWPMD, wave-packet MD, Ilya Valuev (JIHT), "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, -, lib/awpmd
|
||||
USER-CG-CMM, coarse-graining model, Axel Kohlmeyer (Temple U), "pair_style lj/sdk"_pair_sdk.html, USER/cg-cmm, "cg"_cg, -
|
||||
USER-COLVARS, collective variables, Fiorin & Henin & Kohlmeyer (3), "fix colvars"_fix_colvars.html, USER/colvars, "colvars"_colvars, lib/colvars
|
||||
USER-CUDA, NVIDIA GPU styles, Christian Trott (U Tech Ilmenau), "Section accelerate"_Section_accelerate.html#acc_7, USER/cuda, -, lib/cuda
|
||||
USER-CUDA, NVIDIA GPU styles, Christian Trott (U Tech Ilmenau), "Section accelerate"_accelerate_cuda.html, USER/cuda, -, lib/cuda
|
||||
USER-EFF, electron force field, Andres Jaramillo-Botero (Caltech), "pair_style eff/cut"_pair_eff.html, USER/eff, "eff"_eff, -
|
||||
USER-FEP, free energy perturbation, Agilio Padua (U Blaise Pascal Clermont-Ferrand), "fix adapt/fep"_fix_adapt.html, USER/fep, -, -
|
||||
USER-INTEL, Vectorized CPU and Intel(R) coprocessor styles, W. Michael Brown (Intel), "Section accelerate"_Section_accelerate.html#acc_9, examples/intel, -, -
|
||||
USER-INTEL, Vectorized CPU and Intel(R) coprocessor styles, W. Michael Brown (Intel), "Section accelerate"_accelerate_intel.html, examples/intel, -, -
|
||||
USER-LB, Lattice Boltzmann fluid, Colin Denniston (U Western Ontario), "fix lb/fluid"_fix_lb_fluid.html, USER/lb, -, -
|
||||
USER-MISC, single-file contributions, USER-MISC/README, USER-MISC/README, -, -, -
|
||||
USER-MOLFILE, "VMD"_VMD molfile plug-ins, Axel Kohlmeyer (Temple U), "dump molfile"_dump_molfile.html, -, -, VMD-MOLFILE
|
||||
USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section accelerate"_Section_accelerate.html#acc_5, -, -, -
|
||||
USER-OMP, OpenMP threaded styles, Axel Kohlmeyer (Temple U), "Section accelerate"_accelerate_omp.html, -, -, -
|
||||
USER-PHONON, phonon dynamical matrix, Ling-Ti Kong (Shanghai Jiao Tong U), "fix phonon"_fix_phonon.html, USER/phonon, -, -
|
||||
USER-QMMM, QM/MM coupling, Axel Kohlmeyer (Temple U), "fix qmmm"_fix_qmmm.html, USER/qmmm, -, lib/qmmm
|
||||
USER-QUIP, QM/MM coupling, Albert Bartok-Partay (U Cambridge), "fix quip"_fix_quip.html, USER/quip, -, lib/quip
|
||||
|
||||
117
doc/compute_temp_cs.html
Normal file
117
doc/compute_temp_cs.html
Normal file
@ -0,0 +1,117 @@
|
||||
<HTML>
|
||||
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
||||
</CENTER>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>compute temp/cs command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<P>compute ID group-ID temp/cs group1 group2 pre
|
||||
</P>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>temp/cs = style name of this compute command
|
||||
<LI>group1 = group-ID of either cores or shells
|
||||
<LI>group2 = group-ID of either shells or cores
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute oxygen_c-s all temp/cs O_core O_shell
|
||||
compute core_shells all temp/cs cores shells
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the temperature of a system based
|
||||
on the center-of-mass velocity of atom pairs that are bonded to each
|
||||
other. This compute is designed to be used with the adiabatic
|
||||
core/shell model of <A HREF = "#MitchellFinchham">(Mitchell and Finchham)</A>. See
|
||||
<A HREF = "Section_howto.html#howto_25">Section_howto 25</A> of the manual for an
|
||||
overview of the model as implemented in LAMMPS. Specifically, this
|
||||
compute enables correct temperature calculation and thermostatting of
|
||||
core/shell pairs where it is desirable for the internal degrees of
|
||||
freedom of the core/shell pairs to not be influenced by a thermostat.
|
||||
A compute of this style can be used by any command that computes a
|
||||
temperature via <A HREF = "fix_modify.html">fix_modify</A> e.g. <A HREF = "fix_temp_rescale.html">fix
|
||||
temp/rescale</A>, <A HREF = "fix_nh.html">fix npt</A>, etc.
|
||||
</P>
|
||||
<P>For this compute, core and shell particles are specified by two
|
||||
respective group IDs, which can be defined using the
|
||||
<A HREF = "group.html">group</A> command. The number of atoms in the two groups
|
||||
must be the same and there should be one bond defined between a pair
|
||||
of atoms in the two groups.
|
||||
</P>
|
||||
<P>The temperature is calculated by the formula KE = dim/2 N k T, where
|
||||
KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2),
|
||||
dim = 2 or 3 = dimensionality of the simulation, N = number of atoms
|
||||
in the group, k = Boltzmann constant, and T = temperature. Note that
|
||||
the velocity of each core or shell atom used in the KE calculation is
|
||||
the velocity of the center-of-mass (COM) of the core/shell pair the
|
||||
atom is part of.
|
||||
</P>
|
||||
<P>A kinetic energy tensor, stored as a 6-element vector, is also
|
||||
calculated by this compute for use in the computation of a pressure
|
||||
tensor. The formula for the components of the tensor is the same as
|
||||
the above formula, except that v^2 is replaced by vx*vy for the xy
|
||||
component, etc. The 6 components of the vector are ordered xx, yy,
|
||||
zz, xy, xz, yz. Again, the velocity of each core or shell atom is its
|
||||
COM velocity.
|
||||
</P>
|
||||
<P>The change this fix makes to core/shell atom velocities is essentially
|
||||
computing the temperature after a "bias" has been removed from the
|
||||
velocity of the atoms. This "bias" is the velocity of the atom
|
||||
relative to the COM velocity of the core/shell pair. If this compute
|
||||
is used with a fix command that performs thermostatting then this bias
|
||||
will be subtracted from each atom, thermostatting of the remaining COM
|
||||
velocity will be performed, and the bias will be added back in. This
|
||||
means the thermostating will effectively be performed on the
|
||||
core/shell pairs, instead of on the individual core and shell atoms.
|
||||
Thermostatting fixes that work in this way include <A HREF = "fix_nh.html">fix
|
||||
nvt</A>, <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>, <A HREF = "fix_temp_berendsen.html">fix
|
||||
temp/berendsen</A>, and <A HREF = "fix_langevin.html">fix
|
||||
langevin</A>.
|
||||
</P>
|
||||
<P>The internal energy of core/shell pairs can be calculated by the
|
||||
<A HREF = "compute_temp_chunk.html">compute temp/chunk</A> command, if chunks are
|
||||
defined as core/shell pairs. See <A HREF = "Section_howto.html#howto_25">Section_howto
|
||||
25</A> for more discussion on how to do this.
|
||||
</P>
|
||||
<P><B>Output info:</B>
|
||||
</P>
|
||||
<P>This compute calculates a global scalar (the temperature) and a global
|
||||
vector of length 6 (KE tensor), which can be accessed by indices 1-6.
|
||||
These values can be used by any command that uses global scalar or
|
||||
vector values from a compute as input.
|
||||
</P>
|
||||
<P>The scalar value calculated by this compute is "intensive". The
|
||||
vector values are "extensive".
|
||||
</P>
|
||||
<P>The scalar value will be in temperature <A HREF = "units.html">units</A>. The
|
||||
vector values will be in energy <A HREF = "units.html">units</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>The number of core/shell pairs contributing to the temperature is
|
||||
assumed to be constant for the duration of the run. No fixes should
|
||||
be used which generate new molecules or atoms during a simulation.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "compute_temp.html">compute temp</A>, <A HREF = "compute_temp_chunk.html">compute
|
||||
temp/chunk</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "MitchellFinchham"></A>
|
||||
|
||||
<P><B>(Mitchell and Finchham)</B> Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
</P>
|
||||
</HTML>
|
||||
111
doc/compute_temp_cs.txt
Normal file
111
doc/compute_temp_cs.txt
Normal file
@ -0,0 +1,111 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute temp/cs command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/cs group1 group2 pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
temp/cs = style name of this compute command
|
||||
group1 = group-ID of either cores or shells
|
||||
group2 = group-ID of either shells or cores :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute oxygen_c-s all temp/cs O_core O_shell
|
||||
compute core_shells all temp/cs cores shells :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the temperature of a system based
|
||||
on the center-of-mass velocity of atom pairs that are bonded to each
|
||||
other. This compute is designed to be used with the adiabatic
|
||||
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham. See
|
||||
"Section_howto 25"_Section_howto.html#howto_25 of the manual for an
|
||||
overview of the model as implemented in LAMMPS. Specifically, this
|
||||
compute enables correct temperature calculation and thermostatting of
|
||||
core/shell pairs where it is desirable for the internal degrees of
|
||||
freedom of the core/shell pairs to not be influenced by a thermostat.
|
||||
A compute of this style can be used by any command that computes a
|
||||
temperature via "fix_modify"_fix_modify.html e.g. "fix
|
||||
temp/rescale"_fix_temp_rescale.html, "fix npt"_fix_nh.html, etc.
|
||||
|
||||
For this compute, core and shell particles are specified by two
|
||||
respective group IDs, which can be defined using the
|
||||
"group"_group.html command. The number of atoms in the two groups
|
||||
must be the same and there should be one bond defined between a pair
|
||||
of atoms in the two groups.
|
||||
|
||||
The temperature is calculated by the formula KE = dim/2 N k T, where
|
||||
KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2),
|
||||
dim = 2 or 3 = dimensionality of the simulation, N = number of atoms
|
||||
in the group, k = Boltzmann constant, and T = temperature. Note that
|
||||
the velocity of each core or shell atom used in the KE calculation is
|
||||
the velocity of the center-of-mass (COM) of the core/shell pair the
|
||||
atom is part of.
|
||||
|
||||
A kinetic energy tensor, stored as a 6-element vector, is also
|
||||
calculated by this compute for use in the computation of a pressure
|
||||
tensor. The formula for the components of the tensor is the same as
|
||||
the above formula, except that v^2 is replaced by vx*vy for the xy
|
||||
component, etc. The 6 components of the vector are ordered xx, yy,
|
||||
zz, xy, xz, yz. Again, the velocity of each core or shell atom is its
|
||||
COM velocity.
|
||||
|
||||
The change this fix makes to core/shell atom velocities is essentially
|
||||
computing the temperature after a "bias" has been removed from the
|
||||
velocity of the atoms. This "bias" is the velocity of the atom
|
||||
relative to the COM velocity of the core/shell pair. If this compute
|
||||
is used with a fix command that performs thermostatting then this bias
|
||||
will be subtracted from each atom, thermostatting of the remaining COM
|
||||
velocity will be performed, and the bias will be added back in. This
|
||||
means the thermostating will effectively be performed on the
|
||||
core/shell pairs, instead of on the individual core and shell atoms.
|
||||
Thermostatting fixes that work in this way include "fix
|
||||
nvt"_fix_nh.html, "fix temp/rescale"_fix_temp_rescale.html, "fix
|
||||
temp/berendsen"_fix_temp_berendsen.html, and "fix
|
||||
langevin"_fix_langevin.html.
|
||||
|
||||
The internal energy of core/shell pairs can be calculated by the
|
||||
"compute temp/chunk"_compute_temp_chunk.html command, if chunks are
|
||||
defined as core/shell pairs. See "Section_howto
|
||||
25"_Section_howto.html#howto_25 for more discussion on how to do this.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a global scalar (the temperature) and a global
|
||||
vector of length 6 (KE tensor), which can be accessed by indices 1-6.
|
||||
These values can be used by any command that uses global scalar or
|
||||
vector values from a compute as input.
|
||||
|
||||
The scalar value calculated by this compute is "intensive". The
|
||||
vector values are "extensive".
|
||||
|
||||
The scalar value will be in temperature "units"_units.html. The
|
||||
vector values will be in energy "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The number of core/shell pairs contributing to the temperature is
|
||||
assumed to be constant for the duration of the run. No fixes should
|
||||
be used which generate new molecules or atoms during a simulation.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute temp"_compute_temp.html, "compute
|
||||
temp/chunk"_compute_temp_chunk.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(MitchellFinchham)
|
||||
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
@ -235,11 +235,10 @@ of SHAKE parameters and monitoring the energy versus time.
|
||||
<A NAME = "Ryckaert"></A>
|
||||
|
||||
<P><B>(Ryckaert)</B> J.-P. Ryckaert, G. Ciccotti and H. J. C. Berendsen,
|
||||
Journal of Computational Physics, 23, 327–341 (1977).
|
||||
J of Comp Phys, 23, 327-341 (1977).
|
||||
</P>
|
||||
<A NAME = "Andersen"></A>
|
||||
|
||||
<P><B>(Andersen)</B> H. Andersen,
|
||||
Journal of Computational Physics, 52, 24-34 (1983).
|
||||
<P><B>(Andersen)</B> H. Andersen, J of Comp Phys, 52, 24-34 (1983).
|
||||
</P>
|
||||
</HTML>
|
||||
|
||||
@ -218,8 +218,7 @@ of SHAKE parameters and monitoring the energy versus time.
|
||||
|
||||
:link(Ryckaert)
|
||||
[(Ryckaert)] J.-P. Ryckaert, G. Ciccotti and H. J. C. Berendsen,
|
||||
Journal of Computational Physics, 23, 327–341 (1977).
|
||||
J of Comp Phys, 23, 327-341 (1977).
|
||||
|
||||
:link(Andersen)
|
||||
[(Andersen)] H. Andersen,
|
||||
Journal of Computational Physics, 52, 24-34 (1983).
|
||||
[(Andersen)] H. Andersen, J of Comp Phys, 52, 24-34 (1983).
|
||||
|
||||
91
doc/pair_cs.html
Normal file
91
doc/pair_cs.html
Normal file
@ -0,0 +1,91 @@
|
||||
<HTML>
|
||||
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
||||
</CENTER>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>pair_style born/coul/long/cs command
|
||||
</H3>
|
||||
<H3>pair_style buck/coul/long/cs command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>pair_style style args
|
||||
</PRE>
|
||||
<UL><LI>style = <I>born/coul/long/cs</I> or <I>buck/coul/long/cs</I>
|
||||
<LI>args = list of arguments for a particular style
|
||||
</UL>
|
||||
<PRE> <I>born/coul/long/cs</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>buck/coul/long/cs</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>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>pair_style born/coul/long/cs 10.0 8.0
|
||||
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51
|
||||
</PRE>
|
||||
<PRE>pair_style buck/coul/long/cs 10.0
|
||||
pair_style buck/coul/long/cs 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>These pair styles are designed to be used with the adiabatic
|
||||
core/shell model of <A HREF = "#MitchellFinchham">(Mitchell and Finchham)</A>. See
|
||||
<A HREF = "Section_howto.html#howto_25">Section_howto 25</A> of the manual for an
|
||||
overview of the model as implemented in LAMMPS.
|
||||
</P>
|
||||
<P>These pair styles are identical to the <A HREF = "pair_born.html">pair_style
|
||||
born/coul/long</A> and <A HREF = "pair_buck.html">pair_style
|
||||
buck/coul/long</A> styles, except they correctly treat the
|
||||
special case where the distance between two charged core and shell
|
||||
atoms in the same core/shell pair approach r = 0.0. This needs
|
||||
special treatment when a long-range solver for Coulombic interactions
|
||||
is also used, i.e. via the <A HREF = "kspace_style.html">kspace_style</A> command.
|
||||
</P>
|
||||
<P>More specifically, the short-range Coulomb interaction between a core
|
||||
and its shell should be turned off using the
|
||||
<A HREF = "special_bonds.html">special_bonds</A> command by setting the 1-2 weight
|
||||
to 0.0, which works because the core and shell atoms are bonded to
|
||||
each other. This induces a long-range correction approximation which
|
||||
fails at small distances (~< 10e-8). Therefore, the Coulomb term which
|
||||
is used to calculate the correction factor is extended by a minimal
|
||||
distance (r_min = 1.0-6) when the interaction between a core/shell
|
||||
pair is treated, as follows
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/pair_cs.jpg">
|
||||
</CENTER>
|
||||
<P>where C is an energy-conversion constant, Qi and Qj are the charges on
|
||||
the core and shell, epsilon is the dielectric constant and r_min is the
|
||||
minimal distance.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>These pair styles are part of the CORESHELL package. They are only
|
||||
enabled if LAMMPS was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "pair_coeff.html">pair_coeff</A>, <A HREF = "pair_born.html">pair_style born</A>,
|
||||
<A HREF = "pair_buck.html">pair_style buck</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "MitchellFinchham"></A>
|
||||
|
||||
<P><B>(Mitchell and Finchham)</B> Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
</P>
|
||||
</HTML>
|
||||
83
doc/pair_cs.txt
Normal file
83
doc/pair_cs.txt
Normal file
@ -0,0 +1,83 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
pair_style born/coul/long/cs command :h3
|
||||
pair_style buck/coul/long/cs command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style style args :pre
|
||||
|
||||
style = {born/coul/long/cs} or {buck/coul/long/cs}
|
||||
args = list of arguments for a particular style :ul
|
||||
{born/coul/long/cs} 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)
|
||||
{buck/coul/long/cs} 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
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style born/coul/long/cs 10.0 8.0
|
||||
pair_coeff 1 1 6.08 0.317 2.340 24.18 11.51 :pre
|
||||
|
||||
pair_style buck/coul/long/cs 10.0
|
||||
pair_style buck/coul/long/cs 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:]
|
||||
|
||||
These pair styles are designed to be used with the adiabatic
|
||||
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham. See
|
||||
"Section_howto 25"_Section_howto.html#howto_25 of the manual for an
|
||||
overview of the model as implemented in LAMMPS.
|
||||
|
||||
These pair styles are identical to the "pair_style
|
||||
born/coul/long"_pair_born.html and "pair_style
|
||||
buck/coul/long"_pair_buck.html styles, except they correctly treat the
|
||||
special case where the distance between two charged core and shell
|
||||
atoms in the same core/shell pair approach r = 0.0. This needs
|
||||
special treatment when a long-range solver for Coulombic interactions
|
||||
is also used, i.e. via the "kspace_style"_kspace_style.html command.
|
||||
|
||||
More specifically, the short-range Coulomb interaction between a core
|
||||
and its shell should be turned off using the
|
||||
"special_bonds"_special_bonds.html command by setting the 1-2 weight
|
||||
to 0.0, which works because the core and shell atoms are bonded to
|
||||
each other. This induces a long-range correction approximation which
|
||||
fails at small distances (~< 10e-8). Therefore, the Coulomb term which
|
||||
is used to calculate the correction factor is extended by a minimal
|
||||
distance (r_min = 1.0-6) when the interaction between a core/shell
|
||||
pair is treated, as follows
|
||||
|
||||
:c,image(Eqs/pair_cs.jpg)
|
||||
|
||||
where C is an energy-conversion constant, Qi and Qj are the charges on
|
||||
the core and shell, epsilon is the dielectric constant and r_min is the
|
||||
minimal distance.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
These pair styles are part of the CORESHELL package. They are only
|
||||
enabled if LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html, "pair_style born"_pair_born.html,
|
||||
"pair_style buck"_pair_buck.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(MitchellFinchham)
|
||||
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
|
||||
5, 1031-1038 (1993).
|
||||
@ -302,12 +302,13 @@ sub-styles of the hybrid potential.
|
||||
and J,J is the same, and if the sub-style allows for mixing, then the
|
||||
coefficients for I,J can be mixed. This means you do not have to
|
||||
specify a pair_coeff command for I,J since the I,J type pair will be
|
||||
assigned automatically to the I,I sub-style and its coefficients
|
||||
generated by the mixing rule used by that sub-style. For the
|
||||
<I>hybrid/overlay</I> style, there is an additional requirement that both
|
||||
the I,I and J,J pairs are assigned to a single sub-style. See the
|
||||
"pair_modify" command for details of mixing rules. See the See the
|
||||
doc page for the sub-style to see if allows for mixing.
|
||||
assigned automatically to the sub-style defined for both I,I and J,J
|
||||
and its coefficients generated by the mixing rule used by that
|
||||
sub-style. For the <I>hybrid/overlay</I> style, there is an additional
|
||||
requirement that both the I,I and J,J pairs are assigned to a single
|
||||
sub-style. See the "pair_modify" command for details of mixing rules.
|
||||
See the See the doc page for the sub-style to see if allows for
|
||||
mixing.
|
||||
</P>
|
||||
<P>The hybrid pair styles supports the <A HREF = "pair_modify.html">pair_modify</A>
|
||||
shift, table, and tail options for an I,J pair interaction, if the
|
||||
|
||||
@ -296,12 +296,13 @@ For atom type pairs I,J and I != J, if the sub-style assigned to I,I
|
||||
and J,J is the same, and if the sub-style allows for mixing, then the
|
||||
coefficients for I,J can be mixed. This means you do not have to
|
||||
specify a pair_coeff command for I,J since the I,J type pair will be
|
||||
assigned automatically to the I,I sub-style and its coefficients
|
||||
generated by the mixing rule used by that sub-style. For the
|
||||
{hybrid/overlay} style, there is an additional requirement that both
|
||||
the I,I and J,J pairs are assigned to a single sub-style. See the
|
||||
"pair_modify" command for details of mixing rules. See the See the
|
||||
doc page for the sub-style to see if allows for mixing.
|
||||
assigned automatically to the sub-style defined for both I,I and J,J
|
||||
and its coefficients generated by the mixing rule used by that
|
||||
sub-style. For the {hybrid/overlay} style, there is an additional
|
||||
requirement that both the I,I and J,J pairs are assigned to a single
|
||||
sub-style. See the "pair_modify" command for details of mixing rules.
|
||||
See the See the doc page for the sub-style to see if allows for
|
||||
mixing.
|
||||
|
||||
The hybrid pair styles supports the "pair_modify"_pair_modify.html
|
||||
shift, table, and tail options for an I,J pair interaction, if the
|
||||
|
||||
@ -58,10 +58,11 @@ section of the LAMMPS WWW Site.
|
||||
These are the sample problems and their output in the various
|
||||
sub-directories:
|
||||
|
||||
accelerate: use of all the various accelerator packages
|
||||
accelerate: use of all the various accelerator packages
|
||||
balance: dynamic load balancing, 2d system
|
||||
body: body particles, 2d system
|
||||
colloid: big colloid particles in a small particle solvent, 2d system
|
||||
coreshell: adiabatic core/shell model
|
||||
comb: models using the COMB potential
|
||||
crack: crack propagation in a 2d solid
|
||||
deposit: deposition of atoms and molecules onto a 3d substrate
|
||||
|
||||
1114
examples/coreshell/data.coreshell
Normal file
1114
examples/coreshell/data.coreshell
Normal file
File diff suppressed because it is too large
Load Diff
72
examples/coreshell/in.coreshell
Normal file
72
examples/coreshell/in.coreshell
Normal file
@ -0,0 +1,72 @@
|
||||
# Testsystem for core-shell model compared to Mitchel and Finchham
|
||||
# Hendrik Heenen, June 2014
|
||||
|
||||
# ------------------------ INITIALIZATION ----------------------------
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
|
||||
# ----------------------- ATOM DEFINITION ----------------------------
|
||||
|
||||
fix csinfo all property/atom i_CSID
|
||||
read_data data.coreshell fix csinfo NULL CS-Info
|
||||
|
||||
group cores type 1 2
|
||||
group shells type 3 4
|
||||
|
||||
neighbor 2.0 bin
|
||||
comm_modify vel yes
|
||||
|
||||
# ------------------------ FORCE FIELDS ------------------------------
|
||||
|
||||
kspace_style ewald 1.0e-6
|
||||
pair_style born/coul/long/cs 20.0 20.0 # A, rho, sigma=0, C, D
|
||||
pair_coeff * * 0.0 1.000 0.00 0.00 0.00
|
||||
pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na
|
||||
pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl
|
||||
pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 63.014 0.0
|
||||
bond_coeff 2 25.724 0.0
|
||||
|
||||
# ------------------------ Equilibration Run -------------------------------
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
thermo 50
|
||||
thermo_style custom step etotal pe ke temp press &
|
||||
epair evdwl ecoul elong ebond fnorm fmax vol
|
||||
|
||||
compute CSequ all temp/cs cores shells
|
||||
|
||||
# output via chunk method
|
||||
|
||||
#compute prop all property/atom i_CSID
|
||||
#compute cs_chunk all chunk/atom c_prop
|
||||
#compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0
|
||||
#fix ave_chunk all ave/time 100 1 100 c_cstherm file chunk.dump mode vector
|
||||
|
||||
thermo_modify temp CSequ
|
||||
|
||||
# velocity bias option
|
||||
|
||||
velocity all create 1427 134 dist gaussian mom yes rot no bias yes temp CSequ
|
||||
velocity all scale 1427 temp CSequ
|
||||
|
||||
fix thermoberendsen all temp/berendsen 1427 1427 0.4
|
||||
fix nve all nve
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
|
||||
# 2 fmsec timestep
|
||||
|
||||
timestep 0.002
|
||||
run 500
|
||||
|
||||
unfix thermoberendsen
|
||||
|
||||
# ------------------------ Dynamic Run -------------------------------
|
||||
|
||||
run 1000
|
||||
188
examples/coreshell/log.coreshell.6Mar15.linux.1
Normal file
188
examples/coreshell/log.coreshell.6Mar15.linux.1
Normal file
@ -0,0 +1,188 @@
|
||||
LAMMPS (5 Mar 2015)
|
||||
# Testsystem for core-shell model compared to Mitchel and Finchham
|
||||
# Hendrik Heenen, June 2014
|
||||
|
||||
# ------------------------ INITIALIZATION ----------------------------
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
|
||||
# ----------------------- ATOM DEFINITION ----------------------------
|
||||
|
||||
fix csinfo all property/atom i_CSID
|
||||
read_data data.coreshell fix csinfo NULL CS-Info
|
||||
orthogonal box = (0 0 0) to (24.096 24.096 24.096)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
432 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
reading bonds ...
|
||||
216 bonds
|
||||
1 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
|
||||
group cores type 1 2
|
||||
216 atoms in group cores
|
||||
group shells type 3 4
|
||||
216 atoms in group shells
|
||||
|
||||
neighbor 2.0 bin
|
||||
comm_modify vel yes
|
||||
|
||||
# ------------------------ FORCE FIELDS ------------------------------
|
||||
|
||||
kspace_style ewald 1.0e-6
|
||||
pair_style born/coul/long/cs 20.0 20.0 # A, rho, sigma=0, C, D
|
||||
pair_coeff * * 0.0 1.000 0.00 0.00 0.00
|
||||
pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na
|
||||
pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl
|
||||
pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 63.014 0.0
|
||||
bond_coeff 2 25.724 0.0
|
||||
|
||||
# ------------------------ Equilibration Run -------------------------------
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
thermo 50
|
||||
thermo_style custom step etotal pe ke temp press epair evdwl ecoul elong ebond fnorm fmax vol
|
||||
|
||||
compute CSequ all temp/cs cores shells
|
||||
|
||||
# output via chunk method
|
||||
|
||||
#compute prop all property/atom i_CSID
|
||||
#compute cs_chunk all chunk/atom c_prop
|
||||
#compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0
|
||||
#fix ave_chunk all ave/time 100 1 100 c_cstherm file chunk.dump mode vector
|
||||
|
||||
thermo_modify temp CSequ
|
||||
|
||||
# velocity bias option
|
||||
|
||||
velocity all create 1427 134 dist gaussian mom yes rot no bias yes temp CSequ
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 22
|
||||
velocity all scale 1427 temp CSequ
|
||||
|
||||
fix thermoberendsen all temp/berendsen 1427 1427 0.4
|
||||
fix nve all nve
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
|
||||
# 2 fmsec timestep
|
||||
|
||||
timestep 0.002
|
||||
run 500
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Memory usage per processor = 6.86279 Mbytes
|
||||
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume
|
||||
0 -628.35255 -668.0717 39.719144 1427 -20608.918 -668.0717 1.6320365 1025.8481 -1695.5518 0 3.4602128e-14 4.1910919e-15 13990.5
|
||||
50 -632.83924 -664.88103 32.041787 1151.1736 -4098.5062 -668.28414 37.966205 988.74855 -1694.9989 3.4031081 25.060198 9.2894103 13990.5
|
||||
100 -630.51517 -660.52949 30.014321 1078.3323 -3202.2416 -664.01378 39.505874 991.23277 -1694.7524 3.4842892 26.36833 10.674509 13990.5
|
||||
150 -628.58401 -661.59121 33.007195 1185.8581 106.75378 -665.3449 46.400029 982.93422 -1694.6791 3.7536882 27.270427 10.826035 13990.5
|
||||
200 -627.39592 -662.45902 35.063102 1259.7212 -1672.1319 -665.61583 41.658839 987.14579 -1694.4205 3.1568106 23.525213 6.58382 13990.5
|
||||
250 -625.74143 -660.30023 34.558805 1241.6032 -1596.9927 -664.13159 42.148927 988.19127 -1694.4718 3.8313604 27.156726 8.5397995 13990.5
|
||||
300 -625.07332 -659.68738 34.614061 1243.5884 -1525.4995 -663.38119 42.077062 989.22231 -1694.6806 3.6938081 26.233327 9.2896507 13990.5
|
||||
350 -623.86869 -663.20518 39.336492 1413.2524 -1932.3573 -667.15923 40.519069 986.96395 -1694.6422 3.9540529 30.551213 14.69189 13990.5
|
||||
400 -623.55169 -660.39199 36.840301 1323.5711 -1747.3638 -664.07907 41.004982 989.66515 -1694.7492 3.6870716 27.463501 11.288658 13990.5
|
||||
450 -623.03498 -658.41209 35.377106 1271.0025 1243.4895 -662.14754 48.097573 984.42115 -1694.6663 3.735455 24.531264 6.5614635 13990.5
|
||||
500 -622.34231 -660.50992 38.167608 1371.2576 -1301.9479 -664.26607 41.813817 988.57955 -1694.6594 3.7561473 23.595051 5.844275 13990.5
|
||||
Loop time of 8.51483 on 1 procs for 500 steps with 432 atoms
|
||||
|
||||
Pair time (%) = 7.73226 (90.8093)
|
||||
Bond time (%) = 0.00232315 (0.0272836)
|
||||
Kspce time (%) = 0.518208 (6.08594)
|
||||
Neigh time (%) = 0.17925 (2.10514)
|
||||
Comm time (%) = 0.0653358 (0.767317)
|
||||
Outpt time (%) = 0.000309229 (0.00363165)
|
||||
Other time (%) = 0.0171449 (0.201354)
|
||||
|
||||
Nlocal: 432 ave 432 max 432 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 9307 ave 9307 max 9307 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 297357 ave 297357 max 297357 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 297357
|
||||
Ave neighs/atom = 688.326
|
||||
Ave special neighs/atom = 1
|
||||
Neighbor list builds = 21
|
||||
Dangerous builds = 0
|
||||
|
||||
unfix thermoberendsen
|
||||
|
||||
# ------------------------ Dynamic Run -------------------------------
|
||||
|
||||
run 1000
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Memory usage per processor = 6.86279 Mbytes
|
||||
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume
|
||||
500 -622.34231 -660.50992 38.167608 1371.2576 -1301.9479 -664.26607 41.813817 988.57955 -1694.6594 3.7561473 23.595051 5.844275 13990.5
|
||||
550 -622.53283 -661.59223 39.059403 1403.2973 -385.2836 -664.93615 43.738024 985.8195 -1694.4937 3.3439143 21.675844 3.5834691 13990.5
|
||||
600 -622.20391 -659.47921 37.275306 1339.1996 473.13042 -663.45898 46.093667 985.15793 -1694.7106 3.9797724 25.783443 9.4059533 13990.5
|
||||
650 -622.3473 -660.85461 38.507306 1383.462 -1021.6262 -664.41457 42.581674 987.48335 -1694.4796 3.5599548 24.069859 6.9189396 13990.5
|
||||
700 -621.9195 -660.92044 39.000937 1401.1968 71.427836 -664.81486 44.86887 985.26444 -1694.9482 3.894424 28.397753 9.3904596 13990.5
|
||||
750 -622.28852 -658.93918 36.650662 1316.7579 -1249.2306 -662.31101 41.915549 990.48822 -1694.7148 3.3718339 24.259772 4.9454879 13990.5
|
||||
800 -622.31982 -657.72021 35.400389 1271.839 254.0237 -661.60518 45.506498 987.48185 -1694.5935 3.8849638 24.386892 7.4962982 13990.5
|
||||
850 -622.31623 -661.4936 39.177375 1407.5357 37.74414 -665.02673 44.380924 985.14989 -1694.5575 3.5331239 23.316952 5.5622744 13990.5
|
||||
900 -621.83183 -660.10965 38.277816 1375.2171 1738.9676 -664.10328 48.428909 981.86752 -1694.3997 3.9936342 28.519154 11.384782 13990.5
|
||||
950 -622.03652 -659.97862 37.942096 1363.1555 -49.888312 -663.91816 44.582637 986.15057 -1694.6514 3.9395363 27.011672 8.4915326 13990.5
|
||||
1000 -621.71637 -660.69133 38.97496 1400.2635 -46.518055 -665.12412 44.669238 984.85534 -1694.6487 4.432789 29.799247 9.5235093 13990.5
|
||||
1050 -621.90579 -658.42698 36.521187 1312.1062 27.913475 -662.80273 44.953547 986.65365 -1694.4099 4.3757505 28.035827 8.4898226 13990.5
|
||||
1100 -621.92929 -661.57742 39.648126 1424.4485 820.11499 -665.35048 46.491843 982.84734 -1694.6897 3.7730563 27.803982 8.4955015 13990.5
|
||||
1150 -622.36518 -659.3383 36.973112 1328.3426 -799.63876 -662.87451 43.109263 988.96432 -1694.9481 3.5362185 23.473216 4.2340288 13990.5
|
||||
1200 -621.80278 -659.38996 37.587182 1350.4045 173.56518 -663.76385 45.4017 985.49478 -1694.6603 4.3738897 29.25765 11.540749 13990.5
|
||||
1250 -621.89233 -658.13657 36.244239 1302.1562 -194.31216 -662.25387 44.600608 987.50208 -1694.3566 4.1173041 27.781148 11.737589 13990.5
|
||||
1300 -622.01575 -659.4502 37.43445 1344.9172 419.91066 -663.67863 46.041458 984.96293 -1694.683 4.2284307 27.725967 9.666138 13990.5
|
||||
1350 -621.64918 -658.52586 36.876681 1324.8781 -1542.8395 -662.92795 41.627963 989.87571 -1694.4316 4.4020823 30.153096 11.999079 13990.5
|
||||
1400 -621.65713 -657.77765 36.120515 1297.7112 -2133.9795 -662.63382 40.620287 991.32101 -1694.5751 4.8561686 30.546416 11.476013 13990.5
|
||||
1450 -621.92858 -659.45137 37.522795 1348.0912 217.78723 -663.34796 45.334127 985.96702 -1694.6491 3.8965883 27.625033 7.3805255 13990.5
|
||||
1500 -621.9432 -657.57884 35.635634 1280.2907 632.02267 -661.89128 46.527064 986.00347 -1694.4218 4.3124408 28.010625 8.740067 13990.5
|
||||
Loop time of 17.041 on 1 procs for 1000 steps with 432 atoms
|
||||
|
||||
Pair time (%) = 15.4577 (90.7085)
|
||||
Bond time (%) = 0.00465488 (0.0273157)
|
||||
Kspce time (%) = 1.03763 (6.08902)
|
||||
Neigh time (%) = 0.390329 (2.29052)
|
||||
Comm time (%) = 0.131336 (0.770706)
|
||||
Outpt time (%) = 0.000611782 (0.00359005)
|
||||
Other time (%) = 0.0188062 (0.110358)
|
||||
|
||||
Nlocal: 432 ave 432 max 432 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 9406 ave 9406 max 9406 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 297120 ave 297120 max 297120 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 297120
|
||||
Ave neighs/atom = 687.778
|
||||
Ave special neighs/atom = 1
|
||||
Neighbor list builds = 46
|
||||
Dangerous builds = 0
|
||||
188
examples/coreshell/log.coreshell.6Mar15.linux.4
Normal file
188
examples/coreshell/log.coreshell.6Mar15.linux.4
Normal file
@ -0,0 +1,188 @@
|
||||
LAMMPS (5 Mar 2015)
|
||||
# Testsystem for core-shell model compared to Mitchel and Finchham
|
||||
# Hendrik Heenen, June 2014
|
||||
|
||||
# ------------------------ INITIALIZATION ----------------------------
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
|
||||
# ----------------------- ATOM DEFINITION ----------------------------
|
||||
|
||||
fix csinfo all property/atom i_CSID
|
||||
read_data data.coreshell fix csinfo NULL CS-Info
|
||||
orthogonal box = (0 0 0) to (24.096 24.096 24.096)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
432 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
reading bonds ...
|
||||
216 bonds
|
||||
1 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
|
||||
group cores type 1 2
|
||||
216 atoms in group cores
|
||||
group shells type 3 4
|
||||
216 atoms in group shells
|
||||
|
||||
neighbor 2.0 bin
|
||||
comm_modify vel yes
|
||||
|
||||
# ------------------------ FORCE FIELDS ------------------------------
|
||||
|
||||
kspace_style ewald 1.0e-6
|
||||
pair_style born/coul/long/cs 20.0 20.0 # A, rho, sigma=0, C, D
|
||||
pair_coeff * * 0.0 1.000 0.00 0.00 0.00
|
||||
pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na
|
||||
pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl
|
||||
pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 63.014 0.0
|
||||
bond_coeff 2 25.724 0.0
|
||||
|
||||
# ------------------------ Equilibration Run -------------------------------
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
thermo 50
|
||||
thermo_style custom step etotal pe ke temp press epair evdwl ecoul elong ebond fnorm fmax vol
|
||||
|
||||
compute CSequ all temp/cs cores shells
|
||||
|
||||
# output via chunk method
|
||||
|
||||
#compute prop all property/atom i_CSID
|
||||
#compute cs_chunk all chunk/atom c_prop
|
||||
#compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0
|
||||
#fix ave_chunk all ave/time 100 1 100 c_cstherm file chunk.dump mode vector
|
||||
|
||||
thermo_modify temp CSequ
|
||||
|
||||
# velocity bias option
|
||||
|
||||
velocity all create 1427 134 dist gaussian mom yes rot no bias yes temp CSequ
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Neighbor list info ...
|
||||
1 neighbor list requests
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
master list distance cutoff = 22
|
||||
velocity all scale 1427 temp CSequ
|
||||
|
||||
fix thermoberendsen all temp/berendsen 1427 1427 0.4
|
||||
fix nve all nve
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
|
||||
# 2 fmsec timestep
|
||||
|
||||
timestep 0.002
|
||||
run 500
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Memory usage per processor = 6.15182 Mbytes
|
||||
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume
|
||||
0 -628.35255 -668.0717 39.719144 1427 -20608.918 -668.0717 1.6320365 1025.8481 -1695.5518 0 3.6635741e-14 5.3290705e-15 13990.5
|
||||
50 -632.86102 -664.881 32.019982 1150.3902 -4100.2367 -668.28423 37.966091 988.74858 -1694.9989 3.403224 25.060809 9.2893842 13990.5
|
||||
100 -630.51552 -660.52959 30.014075 1078.3235 -3202.4205 -664.01411 39.505563 991.23276 -1694.7524 3.4845198 26.369799 10.674421 13990.5
|
||||
150 -628.58443 -661.59141 33.006978 1185.8503 106.65351 -665.34508 46.399848 982.93423 -1694.6792 3.7536698 27.270648 10.826129 13990.5
|
||||
200 -627.39641 -662.45927 35.062861 1259.7125 -1672.2627 -665.61606 41.658596 987.1458 -1694.4205 3.1567877 23.525464 6.5838195 13990.5
|
||||
250 -625.74093 -660.30053 34.559597 1241.6316 -1597.1305 -664.13208 42.148526 988.19121 -1694.4718 3.831555 27.157597 8.5399516 13990.5
|
||||
300 -625.07349 -659.68703 34.613535 1243.5695 -1525.6663 -663.38085 42.076798 989.22292 -1694.6806 3.6938245 26.233967 9.2898941 13990.5
|
||||
350 -623.86899 -663.20625 39.337263 1413.2801 -1933.067 -667.16008 40.51735 986.96485 -1694.6423 3.9538285 30.550701 14.691984 13990.5
|
||||
400 -623.55154 -660.39034 36.838804 1323.5173 -1746.896 -664.07771 41.006288 989.66515 -1694.7492 3.687369 27.463762 11.289238 13990.5
|
||||
450 -623.03522 -658.41494 35.37972 1271.0964 1245.1415 -662.15059 48.1009 984.41515 -1694.6666 3.7356529 24.533936 6.5615795 13990.5
|
||||
500 -622.34349 -660.51826 38.174772 1371.515 -1306.7035 -664.27406 41.802611 988.58329 -1694.66 3.7557939 23.595131 5.801075 13990.5
|
||||
Loop time of 2.53127 on 4 procs for 500 steps with 432 atoms
|
||||
|
||||
Pair time (%) = 1.94114 (76.6863)
|
||||
Bond time (%) = 0.000725508 (0.0286618)
|
||||
Kspce time (%) = 0.353945 (13.9829)
|
||||
Neigh time (%) = 0.0488738 (1.9308)
|
||||
Comm time (%) = 0.17332 (6.84714)
|
||||
Outpt time (%) = 0.000516713 (0.0204132)
|
||||
Other time (%) = 0.012753 (0.503818)
|
||||
|
||||
Nlocal: 108 ave 132 max 90 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
Nghost: 6500 ave 6530 max 6448 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 0 2
|
||||
Neighs: 74339.8 ave 91261 max 61188 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 297359
|
||||
Ave neighs/atom = 688.331
|
||||
Ave special neighs/atom = 1
|
||||
Neighbor list builds = 21
|
||||
Dangerous builds = 0
|
||||
|
||||
unfix thermoberendsen
|
||||
|
||||
# ------------------------ Dynamic Run -------------------------------
|
||||
|
||||
run 1000
|
||||
Ewald initialization ...
|
||||
G vector (1/distance) = 0.175257
|
||||
estimated absolute RMS force accuracy = 1.49563e-05
|
||||
estimated relative force accuracy = 1.03866e-06
|
||||
KSpace vectors: actual max1d max3d = 257 5 665
|
||||
kxmax kymax kzmax = 5 5 5
|
||||
Memory usage per processor = 6.15373 Mbytes
|
||||
Step TotEng PotEng KinEng Temp Press E_pair E_vdwl E_coul E_long E_bond Fnorm Fmax Volume
|
||||
500 -622.34349 -660.51826 38.174772 1371.515 -1306.7035 -664.27406 41.802611 988.58329 -1694.66 3.7557939 23.595131 5.801075 13990.5
|
||||
550 -622.53431 -661.60445 39.070141 1403.6831 -388.25413 -664.94784 43.727803 985.81836 -1694.494 3.3433892 21.667306 3.5808033 13990.5
|
||||
600 -622.20561 -659.56223 37.356624 1342.1211 428.9464 -663.53655 45.982645 985.19136 -1694.7106 3.974322 25.725869 9.3871295 13990.5
|
||||
650 -622.35823 -660.82051 38.462275 1381.8442 -1009.0888 -664.38771 42.618521 987.47881 -1694.485 3.5671985 24.149905 7.00428 13990.5
|
||||
700 -621.97407 -660.92034 38.946267 1399.2327 142.95891 -664.75916 45.033131 985.16618 -1694.9585 3.8388194 27.934663 8.7392159 13990.5
|
||||
750 -622.29209 -658.81919 36.527095 1312.3185 -952.526 -662.17886 42.618062 989.9262 -1694.7231 3.3596669 24.324239 4.9087128 13990.5
|
||||
800 -622.33521 -658.14785 35.812637 1286.6499 135.34005 -661.96381 45.178323 987.39314 -1694.5353 3.815955 24.107767 7.0978979 13990.5
|
||||
850 -622.37957 -660.474 38.094424 1368.6283 857.3439 -663.9925 46.509627 984.19258 -1694.6947 3.5185004 23.581763 5.0835354 13990.5
|
||||
900 -622.29844 -660.66771 38.369271 1378.5028 2861.462 -664.35013 50.97682 979.13332 -1694.4603 3.6824207 24.493416 6.3661215 13990.5
|
||||
950 -622.35097 -659.43438 37.083412 1332.3054 705.55718 -663.24413 46.294781 984.74433 -1694.2832 3.8097517 24.11493 4.1360943 13990.5
|
||||
1000 -622.08622 -658.28773 36.201516 1300.6213 421.181 -662.27058 45.865645 986.51483 -1694.6511 3.98285 26.774991 7.4172909 13990.5
|
||||
1050 -622.10558 -657.21399 35.108408 1261.3489 -464.31761 -661.46995 44.291275 988.69737 -1694.4586 4.2559609 25.983762 5.4926993 13990.5
|
||||
1100 -622.29369 -658.21246 35.918767 1290.4629 123.81951 -662.20344 45.651482 986.92119 -1694.7761 3.990985 25.85199 5.2327524 13990.5
|
||||
1150 -621.98418 -658.28218 36.297998 1304.0876 546.02432 -662.38868 46.194374 985.7826 -1694.3657 4.1065008 27.128736 6.901853 13990.5
|
||||
1200 -621.76032 -658.36996 36.60964 1315.2841 198.92215 -662.79546 45.536182 986.45023 -1694.7819 4.4255014 30.59935 9.4790152 13990.5
|
||||
1250 -621.77583 -657.79539 36.019569 1294.0844 521.16569 -662.12132 46.16971 986.26128 -1694.5523 4.3259289 29.294668 9.6073346 13990.5
|
||||
1300 -622.0461 -659.54559 37.499494 1347.2541 -854.68333 -663.33538 42.882224 988.27569 -1694.4933 3.7897892 26.707354 8.861147 13990.5
|
||||
1350 -621.7984 -657.10932 35.310914 1268.6244 -1010.1044 -661.35487 42.90716 990.41696 -1694.679 4.2455538 29.623565 10.702495 13990.5
|
||||
1400 -622.2597 -660.89426 38.634556 1388.0337 2292.235 -664.36487 49.907981 980.3269 -1694.5997 3.4706065 25.34727 6.8458703 13990.5
|
||||
1450 -622.36952 -660.43856 38.069033 1367.716 199.44207 -664.44407 45.483438 984.89046 -1694.818 4.0055092 24.149259 3.9431126 13990.5
|
||||
1500 -621.84913 -659.73606 37.886922 1361.1733 -1274.5089 -663.96475 42.049386 988.31676 -1694.3309 4.2286938 28.927291 10.527466 13990.5
|
||||
Loop time of 5.06693 on 4 procs for 1000 steps with 432 atoms
|
||||
|
||||
Pair time (%) = 3.90916 (77.1504)
|
||||
Bond time (%) = 0.00148368 (0.0292816)
|
||||
Kspce time (%) = 0.657798 (12.9822)
|
||||
Neigh time (%) = 0.108943 (2.15008)
|
||||
Comm time (%) = 0.373417 (7.36968)
|
||||
Outpt time (%) = 0.00109911 (0.0216918)
|
||||
Other time (%) = 0.0150309 (0.296647)
|
||||
|
||||
Nlocal: 108 ave 113 max 100 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 0 2
|
||||
Nghost: 6461 ave 6519 max 6372 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 0 2
|
||||
Neighs: 74316.8 ave 77778 max 69869 min
|
||||
Histogram: 1 0 0 0 0 1 0 1 0 1
|
||||
|
||||
Total # of neighbors = 297267
|
||||
Ave neighs/atom = 688.118
|
||||
Ave special neighs/atom = 1
|
||||
Neighbor list builds = 46
|
||||
Dangerous builds = 0
|
||||
503
src/CORESHELL/compute_temp_cs.cpp
Normal file
503
src/CORESHELL/compute_temp_cs.cpp
Normal file
@ -0,0 +1,503 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Hendrik Heenen (Technical University of Munich)
|
||||
(hendrik.heenen at mytum.com)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "mpi.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "math.h"
|
||||
#include "compute_temp_cs.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
#include "domain.h"
|
||||
#include "update.h"
|
||||
#include "force.h"
|
||||
#include "group.h"
|
||||
#include "modify.h"
|
||||
#include "fix.h"
|
||||
#include "fix_store.h"
|
||||
#include "comm.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
ComputeTempCS::ComputeTempCS(LAMMPS *lmp, int narg, char **arg) :
|
||||
Compute(lmp, narg, arg)
|
||||
{
|
||||
if (narg != 5) error->all(FLERR,"Illegal compute temp/cs command");
|
||||
|
||||
if (atom->avec->bonds_allow == 0)
|
||||
error->all(FLERR,"Compute temp/cs used when bonds are not allowed");
|
||||
|
||||
scalar_flag = vector_flag = 1;
|
||||
size_vector = 6;
|
||||
extscalar = 0;
|
||||
extvector = 1;
|
||||
tempflag = 1;
|
||||
tempbias = 1;
|
||||
extarray = 0;
|
||||
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
// find and define groupbits for core and shell groups
|
||||
|
||||
cgroup = group->find(arg[3]);
|
||||
if (cgroup == -1)
|
||||
error->all(FLERR,"Could not find specified group ID for core particles");
|
||||
groupbit_c = group->bitmask[cgroup];
|
||||
|
||||
sgroup = group->find(arg[4]);
|
||||
if (sgroup == -1)
|
||||
error->all(FLERR,"Could not find specified group ID for shell particles");
|
||||
groupbit_s = group->bitmask[sgroup];
|
||||
|
||||
// create a new fix STORE style
|
||||
// id = compute-ID + COMPUTE_STORE, fix group = compute group
|
||||
|
||||
int n = strlen(id) + strlen("_COMPUTE_STORE") + 1;
|
||||
id_fix = new char[n];
|
||||
strcpy(id_fix,id);
|
||||
strcat(id_fix,"_COMPUTE_STORE");
|
||||
|
||||
char **newarg = new char*[5];
|
||||
newarg[0] = id_fix;
|
||||
newarg[1] = group->names[igroup];
|
||||
newarg[2] = (char *) "STORE";
|
||||
newarg[3] = (char *) "0";
|
||||
newarg[4] = (char *) "1";
|
||||
modify->add_fix(5,newarg);
|
||||
fix = (FixStore *) modify->fix[modify->nfix-1];
|
||||
delete [] newarg;
|
||||
|
||||
// set fix store values = 0 for now
|
||||
// fill them in via setup() once Comm::borders() has been called
|
||||
// skip if resetting from restart file
|
||||
|
||||
if (fix->restart_reset) {
|
||||
fix->restart_reset = 0;
|
||||
firstflag = 0;
|
||||
} else {
|
||||
double *partner = fix->vstore;
|
||||
int nlocal = atom->nlocal;
|
||||
for (int i = 0; i < nlocal; i++) partner[i] = ubuf(0).d;
|
||||
firstflag = 1;
|
||||
}
|
||||
|
||||
// allocate memory
|
||||
|
||||
vector = new double[6];
|
||||
maxatom = 0;
|
||||
vint = NULL;
|
||||
|
||||
// set comm size needed by this Compute
|
||||
|
||||
comm_reverse = 1;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
ComputeTempCS::~ComputeTempCS()
|
||||
{
|
||||
// check nfix in case all fixes have already been deleted
|
||||
|
||||
if (modify->nfix) modify->delete_fix(id_fix);
|
||||
|
||||
delete [] id_fix;
|
||||
delete [] vector;
|
||||
memory->destroy(vint);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::init()
|
||||
{
|
||||
if (comm->ghost_velocity == 0)
|
||||
error->all(FLERR,"Compute temp/cs requires ghost atoms store velocity");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::setup()
|
||||
{
|
||||
if (firstflag) {
|
||||
firstflag = 0;
|
||||
|
||||
// insure # of core atoms = # of shell atoms
|
||||
|
||||
int ncores = group->count(cgroup);
|
||||
nshells = group->count(sgroup);
|
||||
if (ncores != nshells)
|
||||
error->all(FLERR,"Number of core atoms != number of shell atoms");
|
||||
|
||||
// for each C/S pair:
|
||||
// set partner IDs of both atoms if this atom stores bond between them
|
||||
// will set partner IDs for ghost atoms if needed by another proc
|
||||
// nall loop insures all ghost atom partner IDs are set before reverse comm
|
||||
|
||||
int *num_bond = atom->num_bond;
|
||||
tagint **bond_atom = atom->bond_atom;
|
||||
tagint *tag = atom->tag;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
double *partner = fix->vstore;
|
||||
tagint partnerID;
|
||||
|
||||
int nall = nlocal + atom->nghost;
|
||||
for (int i = nlocal; i < nall; i++) partner[i] = ubuf(0).d;
|
||||
|
||||
int i,j,m,match;
|
||||
for (i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit_c || mask[i] & groupbit_s) {
|
||||
for (m = 0; m < num_bond[i]; m++) {
|
||||
partnerID = bond_atom[i][m];
|
||||
j = atom->map(partnerID);
|
||||
if (j == -1) error->one(FLERR,"Core/shell partner atom not found");
|
||||
match = 0;
|
||||
if (mask[i] & groupbit_c && mask[j] & groupbit_s) match = 1;
|
||||
if (mask[i] & groupbit_s && mask[j] & groupbit_c) match = 1;
|
||||
if (match) {
|
||||
partner[i] = ubuf(partnerID).d;
|
||||
partner[j] = ubuf(tag[i]).d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// reverse comm to acquire unknown partner IDs from ghost atoms
|
||||
// only needed if newton_bond = on
|
||||
|
||||
if (force->newton_bond) comm->reverse_comm_compute(this);
|
||||
|
||||
// check that all C/S partners were found
|
||||
|
||||
int flag = 0;
|
||||
for (i = 0; i < nlocal; i++) {
|
||||
if (mask[i] & groupbit_c || mask[i] & groupbit_s) {
|
||||
partnerID = (tagint) ubuf(partner[i]).i;
|
||||
if (partnerID == 0) flag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
int flagall;
|
||||
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
||||
if (flagall) error->all(FLERR,"Core/shell partners were not all found");
|
||||
}
|
||||
|
||||
// calculate DOF for temperature
|
||||
|
||||
fix_dof = -1;
|
||||
dof_compute();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::dof_compute()
|
||||
{
|
||||
if (fix_dof) adjust_dof_fix();
|
||||
int nper = domain->dimension;
|
||||
double natoms = group->count(igroup);
|
||||
dof = nper * natoms;
|
||||
dof -= nper * nshells;
|
||||
dof -= extra_dof + fix_dof;
|
||||
if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz);
|
||||
else tfactor = 0.0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
double ComputeTempCS::compute_scalar()
|
||||
{
|
||||
int i;
|
||||
double vthermal[3];
|
||||
|
||||
invoked_scalar = update->ntimestep;
|
||||
|
||||
vcm_pairs();
|
||||
|
||||
// calculate thermal scalar in respect to atom velocities as center-of-mass
|
||||
// velocities of its according core/shell pairs
|
||||
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
int *type = atom->type;
|
||||
double *mass = atom->mass;
|
||||
double *rmass = atom->rmass;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
double t = 0.0;
|
||||
|
||||
for (int i = 0; i < nlocal; i++){
|
||||
if (mask[i] & groupbit) {
|
||||
vthermal[0] = v[i][0] - vint[i][0];
|
||||
vthermal[1] = v[i][1] - vint[i][1];
|
||||
vthermal[2] = v[i][2] - vint[i][2];
|
||||
if (rmass)
|
||||
t += (vthermal[0]*vthermal[0] + vthermal[1]*vthermal[1] +
|
||||
vthermal[2]*vthermal[2]) * rmass[i];
|
||||
else
|
||||
t += (vthermal[0]*vthermal[0] + vthermal[1]*vthermal[1] +
|
||||
vthermal[2]*vthermal[2]) * mass[type[i]];
|
||||
}
|
||||
}
|
||||
|
||||
MPI_Allreduce(&t,&scalar,1,MPI_DOUBLE,MPI_SUM,world);
|
||||
if (dynamic) dof_compute();
|
||||
scalar *= tfactor;
|
||||
return scalar;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::compute_vector()
|
||||
{
|
||||
double vthermal[3];
|
||||
|
||||
invoked_vector = update->ntimestep;
|
||||
|
||||
vcm_pairs();
|
||||
|
||||
// calculate thermal vector in respect to atom velocities as center-of-mass
|
||||
// velocities of its according C/S pairs
|
||||
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
tagint *molecule = atom->molecule;
|
||||
int *type = atom->type;
|
||||
double *mass = atom->mass;
|
||||
double *rmass = atom->rmass;
|
||||
int nlocal = atom->nlocal;
|
||||
double massone;
|
||||
|
||||
double t[6];
|
||||
for (int i = 0; i < 6; i++) t[i] = 0.0;
|
||||
|
||||
for (int i = 0; i < nlocal; i++){
|
||||
if (mask[i] & groupbit) {
|
||||
vthermal[0] = v[i][0] - vint[i][0];
|
||||
vthermal[1] = v[i][1] - vint[i][1];
|
||||
vthermal[2] = v[i][2] - vint[i][2];
|
||||
if (rmass) massone = rmass[i];
|
||||
else massone = mass[type[i]];
|
||||
t[0] += massone * vthermal[0]*vthermal[0];
|
||||
t[1] += massone * vthermal[1]*vthermal[1];
|
||||
t[2] += massone * vthermal[2]*vthermal[2];
|
||||
t[3] += massone * vthermal[0]*vthermal[1];
|
||||
t[4] += massone * vthermal[0]*vthermal[2];
|
||||
t[5] += massone * vthermal[1]*vthermal[2];
|
||||
}
|
||||
}
|
||||
|
||||
MPI_Allreduce(t,vector,6,MPI_DOUBLE,MPI_SUM,world);
|
||||
for (int i = 0; i < 6; i++) vector[i] *= force->mvv2e;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::vcm_pairs()
|
||||
{
|
||||
int i,j;
|
||||
double massone,masstwo;
|
||||
double vcm[3];
|
||||
|
||||
// reallocate vint if necessary
|
||||
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
if (nlocal > maxatom) {
|
||||
memory->destroy(vint);
|
||||
maxatom = atom->nmax;
|
||||
memory->create(vint,maxatom,3,"temp/cs:vint");
|
||||
}
|
||||
|
||||
// vcm = COM velocity of each CS pair
|
||||
// vint = internal velocity of each C/S atom, used as bias
|
||||
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
int *type = atom->type;
|
||||
double *mass = atom->mass;
|
||||
double *rmass = atom->rmass;
|
||||
|
||||
double *partner = fix->vstore;
|
||||
tagint partnerID;
|
||||
|
||||
for (int i = 0; i < nlocal; i++) {
|
||||
if ((mask[i] & groupbit) &&
|
||||
(mask[i] & groupbit_c || mask[i] & groupbit_s)) {
|
||||
if (rmass) massone = rmass[i];
|
||||
else massone = mass[type[i]];
|
||||
vcm[0] = v[i][0]*massone;
|
||||
vcm[1] = v[i][1]*massone;
|
||||
vcm[2] = v[i][2]*massone;
|
||||
|
||||
partnerID = (tagint) ubuf(partner[i]).i;
|
||||
j = atom->map(partnerID);
|
||||
if (j == -1) error->one(FLERR,"Core/shell partner atom not found");
|
||||
|
||||
if (rmass) masstwo = rmass[j];
|
||||
else masstwo = mass[type[j]];
|
||||
vcm[0] += v[j][0]*masstwo;
|
||||
vcm[1] += v[j][1]*masstwo;
|
||||
vcm[2] += v[j][2]*masstwo;
|
||||
vcm[0] /= (massone + masstwo);
|
||||
vcm[1] /= (massone + masstwo);
|
||||
vcm[2] /= (massone + masstwo);
|
||||
|
||||
vint[i][0] = v[i][0] - vcm[0];
|
||||
vint[i][1] = v[i][1] - vcm[1];
|
||||
vint[i][2] = v[i][2] - vcm[2];
|
||||
} else vint[i][0] = vint[i][1] = vint[i][2] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
remove velocity bias from atom I to leave thermal velocity
|
||||
thermal velocity in this case is COM velocity of C/S pair
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::remove_bias(int i, double *v)
|
||||
{
|
||||
v[0] -= vint[i][0];
|
||||
v[1] -= vint[i][1];
|
||||
v[2] -= vint[i][2];
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
remove velocity bias from all atoms to leave thermal velocity
|
||||
thermal velocity in this case is COM velocity of C/S pair
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::remove_bias_all()
|
||||
{
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
v[i][0] -= vint[i][0];
|
||||
v[i][1] -= vint[i][1];
|
||||
v[i][2] -= vint[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
reset thermal velocity of all atoms to be consistent with bias
|
||||
called from velocity command after it creates thermal velocities
|
||||
this resets each atom's velocity to COM velocity of C/S pair
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::reapply_bias_all()
|
||||
{
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
// recalculate current COM velocities
|
||||
|
||||
vcm_pairs();
|
||||
|
||||
// zero vint after using ti so that Velocity call to restore_bias_all()
|
||||
// will not further alter the velocities within a C/S pair
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
v[i][0] -= vint[i][0];
|
||||
v[i][1] -= vint[i][1];
|
||||
v[i][2] -= vint[i][2];
|
||||
vint[i][0] = 0.0;
|
||||
vint[i][1] = 0.0;
|
||||
vint[i][2] = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
add back in velocity bias to atom I removed by remove_bias()
|
||||
assume remove_bias() was previously called
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::restore_bias(int i, double *v)
|
||||
{
|
||||
v[0] += vint[i][0];
|
||||
v[1] += vint[i][1];
|
||||
v[2] += vint[i][2];
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
add back in velocity bias to all atoms removed by remove_bias_all()
|
||||
assume remove_bias_all() was previously called
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::restore_bias_all()
|
||||
{
|
||||
double **v = atom->v;
|
||||
int *mask = atom->mask;
|
||||
int nlocal = atom->nlocal;
|
||||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
v[i][0] += vint[i][0];
|
||||
v[i][1] += vint[i][1];
|
||||
v[i][2] += vint[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int ComputeTempCS::pack_reverse_comm(int n, int first, double *buf)
|
||||
{
|
||||
int i,m,last;
|
||||
|
||||
double *partner = fix->vstore;
|
||||
|
||||
m = 0;
|
||||
last = first + n;
|
||||
for (i = first; i < last; i++) buf[m++] = partner[i];
|
||||
return m;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeTempCS::unpack_reverse_comm(int n, int *list, double *buf)
|
||||
{
|
||||
int i,j,m;
|
||||
|
||||
double *partner = fix->vstore;
|
||||
tagint partnerID;
|
||||
|
||||
m = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
j = list[i];
|
||||
partnerID = (tagint) ubuf(buf[m++]).i;
|
||||
if (partnerID) partner[j] = ubuf(partnerID).d;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
memory usage of local data
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double ComputeTempCS::memory_usage()
|
||||
{
|
||||
double bytes = (bigint) maxatom * 3 * sizeof(double);
|
||||
return bytes;
|
||||
}
|
||||
120
src/CORESHELL/compute_temp_cs.h
Normal file
120
src/CORESHELL/compute_temp_cs.h
Normal file
@ -0,0 +1,120 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef COMPUTE_CLASS
|
||||
|
||||
ComputeStyle(temp/cs,ComputeTempCS)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef LMP_COMPUTE_TEMP_CS_H
|
||||
#define LMP_COMPUTE_TEMP_CS_H
|
||||
|
||||
#include "compute.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class ComputeTempCS : public Compute {
|
||||
public:
|
||||
ComputeTempCS(class LAMMPS *, int, char **);
|
||||
~ComputeTempCS();
|
||||
void init();
|
||||
void setup();
|
||||
double compute_scalar();
|
||||
void compute_vector();
|
||||
double memory_usage();
|
||||
|
||||
void remove_bias(int, double *);
|
||||
void remove_bias_all();
|
||||
void reapply_bias_all();
|
||||
void restore_bias(int, double *);
|
||||
void restore_bias_all();
|
||||
|
||||
int pack_reverse_comm(int, int, double *);
|
||||
void unpack_reverse_comm(int, int *, double *);
|
||||
|
||||
private:
|
||||
int groupbit_c,groupbit_s;
|
||||
int nshells;
|
||||
int firstflag;
|
||||
int maxatom;
|
||||
int cgroup,sgroup;
|
||||
|
||||
int fix_dof;
|
||||
double tfactor;
|
||||
double **vint;
|
||||
|
||||
char *id_fix;
|
||||
class FixStore *fix;
|
||||
|
||||
void dof_compute();
|
||||
void vcm_pairs();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ERROR/WARNING messages:
|
||||
|
||||
E: Illegal ... command
|
||||
|
||||
Self-explanatory. Check the input script syntax and compare to the
|
||||
documentation for the command. You can use -echo screen as a
|
||||
command-line option when running LAMMPS to see the offending line.
|
||||
|
||||
E: Option mol of compute temp/vcm requires molecular atom style
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Option prop of compute temp/vcm requires one set of parameters
|
||||
added by the property/atom fix
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Fix property/atom vector must contain only intergers to assign
|
||||
sub-ID property
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
E: Specified sub-ID property does not exist or has not been created
|
||||
by the property/atom fix
|
||||
|
||||
Self-explanatory. Usually this means that the specified fix
|
||||
property/atom ID does not match the ID stated in the compute temp/vcm.
|
||||
|
||||
E: Molecule count changed in compute com/temp/molecule
|
||||
|
||||
Number of molecules must remain constant over time.
|
||||
|
||||
E: Sub-ID count changed in compute vcm/temp
|
||||
|
||||
Number of Sub-ID groups must remain constant over time.
|
||||
|
||||
W: Atom with sub-ID = 0 included in compute group
|
||||
|
||||
Self-explanatory. A sub-ID with value 0 will be counted as a normal sub-ID
|
||||
and not left out of by the compute treatment. Therefore a sub-ID of 0 is to
|
||||
be avoided.
|
||||
|
||||
E: Too many sub-ID groups for compute
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
W: More than 2 atoms specified with the same sub-ID, in the case
|
||||
of a core-shell model simulation only core and shell should share the same ID
|
||||
|
||||
Self-explanatory.
|
||||
|
||||
*/
|
||||
199
src/CORESHELL/pair_born_coul_long_cs.cpp
Normal file
199
src/CORESHELL/pair_born_coul_long_cs.cpp
Normal file
@ -0,0 +1,199 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Hendrik Heenen (hendrik.heenen@mytum.de)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "math.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "pair_born_coul_long_cs.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
#include "force.h"
|
||||
#include "kspace.h"
|
||||
#include "neighbor.h"
|
||||
#include "neigh_list.h"
|
||||
#include "math_const.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathConst;
|
||||
|
||||
#define EWALD_F 1.12837917
|
||||
#define EWALD_P 0.3275911
|
||||
#define A1 0.254829592
|
||||
#define A2 -0.284496736
|
||||
#define A3 1.421413741
|
||||
#define A4 -1.453152027
|
||||
#define A5 1.061405429
|
||||
|
||||
#define EPSILON 1.0e-20
|
||||
#define EPS_EWALD 1.0e-6
|
||||
#define EPS_EWALD_SQR 1.0e-12
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
PairBornCoulLongCS::PairBornCoulLongCS(LAMMPS *lmp) : PairBornCoulLong(lmp)
|
||||
{
|
||||
ewaldflag = pppmflag = 1;
|
||||
ftable = NULL;
|
||||
writedata = 1;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void PairBornCoulLongCS::compute(int eflag, int vflag)
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum,itable,itype,jtype;
|
||||
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
|
||||
double fraction,table;
|
||||
double rsq,r2inv,r6inv,forcecoul,forceborn,factor_coul,factor_lj;
|
||||
double grij,expm2,prefactor,t,erfc;
|
||||
double r,rexp;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
|
||||
evdwl = ecoul = 0.0;
|
||||
if (eflag || vflag) ev_setup(eflag,vflag);
|
||||
else evflag = vflag_fdotr = 0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
double *q = atom->q;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
double *special_coul = force->special_coul;
|
||||
double *special_lj = force->special_lj;
|
||||
int newton_pair = force->newton_pair;
|
||||
double qqrd2e = force->qqrd2e;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
numneigh = list->numneigh;
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
// loop over neighbors of my atoms
|
||||
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
qtmp = q[i];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
factor_lj = special_lj[sbmask(j)];
|
||||
factor_coul = special_coul[sbmask(j)];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
jtype = type[j];
|
||||
|
||||
if (rsq < cutsq[itype][jtype]) {
|
||||
rsq += EPSILON; // Add Epsilon for case: r = 0; Interaction must be removed by special bond;
|
||||
r2inv = 1.0/rsq;
|
||||
if (rsq < cut_coulsq) {
|
||||
if (!ncoultablebits || rsq <= tabinnersq) {
|
||||
r = sqrt(rsq);
|
||||
prefactor = qqrd2e * qtmp*q[j];
|
||||
if (factor_coul < 1.0) {
|
||||
// When bonded parts are being calculated a minimal distance (EPS_EWALD)
|
||||
// has to be added to the prefactor and erfc in order to make the
|
||||
// used approximation functions valid
|
||||
grij = g_ewald * (r+EPS_EWALD);
|
||||
expm2 = exp(-grij*grij);
|
||||
t = 1.0 / (1.0 + EWALD_P*grij);
|
||||
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
|
||||
prefactor /= (r+EPS_EWALD);
|
||||
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - (1.0-factor_coul));
|
||||
// Additionally r2inv needs to be accordingly modified since the later
|
||||
// scaling of the overall force shall be consistent
|
||||
r2inv = 1.0/(rsq + EPS_EWALD_SQR);
|
||||
} else {
|
||||
grij = g_ewald * r;
|
||||
expm2 = exp(-grij*grij);
|
||||
t = 1.0 / (1.0 + EWALD_P*grij);
|
||||
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
|
||||
prefactor /= r;
|
||||
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
|
||||
}
|
||||
} else {
|
||||
union_int_float_t rsq_lookup;
|
||||
rsq_lookup.f = rsq;
|
||||
itable = rsq_lookup.i & ncoulmask;
|
||||
itable >>= ncoulshiftbits;
|
||||
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
|
||||
table = ftable[itable] + fraction*dftable[itable];
|
||||
forcecoul = qtmp*q[j] * table;
|
||||
if (factor_coul < 1.0) {
|
||||
table = ctable[itable] + fraction*dctable[itable];
|
||||
prefactor = qtmp*q[j] * table;
|
||||
forcecoul -= (1.0-factor_coul)*prefactor;
|
||||
}
|
||||
}
|
||||
} else forcecoul = 0.0;
|
||||
|
||||
if (rsq < cut_ljsq[itype][jtype]) {
|
||||
r = sqrt(rsq);
|
||||
r6inv = r2inv*r2inv*r2inv;
|
||||
rexp = exp((sigma[itype][jtype]-r)*rhoinv[itype][jtype]);
|
||||
forceborn = born1[itype][jtype]*r*rexp - born2[itype][jtype]*r6inv
|
||||
+ born3[itype][jtype]*r2inv*r6inv;
|
||||
} else forceborn = 0.0;
|
||||
|
||||
fpair = (forcecoul + factor_lj*forceborn) * r2inv;
|
||||
|
||||
f[i][0] += delx*fpair;
|
||||
f[i][1] += dely*fpair;
|
||||
f[i][2] += delz*fpair;
|
||||
if (newton_pair || j < nlocal) {
|
||||
f[j][0] -= delx*fpair;
|
||||
f[j][1] -= dely*fpair;
|
||||
f[j][2] -= delz*fpair;
|
||||
}
|
||||
|
||||
if (eflag) {
|
||||
if (rsq < cut_coulsq) {
|
||||
if (!ncoultablebits || rsq <= tabinnersq)
|
||||
ecoul = prefactor*erfc;
|
||||
else {
|
||||
table = etable[itable] + fraction*detable[itable];
|
||||
ecoul = qtmp*q[j] * table;
|
||||
}
|
||||
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
|
||||
} else ecoul = 0.0;
|
||||
if (rsq < cut_ljsq[itype][jtype]) {
|
||||
evdwl = a[itype][jtype]*rexp - c[itype][jtype]*r6inv
|
||||
+ d[itype][jtype]*r6inv*r2inv - offset[itype][jtype];
|
||||
evdwl *= factor_lj;
|
||||
} else evdwl = 0.0;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i,j,nlocal,newton_pair,
|
||||
evdwl,ecoul,fpair,delx,dely,delz);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (vflag_fdotr) virial_fdotr_compute();
|
||||
}
|
||||
67
src/CORESHELL/pair_born_coul_long_cs.h
Normal file
67
src/CORESHELL/pair_born_coul_long_cs.h
Normal file
@ -0,0 +1,67 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Hendrik Heenen (hendrik.heenen@mytum.com)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef PAIR_CLASS
|
||||
|
||||
PairStyle(born/coul/long/cs,PairBornCoulLongCS)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_BORN_COUL_LONG_CS_H
|
||||
#define LMP_PAIR_BORN_COUL_LONG_CS_H
|
||||
|
||||
#include "pair_born_coul_long.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class PairBornCoulLongCS : public PairBornCoulLong {
|
||||
public:
|
||||
PairBornCoulLongCS(class LAMMPS *);
|
||||
virtual void compute(int, int);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ERROR/WARNING messages:
|
||||
|
||||
E: Illegal ... command
|
||||
|
||||
Self-explanatory. Check the input script syntax and compare to the
|
||||
documentation for the command. You can use -echo screen as a
|
||||
command-line option when running LAMMPS to see the offending line.
|
||||
|
||||
E: Incorrect args for pair coefficients
|
||||
|
||||
Self-explanatory. Check the input script or data file.
|
||||
|
||||
E: All pair coeffs are not set
|
||||
|
||||
All pair coefficients must be set in the data file or by the
|
||||
pair_coeff command before running a simulation.
|
||||
|
||||
E: Pair style born/coul/long requires atom attribute q
|
||||
|
||||
An atom style that defines this attribute must be used.
|
||||
|
||||
E: Pair style requires a KSpace style
|
||||
|
||||
No kspace style is defined.
|
||||
|
||||
*/
|
||||
197
src/CORESHELL/pair_buck_coul_long_cs.cpp
Normal file
197
src/CORESHELL/pair_buck_coul_long_cs.cpp
Normal file
@ -0,0 +1,197 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Hendrik Heenen (hendrik.heenen@mytum.de)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "math.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "pair_buck_coul_long_cs.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
#include "force.h"
|
||||
#include "kspace.h"
|
||||
#include "neighbor.h"
|
||||
#include "neigh_list.h"
|
||||
#include "math_const.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
using namespace MathConst;
|
||||
|
||||
#define EWALD_F 1.12837917
|
||||
#define EWALD_P 0.3275911
|
||||
#define A1 0.254829592
|
||||
#define A2 -0.284496736
|
||||
#define A3 1.421413741
|
||||
#define A4 -1.453152027
|
||||
#define A5 1.061405429
|
||||
|
||||
#define EPSILON 1.0e-20
|
||||
#define EPS_EWALD 1.0e-6
|
||||
#define EPS_EWALD_SQR 1.0e-12
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
PairBuckCoulLongCS::PairBuckCoulLongCS(LAMMPS *lmp) : PairBuckCoulLong(lmp)
|
||||
{
|
||||
ewaldflag = pppmflag = 1;
|
||||
writedata = 1;
|
||||
ftable = NULL;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void PairBuckCoulLongCS::compute(int eflag, int vflag)
|
||||
{
|
||||
int i,j,ii,jj,inum,jnum,itable,itype,jtype;
|
||||
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair;
|
||||
double fraction,table;
|
||||
double rsq,r2inv,r6inv,forcecoul,forcebuck,factor_coul,factor_lj;
|
||||
double grij,expm2,prefactor,t,erfc;
|
||||
double r,rexp;
|
||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||
|
||||
evdwl = ecoul = 0.0;
|
||||
if (eflag || vflag) ev_setup(eflag,vflag);
|
||||
else evflag = vflag_fdotr = 0;
|
||||
|
||||
double **x = atom->x;
|
||||
double **f = atom->f;
|
||||
double *q = atom->q;
|
||||
int *type = atom->type;
|
||||
int nlocal = atom->nlocal;
|
||||
double *special_coul = force->special_coul;
|
||||
double *special_lj = force->special_lj;
|
||||
int newton_pair = force->newton_pair;
|
||||
double qqrd2e = force->qqrd2e;
|
||||
|
||||
inum = list->inum;
|
||||
ilist = list->ilist;
|
||||
numneigh = list->numneigh;
|
||||
firstneigh = list->firstneigh;
|
||||
|
||||
// loop over neighbors of my atoms
|
||||
|
||||
for (ii = 0; ii < inum; ii++) {
|
||||
i = ilist[ii];
|
||||
qtmp = q[i];
|
||||
xtmp = x[i][0];
|
||||
ytmp = x[i][1];
|
||||
ztmp = x[i][2];
|
||||
itype = type[i];
|
||||
jlist = firstneigh[i];
|
||||
jnum = numneigh[i];
|
||||
|
||||
for (jj = 0; jj < jnum; jj++) {
|
||||
j = jlist[jj];
|
||||
factor_lj = special_lj[sbmask(j)];
|
||||
factor_coul = special_coul[sbmask(j)];
|
||||
j &= NEIGHMASK;
|
||||
|
||||
delx = xtmp - x[j][0];
|
||||
dely = ytmp - x[j][1];
|
||||
delz = ztmp - x[j][2];
|
||||
rsq = delx*delx + dely*dely + delz*delz;
|
||||
jtype = type[j];
|
||||
|
||||
if (rsq < cutsq[itype][jtype]) {
|
||||
rsq += EPSILON; // Add Epsilon for case: r = 0; Interaction must be removed by special bond;
|
||||
r2inv = 1.0/rsq;
|
||||
if (rsq < cut_coulsq) {
|
||||
if (!ncoultablebits || rsq <= tabinnersq) {
|
||||
r = sqrt(rsq);
|
||||
prefactor = qqrd2e * qtmp*q[j];
|
||||
if (factor_coul < 1.0) {
|
||||
// When bonded parts are being calculated a minimal distance (EPS_EWALD)
|
||||
// has to be added to the prefactor and erfc in order to make the
|
||||
// used approximation functions for the Ewald correction valid
|
||||
grij = g_ewald * (r+EPS_EWALD);
|
||||
expm2 = exp(-grij*grij);
|
||||
t = 1.0 / (1.0 + EWALD_P*grij);
|
||||
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
|
||||
prefactor /= (r+EPS_EWALD);
|
||||
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - (1.0-factor_coul));
|
||||
// Additionally r2inv needs to be accordingly modified since the later
|
||||
// scaling of the overall force shall be consistent
|
||||
r2inv = 1.0/(rsq + EPS_EWALD_SQR);
|
||||
} else {
|
||||
grij = g_ewald * r;
|
||||
expm2 = exp(-grij*grij);
|
||||
t = 1.0 / (1.0 + EWALD_P*grij);
|
||||
erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2;
|
||||
prefactor /= r;
|
||||
forcecoul = prefactor * (erfc + EWALD_F*grij*expm2);
|
||||
}
|
||||
} else {
|
||||
union_int_float_t rsq_lookup;
|
||||
rsq_lookup.f = rsq;
|
||||
itable = rsq_lookup.i & ncoulmask;
|
||||
itable >>= ncoulshiftbits;
|
||||
fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable];
|
||||
table = ftable[itable] + fraction*dftable[itable];
|
||||
forcecoul = qtmp*q[j] * table;
|
||||
if (factor_coul < 1.0) {
|
||||
table = ctable[itable] + fraction*dctable[itable];
|
||||
prefactor = qtmp*q[j] * table;
|
||||
forcecoul -= (1.0-factor_coul)*prefactor;
|
||||
}
|
||||
}
|
||||
} else forcecoul = 0.0;
|
||||
|
||||
if (rsq < cut_ljsq[itype][jtype]) {
|
||||
r = sqrt(rsq);
|
||||
r6inv = r2inv*r2inv*r2inv;
|
||||
rexp = exp(-r*rhoinv[itype][jtype]);
|
||||
forcebuck = buck1[itype][jtype]*r*rexp - buck2[itype][jtype]*r6inv;
|
||||
} else forcebuck = 0.0;
|
||||
fpair = (forcecoul + factor_lj*forcebuck) * r2inv;
|
||||
|
||||
f[i][0] += delx*fpair;
|
||||
f[i][1] += dely*fpair;
|
||||
f[i][2] += delz*fpair;
|
||||
if (newton_pair || j < nlocal) {
|
||||
f[j][0] -= delx*fpair;
|
||||
f[j][1] -= dely*fpair;
|
||||
f[j][2] -= delz*fpair;
|
||||
}
|
||||
|
||||
if (eflag) {
|
||||
if (rsq < cut_coulsq) {
|
||||
if (!ncoultablebits || rsq <= tabinnersq)
|
||||
ecoul = prefactor*erfc;
|
||||
else {
|
||||
table = etable[itable] + fraction*detable[itable];
|
||||
ecoul = qtmp*q[j] * table;
|
||||
}
|
||||
if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor;
|
||||
} else ecoul = 0.0;
|
||||
if (rsq < cut_ljsq[itype][jtype]) {
|
||||
evdwl = a[itype][jtype]*rexp - c[itype][jtype]*r6inv -
|
||||
offset[itype][jtype];
|
||||
evdwl *= factor_lj;
|
||||
} else evdwl = 0.0;
|
||||
}
|
||||
|
||||
if (evflag) ev_tally(i,j,nlocal,newton_pair,
|
||||
evdwl,ecoul,fpair,delx,dely,delz);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (vflag_fdotr) virial_fdotr_compute();
|
||||
}
|
||||
67
src/CORESHELL/pair_buck_coul_long_cs.h
Normal file
67
src/CORESHELL/pair_buck_coul_long_cs.h
Normal file
@ -0,0 +1,67 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
http://lammps.sandia.gov, Sandia National Laboratories
|
||||
Steve Plimpton, sjplimp@sandia.gov
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing author: Hendrik Heenen (hendrik.heenen@mytum.com)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef PAIR_CLASS
|
||||
|
||||
PairStyle(buck/coul/long/cs,PairBuckCoulLongCS)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef LMP_PAIR_BUCK_COUL_LONG_CS_H
|
||||
#define LMP_PAIR_BUCK_COUL_LONG_CS_H
|
||||
|
||||
#include "pair_buck_coul_long.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class PairBuckCoulLongCS : public PairBuckCoulLong {
|
||||
public:
|
||||
PairBuckCoulLongCS(class LAMMPS *);
|
||||
virtual void compute(int, int);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ERROR/WARNING messages:
|
||||
|
||||
E: Illegal ... command
|
||||
|
||||
Self-explanatory. Check the input script syntax and compare to the
|
||||
documentation for the command. You can use -echo screen as a
|
||||
command-line option when running LAMMPS to see the offending line.
|
||||
|
||||
E: Incorrect args for pair coefficients
|
||||
|
||||
Self-explanatory. Check the input script or data file.
|
||||
|
||||
E: All pair coeffs are not set
|
||||
|
||||
All pair coefficients must be set in the data file or by the
|
||||
pair_coeff command before running a simulation.
|
||||
|
||||
E: Pair style buck/coul/long requires atom attribute q
|
||||
|
||||
The atom style defined does not have these attributes.
|
||||
|
||||
E: Pair style requires a KSpace style
|
||||
|
||||
No kspace style is defined.
|
||||
|
||||
*/
|
||||
@ -13,7 +13,7 @@ OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
# Package variables
|
||||
|
||||
PACKAGE = asphere body class2 colloid dipole fld gpu granular kim \
|
||||
PACKAGE = asphere body class2 colloid coreshell dipole fld gpu granular kim \
|
||||
kokkos kspace manybody mc meam misc molecule mpiio opt peri poems \
|
||||
qeq reax replica rigid shock snap srd voronoi xtc
|
||||
|
||||
|
||||
@ -99,15 +99,15 @@ void Velocity::command(int narg, char **arg)
|
||||
else if (style == ZERO) options(narg-3,&arg[3]);
|
||||
|
||||
// special cases where full init and border communication must be done first
|
||||
// for CREATE/SET if compute temp/cs is used
|
||||
// for ZERO if fix rigid/small is used
|
||||
// for CREATE/SET if compute temp/cs is used
|
||||
// b/c methods invoked in the compute/fix perform forward/reverse comm
|
||||
|
||||
int initcomm = 0;
|
||||
if (style == ZERO && rfix >= 0 &&
|
||||
strcmp(modify->fix[rfix]->style,"rigid/small") == 0) initcomm = 1;
|
||||
if ((style == CREATE || style == SET) && temperature &&
|
||||
strcmp(temperature->style,"temp/cs2") == 0) initcomm = 1;
|
||||
strcmp(temperature->style,"temp/cs") == 0) initcomm = 1;
|
||||
|
||||
if (initcomm) {
|
||||
lmp->init();
|
||||
|
||||
@ -1 +1 @@
|
||||
#define LAMMPS_VERSION "5 Mar 2015"
|
||||
#define LAMMPS_VERSION "6 Mar 2015"
|
||||
|
||||
Reference in New Issue
Block a user