Dear forum,

I am trying to use the bader code to calculate dipole moments.

The first moment of electron density is as follows:

M_{-}

=

\int_{v} rho(r) * r * dr (1)

=

\sum_i ( \int_{v(i)} rho(r) * r * dr ) (2)

where v(i) is the bader volume associated with atom (i) and rho(r)

the electron density [e/Bhr**3]. All i's have, of course, the same definition

of origo.

First moment of the ionic charges is:

M_{+} = \sum_i q_i r_i (3),

where q_i is the charge of ion (i). Origo is again consistent with the sum (2).

Now one might calculate dipole moments of individual molecules in solids by making sums (2) and (3) over atoms (i' s) in question

(say, for example a single water molecule in ice) and summing M_{-} + M_{+}.

I tried to implement this hack into the bader code and as a trivial test I calculated isolated water molecule in

vacuum and formed the sum M_{-}+M_{+} for all of the atoms (i=1,2,3).. this should give the total dipole moment

as calculated by the ab-initio program I am currently using (gpaw).

.. unfortunately it does not. :( I get 20 % smaller dipole moment than I should.

Is there something fundamentally wrong in what I am trying to do, or is this just a bug in my hack..?

(at least the total electron density and bader charges integrate to the correct number).

In the latter case, I have the following questions

in bader_mod.f90:

lat2car(chg,(/REAL(n1,q2),REAL(n2,q2),REAL(n3,q2)/))

.. is supposed to give cartesian coordinates of the grid points which are consistent with the atomic coordinates?

Regards,

Sampsa

## dipole moments using bader analysis

**Moderator:** moderators