QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: Roc on January 3, 2009, 04:22

Title: Mulliken population
Post by: Roc on January 3, 2009, 04:22
Dear everyone,

When I figure out the charge transfer between the molecular and the two probes through analyzing the Mulliken population at zero bias, I find that the molecular loses 0.3225e, however, the two probes just get 0.231e totally, where is the remanent 0.0915e(0.3225e-0.231e), how to explain it?

Thanks!
 
Title: Re: Mulliken population
Post by: Nordland on January 3, 2009, 14:10
Well there can be two explainations for this:

1) The open boundary conditions allows electrons to leave the device and travel away into the electrode.
2) The padding layers. ATK adds an electrode layer to the scattering region ( just like it is visualized in VNL) for the self-consistent part.
However these exact state of these padding layers are not included in mulliken population for the twoprobe, neither are they included in total charge reported during the SCF cycle. Therefore this small charge could hide inside this padding layers. A way to check this, is to increase the screening to the electrodes, and "the hidden charge" should be less :)
Title: Re: Mulliken population
Post by: Roc on January 4, 2009, 05:26
Thank you, Nordland  :)

Regards!
Title: Re: Mulliken population
Post by: Hasan Sahin on January 7, 2009, 13:49
Is it possible to obtain total up and down mulliken population on system (not mullikens on each atom).
Title: Re: Mulliken population
Post by: Nordland on January 7, 2009, 14:34
Insert this piece of code, and you should get your answer.

Quote
mulliken_population = calculateMullikenPopulation(self_consistent_calculation = scf)
print 'Up =',sum(mulliken_population.toArray()[0])
print 'Down =',sum(mulliken_population.toArray()[1])
Title: Re: Mulliken population
Post by: sergio on October 19, 2011, 16:07
Hi,

The code above doesn't work in ATK 11.2.3. How can we write a this code in ATK 11.2.3?
or is there a way to get total up and down mulliken population?

Thanks
Title: Re: Mulliken population
Post by: Anders Blom on October 20, 2011, 23:30
Yes, it's even simpler.

Code: python
m = MullikenPopulation(configuration)
print "Spin up populations", m.atoms(spin=Spin.Up)
print "Spin down populations", m.atoms(spin=Spin.Down)

Use m.orbitals() in the same way to project on orbitals and m.bonds(i,j) to project on the bond between atoms with indices i and j (0<i,j<=N-1, N=number of atoms).

If you omit the "spin" keyword you get the sum of spin up and down.
Title: Re: Mulliken population
Post by: sergio on October 21, 2011, 10:52
Thanks...