Fix bond/react runs and counts reactions, but no topology changes occur



I am trying to use the new “fix bond/react” command to produce a crosslinked epoxy system. The simulation runs without errors, and the fix vector output that tallies reaction occurrences increases throughout the run (suggesting that the specified reactions are taking place); however, the number of dihedrals in the data file before and after the crosslinking is unchanged indicating that the topology is not actually transforming. What could be the cause of this issue?


I originally used the 7Dec2018 64-bit LAMMPS but updated to the 4Jan2019 64-bit LAMMPS to ensure my issue is not a bug that has already been addressed.

I created the molecule and map files by creating a data file that includes all the potential pre and post reactions, identifying the atom IDs of all atoms within 3 bonds of an atom that changes type or connectivity, and storing all bonds/angles/impropers/dihedrals that contain only those atom IDs. I only included a single atom pair in the bonding IDs section even though multiple atoms change type/connectivity. I am not sure if this was the intended method, but to my understanding the resulting format aligns with the examples given.

My simplified system comprises 24 resin and 20 hardener molecules and my input file includes 3 potential reactions. I could have just provided one of the three reactions for simplicity, but I included all of them to show that LAMMPS seems to be correctly identifying the reaction sites. The second fix reaction count is approximately twice that of the of the first, which makes sense because there are twice as many edge reaction sites as center reaction sites. The third fix reaction count is zero, which makes sense because the third reaction site only exists after the second reaction type occurs. In addition, the reaction counts respond appropriately to changes in Rmax.

It seems to me that the command is accurately identifying reaction sites, but not initiating topology changes. I assume that LAMMPS would have thrown an error if it was unable to reconstruct the topologies due to an error in the post-reaction template. I have scoured the documentation, examples, and mailing list, but have not found any information addressing this problem.

I would appreciate some guidance on this issue.

Also, I have one additional question, which is not directly related to this problem: do all the charges in the pre-reaction template have to match? My edge atoms may have different charges depending on whether other reactions have occurred, so I am wondering if I will have to create an additional reaction/map for each possible charge.

Thank you very much for your time.


Jacob Schichtel (233 Bytes) (195 Bytes)

center_prereact.template (3.11 KB)

edge1_postreact.template (3.07 KB)

center_postreact.template (4.08 KB)

edge1_prereact.template (2.12 KB)

edge2_postreact.template (4.3 KB)

edge2_prereact.template (3.45 KB)

LAMMPS_input.lmp (1.8 KB) (240 Bytes) (476 KB)

Hi Jacob Schichtel,

I ran the input files you gave and there were 1288 more dihedrals in the crosslinked data file compared to the uncured. I’ve attached the data file and output here.
There have been some recent changes to bond/react and my version includes some of these.


Amulya Pervaje
PhD Candidate
Prof. Erik Santiso and Prof. Saad Khan Groups
Chemical and Biomolecular Engineering
North Carolina State University

polyout.txt (9.19 KB) (516 KB)