Issues with bond_style zero (additional energy contributions)

Hi, I am having some issues using the bond_style zero available in LAMMPS (23 Mar 2016). It is my understanding that by adding bonds to the system and assigning the bond_style “zero”, there should be no additional energy contributions to the system and the bonds are there just for tracking purposes. However, I discovered noticeable deviations in the energy of my system so I made a decided to make a small sample to double check.

In my sample model, I have created a two layer system of copper atoms and have assigned the top half to type 1 and bottom half to type 2 (both Cu EAM). I ran two cases, which I believe should yield similar results, and minimized both structures:

  1. No interaction between layers with no create_bonds:
  2. No interaction between layers with bond_style zero:

For run #1, I get a total energy of -14221.6. For run #2, I get a total energy of -13893.1. Since the models are not being time-integrated, I would assume the two values to be much closer than this. Does anyone know where this additional contribution is coming from?

Thank you in advance,

  • Nick

CODE:

------------------------ INITIALIZATION ----------------------------

echo screen
units metal
dimension 3
boundary p p p
atom_style full
variable latparam equal 3.615

----------------------- ATOM DEFINITION ----------------------------

lattice fcc ${latparam}

region substrate block 0 8 0 8 0 16
create_box 2 substrate bond/types 1 extra/bond/per/atom 6

lattice fcc ${latparam} origin 0 0 0 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
region box block INF INF INF INF INF 16
create_atoms 1 region box

region bottom block INF INF INF INF INF 8
region top block INF INF INF INF 8 16

set region top type 2
group top type 2
group bottom type 1

mass 1 63.54
mass 2 63.54

atom_modify sort 0 0

----------------------- POTENTIAL/BOND ------------------------------

pair_style eam/alloy
pair_coeff * * Cu01.eam.alloy Cu Cu

bond_style zero
bond_coeff 1

----------------------- ADD BONDS ------------------------------------

create_bonds top bottom 1 0 3.615

neigh_modify exclude type 1 2

----------------------- CHECK BONDS ------------------------------------

compute peBond all pe bond

----------------------- MINIMIZE -----------------------------------

shell mkdir dump_bond
shell cd dump_bond

timestep 0.01
thermo 1000
thermo_style custom step etotal ke pe enthalpy c_peBond

dump RELAX all custom 1000 Cu_bond_base.*.cfg id type x y z

min_style cg
min_modify dmax 1.0e-2 line quadratic
fix min all box/relax aniso 0.0 vmax 0.01
minimize 0.0 1.0e-4 10000 10000

Hi, I am having some issues using the bond_style zero available in LAMMPS
(23 Mar 2016). It is my understanding that by adding bonds to the system and
assigning the bond_style "zero", there should be no additional energy
contributions to the system and the bonds are there just for tracking
purposes. However, I discovered noticeable deviations in the energy of my
system so I made a decided to make a small sample to double check.

In my sample model, I have created a two layer system of copper atoms and
have assigned the top half to type 1 and bottom half to type 2 (both Cu
EAM). I ran two cases, which I believe should yield similar results, and
minimized both structures:

1. No interaction between layers with no create_bonds:
2. No interaction between layers with bond_style zero:

For run #1, I get a total energy of -14221.6. For run #2, I get a total
energy of -13893.1. Since the models are not being time-integrated, I would
assume the two values to be much closer than this. Does anyone know where
this additional contribution is coming from?

these are not additional contributions, but removed contributions.
they are due to so-called "exclusions".
defining a bond between two atoms will exclude that pair from the
computation of non-bonded interaction (the same is usually true for
angles and dihedrals). please see
http://lammps.sandia.gov/doc/special_bonds.html

axel.

Hi, I am having some issues using the bond_style zero available in LAMMPS
(23 Mar 2016). It is my understanding that by adding bonds to the system and
assigning the bond_style "zero", there should be no additional energy
contributions to the system and the bonds are there just for tracking
purposes. However, I discovered noticeable deviations in the energy of my
system so I made a decided to make a small sample to double check.

In my sample model, I have created a two layer system of copper atoms and
have assigned the top half to type 1 and bottom half to type 2 (both Cu
EAM). I ran two cases, which I believe should yield similar results, and
minimized both structures:

1. No interaction between layers with no create_bonds:
2. No interaction between layers with bond_style zero:

For run #1, I get a total energy of -14221.6. For run #2, I get a total
energy of -13893.1. Since the models are not being time-integrated, I would
assume the two values to be much closer than this. Does anyone know where
this additional contribution is coming from?

these are not additional contributions, but removed contributions.
they are due to so-called "exclusions".
defining a bond between two atoms will exclude that pair from the
computation of non-bonded interaction (the same is usually true for
angles and dihedrals). please see
http://lammps.sandia.gov/doc/special_bonds.html

i should add, that in your case, the problem are not the 1-2 pairs,
that form the bonds, but primarily the 1-3 pairs that are due to two
bonds to the same atom, as those are pairs of the same atom type.

setting "special_bonds lj/coul 0.0 1.0 1.0" should make up for that
and recover those non-bonded pairs.

axel.

Thank you for the explanation Axel. That resolved everything.