[lammps-users] Question about dipole

Please post to the mail list, not to me personally.
I don't know if you are correct. A charge acting on a dipole
may not increase the net force on the dipole as the moment
increases. It may just increase the torque effectively
have no separation in a point dipole.



My atomic style is point particle without torque. If there is the special direction between dipole moment and charge, the net force on the dipole mybe does not change. But this is not my case. In addition, the force on the charge of water molecule should be different as the dipole moment increases. The pair_style dipole/cut command cat not be used to point particles? I don’t think so because the interaction between the point dipole and charge can be calculated. Have you checked my example?


2009/12/3 Steve Plimpton <[email protected]>

Your example is not simple enough for me to spend time investigating.
It has several hybrid potentials, Coulombic and dipole and airebo.
And long-range Ewald, and SHAKE.

If you suspect something is wrong with pair dipole/cut, then I please
build a simple input that only has that potential and a few particles,
and dump out the forces and see if it doing the right thing. In other
words, you need to start debugging this yourself, by turning
on features one at a time in a simple problem. You are the best
person to do this, not me.


Dear Steve,

According to you suggestion, I build a simple model that only has dipole/cut potential and two particles, one with dipole and the other with charge.
Only changing the magnitude or polarity(positive or negative) of charge, I found the direction and magnitude of forces on both particles will change.
If I only change the direction of dipole moment, the direction of forces also change.
But if I only change the magnitude of dipole moment, for example, from 1 to 2, the forces on both particles will not change. Can you check and explain this?
My input and data scripts are also attached. Thank you very much.


2009/12/4 Steve Plimpton <[email protected]>

in.ble (489 Bytes)

data.ble (366 Bytes)

ok - now I see the problem - thanks for building a simple example.
Even though you change the command dipole 1.0 to dipole 2.0,
in your input script, this is not changing the magnitude
of the dipole momemt for your atom(s), which you set in the
data file to be (1 0 0). The doc for read_data says this
is the orientation, but it is really treated as the initial
dipole moment.

The reason it doesn't get set to 2, is b/c you are not time
integrating the dipole and
that rescaling happens in the time integrator, e.g. fix nve/sphere,
when the orientation of the dipole changes. We didn't anticipate
someone would want to use pair dipole/cut with dipoles that
have fixed orientation and never change.

So to do this, you should either set the initial dipole moment length
correctly in the data file, or use the set command before your run
to set the orientation (which will also apply the length scaling).

LAMMPS should probably apply the rescaling before each run, independent
of whether they are being time integrated or not.