charge assignment in bond/react

Dear LAMMPS users,

I’m facing a problem with fix bond/react at the moment (LAMMPS version 10 Oct 2018). Bonds, angles, etc. are created and seem to be ok. My problem is, that the charge for one of the reacting atoms (C atom, molecule id 10, data file id 10) does not get changed. From the template file it should be set to be 0.0 after the reaction but it remains at -0.1268 like before the reaction.

The other atoms (H, molecule template id 9, data file id 11 and C, molecule template id 1, data file id 14) get changed.

Did I understand sth wrong from the documentation? Do all dihedrals of an atom have to be included to assign a charge?

If I include the other H atoms from the ring in the template then the charge gets reset. But I would really like to keep such a minimal template because I want other reactions to happen at some other positions of the ring.


rxn1a.reacted.template (1.96 KB)

rxn1a.unreacted.template (1.49 KB)

phenol.params (9.8 KB) (5.22 KB) (862 Bytes) (147 Bytes)

Hi Wolfgang,

When a force field includes dihedrals, only atoms at least 3 bonds away from edge atoms will be updated (including charges). Is this the case? (I am also realizing this point could be made more clear in the docs.)

Note, that adding those other hydrogens would only temporarily prevent other reactions from happening.

That said, it could be a useful option to force the reassignment of all charges.



Hi Jake,

thanks for your response. I’m sorry, it seems I didn’t explain it clearly enough. I’m trying to connect a free C atom (template id 1, data file id 14) to a C atom in the ring (template 10, data file 10) while shifting H from one C to the other C. In the map file 1 and 10 are defined as reacting partners, where 1 (template) gets assigned a charge and 10 does not.

If you don’t mind you could have a look on the example attached.


rxn_minimal.tar.gz (22.3 KB)