Partial charges of the atoms with ReaxFF

Dear LAMMPS users and developers,

I am trying to run a simulation for a cation. The partial charges of all atoms are included in the data file (with: sum charges = +1); then, I am using a ReaxFF file that corresponds to the molecule.

However, after inspecting the partial charges throughout the simulation, I realized that the total charge is 0 at each time step.
It seems like my initial charges input are not taken into consideration when using ReaxFF.

  • Is it possible that the ReaxFF file that I am using is only valid for the neutral molecule ?
  • Is there a way to impose the partial charges while using ReaxFF ?

Best regards,
Rafid Bendimerad.

ReaxFF - or rather the charge equilibration algorithm that is part of ReaxFF - is ill defined for charged systems.

The only way to handle your molecule would be to use a counter ion to neutralize the entire system.

Here is a little exercise for you to illustrate the problem:

  • please compute the dipole moment for your molecule
  • now move the molecule to a different position and compute the dipole moment again

Do you get the result that you would expect?

Mathematically it is possible to constrain the total QEq charge to any value. However, standard ReaxFF models always restrict the total charge to zero, and that is what LAMMPS does too, although this is not explicitly stated in the documentation. We could provide an option that would constrain total charge to a user-specified non-zero value, but in the absence of a ReaxFF parameterization that is explicitly constructed for this situation, it does not seem like a good idea.

Thank you everyone for your responses. It’s very helpful.