How to detect bond breaking in lammps

Dear all,

I am simulating the uniaxial tensile test on a CNT using REBO pairwise potential field. I need LAMMPS to halt when the first atomic bond between two carbon atoms break (in other words when for the first time the distance between two carbon atoms exceeds a certain distance, let’s say 1.5 A).

I know “fix halt” can stop LAMMPS when a suitable variable is defined and met the conditions, but I do not know how to introduce that suitable variable for this purpose.

Could anyone tell me a way for solving this problem?

Kind regards,

Ehsan

Dear all,

I am simulating the uniaxial tensile test on a CNT using REBO pairwise potential field. I need LAMMPS to halt when the first atomic bond between two carbon atoms break (in other words when for the first time the distance between two carbon atoms exceeds a certain distance, let’s say 1.5 A).

I know “fix halt” can stop LAMMPS when a suitable variable is defined and met the conditions, but I do not know how to introduce that suitable variable for this purpose.

Could anyone tell me a way for solving this problem?

​there is no such feature in LAMMPS available at this time.
why is it, that you need LAMMPS to stop immediately?​

​axel.​

Compute coord/atom with a cutoff of 1.5 Angs could
tell you the initial count of neighbor C atoms around
each C atom. You could store that value with
fix store/atom. Then you define a variable that
subtracts the current coordination from the reference
value. And use compute reduce to find when any
atom’s coordination has shrunk by one or more.
You can monitor the variable and compute reduce
as a simulation runs. And halt when it changes.

Or you could just dump out the per-atom coordination
and post-process the dump file.

Steve

Dear Dr. Plimpton

Thanks for your reply. I just wanted to write your solution in LAMMPS command’s syntax for whom it may concern:

compute 1 all coord/atom cutoff 1.5
fix reference middle store/state 0 c_1
fix current middle store/state 10 c_1
variable 1 atom “f_reference-f_current”
compute 2 middle reduce max v_1
variable 2 equal c_2
fix 1 all halt 100 v_2 >= 1

Kind regards,

Ehsan