Question on "bond_style none"

Dear lammps members,

I have some questions of the working of “bond_style none”

Dear lammps members,

I have some questions of the working of "bond_style none"
---------------------------------------------------------------------------------------
I want to setup a test case of a nvt equilibrium of nitrogen (N2) gas;
Obtain equilibrium pressure from lammps simulation.
-----------------------------------------------------------------------------------
1. Problem setup: small domain 54 x 27 x 27 angs ; with 227 N2 molecules (
454 N atoms); T=250k ; Density = 268 kg/m^3

2. Lammps setup: 3D ; periodic in x,y,z ; atom_style molecular ;
angle,dihedral,improper_style none ;
                                   bond_style none;

I set "bond_style none" since I did not want to compute bond interactions
during the first try.

this doesn't make a lot of sense to simulate molecules as individual
atoms. you probably mean to say something else, but since you don't
provide any examples, it is impossible to comment on this.

3. I created the 227 N2 molecule data file in matlab. Checked the
molecular configuration, bond lengths etc
     in the matlab, and also visualized it in VMD. All seems well.
-------------------------------------------------------------------------------------
Questions:

1. Performed "energy minimization". Ran nvt to 1000 steps ( 4 femto-sec
steps).
     The lammps code runs for 1000 steps and at the end I get error
    ERROR: Bond/angle/dihedral.... extent > half of periodic box length"
    This seems to be very common error and I read through many user
questions on it.

and you should also have seen that most of those cases originate in
people doing something bad or not very smart.

2. If I set 4000 steps, the nvt runs to 4000 steps and then gives the above
error;
     the same happens for 8000 step setting.
     QUESTION:
      Why does it run past 1000 steps, if some bond lengths are already too
long at 1000 steps above ?

you are comparing apples and oranges.

       Lammps does not check bond length *during* run ?

why *should* it check? problems will automatically happen when bonds
stretch beyond the communication cutoff. but in any of those cases, it
is a problem of a bad input and not LAMMPS' job to take care of it.

3. To check correctness of bond lengths from input data file , I tried
    "compute bond_dist ... bond/local dist"
    and then (get max,min,avg) of bond_dist from "compute reduce".

    These computes does not work with "bond_style none ": I get
    ERROR: No bond style is defined for compute bond/local"

    QUESTION: how can I get bond diagnostics, if I want a simulation
without bond interactions ( rigid molecules) ?

how do you keep the molecule rigid when you don't have a bond (and a
constraint)?

4. To ensure correctness of input data file, I temporarily changed to
"bond_style harmonic" with adhoc bond_coeff.
     0. Now there is no "ERROR: Bond/angle/dihedral.... extent > half of
periodic box length"

     1. All the "compute" in 3 works.

     2. The initial max,min,avg bond lengths are 1.09angs, exactly as
expected from input data file.
         So the input N2 molecular data file seems good.

     3. After 4000 nvt runs, the (max,min,avg) are (1.35, 1.04, 1.20);
changed from 1.09 due to bond interactions.

5. QUESTIONS:
       1. From 3 and 4 observations, it seems to me that "bond_style none"
treats bonded atoms as un-bonded atoms,
           and allows them to drift apart. Is this true ?

sure. what should keep them together?

      2. From lammps documentation, it looked like "none" style does not
compute interactions, but maintains all
           input bond integrity. Is this not true ?

it maintains the bond *topology*, that is it. the rest depends on how
you set up the calculation.

6. Suggestions on how to setup without bond interactions and also perform
"compute" bond diagnostics ?

it doesn't make sense to do bond diagnostics unless you use something
that maintains the bond, either through a potential or through a
constraint. please keep in mind that defining a bond will also result
in excluding the corresponding pair from the neighborlist for
non-bonded interactions. so to get physically meaningful results at
all, you have to either add constraints/restraints or change the
exclusion factors vial the special_bonds command.

axel.

I’ll only add that if you use bond_style none,

be careful of your special_bond settings, since

if you exclude the pairwise interaction between
bonded atoms, there will be no bond to hold
them together.

Steve