Author Topic: Not physically reasonable in mulliken population  (Read 6531 times)

0 Members and 1 Guest are viewing this topic.

Offline hol28

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Reputation: 0
    • View Profile
Hi everyone,
I want to use the ATK to calculate the mulliken population, so I did a simple test on a HCl molecule. The result is:
 Mulliken Population Report                                                   |
|                                                                              |
| ---------------------------------------------------------------------------- |
|                        |                                                     |
| Element   Total  Shell | Orbitals                                            |
|                        |                                                     |
|                        |      s                                              |
|   0   H   1.044  0.129 |  0.129                                              |
|                        |      s                                              |
|                  0.773 |  0.773                                              |
|                        |      y      z      x                                |
|                  0.142 |  0.058  0.042  0.042                                |
|                        | --------------------------------------------------- |
|                        |      s                                              |
|   1  Cl   6.956  0.090 |  0.090                                              |
|                        |      y      z      x                                |
|                  0.630 |  0.153  0.239  0.239                                |
|                        |      s                                              |
|                  1.674 |  1.674                                              |
|                        |      y      z      x                                |
|                  4.525 |  1.091  1.717  1.717                                |
|                        |     xy     zy  zz-rr     zx  xx-yy                  |
|                  0.037 |  0.002  0.002  0.008  0.000  0.025                  |
+------------------------------------------------------------------------------+
But as is know, for the HCl, the result should be H+ and Cl- and the electrons for H and Cl should be 0.0 and 8.0, respectively.
My input file is:
# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------

# Set up lattice
vector_a = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 9.999945]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Hydrogen, Chlorine]

# Define coordinates
cartesian_coordinates = [[ 5.       ,  4.36     ,  4.9999725],
                         [ 5.       ,  5.64     ,  4.9999725]]*Angstrom

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    cartesian_coordinates=cartesian_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = GGABasis.DoubleZetaPolarized

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = GGA.PW91

numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=(10, 10, 10),
    )

calculator = LCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    )

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('HCl.nc', bulk_configuration)

# -------------------------------------------------------------
# Mulliken population
# -------------------------------------------------------------
mulliken_population = MullikenPopulation(bulk_configuration)
nlsave('HCl.nc', mulliken_population)
nlprint(mulliken_population)

Could anyone give me any suggestions? Look forward to your reply! Thanks!

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #1 on: July 21, 2012, 19:36 »
A couple of things that is wrong:

  • In the calculation you setup is very stange. Why do you calculate on H-Cl as bulk system with k-points when it is a molecule?
  • In H-Cl the electron is not transfered to the Cl atom completly, so the 8 for Cl and 0 for H is not physical correct. For simple explanation, first of all ionic bond only formed between metal and non-metal. But both Cl and H are non-metal . So actually HCl forms polar covalent bond. Cl is large and has very high electronegativity compared to H. Thus the electron cloud tends to move towards Cl. Thats why it is polar. but the electrons is not so localized that they are not orbiting the hydrogen atom as well.
  • The mulliken population is not amount of electrons on that atom. Mulliken is a projection of the density matrix onto the orbitals of your basis set
  • You can for reference check this result from Gaussian orbitals http://www.southampton.ac.uk/~compchem/other/CHEM3023/chem3023_L7.pdf and you will see that the mulliken population is more tool for inspecting that basis set that telling who owns what charge.
« Last Edit: July 21, 2012, 21:26 by Nordland »

Offline hol28

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Reputation: 0
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #2 on: July 22, 2012, 03:28 »
Hi Nordland,
Thanks for your patient reply.
   (1) I put the molecule HCl in a large enough box so that there are no interactions among the neighboring molecules and treat it as a periodic bulk. I think this can simulate the situation of a molecule HCl.
   (2) Yes, you are right. In H-Cl the electron is not transfered to the Cl atom completly. In my original post, I got the result that H get partial electron from Cl. I think this is not reasonable. I have read the reference you recommended, the result therein is -0.17 for Cl and +0.17 for H. I finally got a similar result by changing the basis set in the input file.
Thanks again for your suggestions.

Offline Nordland

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 812
  • Reputation: 18
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #3 on: July 22, 2012, 10:43 »
  (1) I put the molecule HCl in a large enough box so that there are no interactions among the neighboring molecules and treat it as a periodic bulk. I think this can simulate the situation of a molecule HCl.
Yes, but you were also using k-points which is incorrect if you want to treat as a molecule. If you setup your configuration as a molecule, it is automatically ensured that there is no interaction between neighboring cell, so you will not need to worry about setting any cell.

Offline hol28

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Reputation: 0
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #4 on: July 22, 2012, 17:24 »
Hi Nordland,
Thank you for your suggestion. Since that's always the way to treat a molecule in other software, I'm used to use that method. 
Yes, I find in ATK the way to treat a molecule. That's great! 

Offline nori

  • QuantumATK Guru
  • ****
  • Posts: 122
  • Reputation: 12
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #5 on: July 23, 2012, 14:57 »
How about changing exchange_correlation from GGA.PW91 to GGA.PBE?

Offline hol28

  • Regular QuantumATK user
  • **
  • Posts: 15
  • Reputation: 0
    • View Profile
Re: Not physically reasonable in mulliken population
« Reply #6 on: July 27, 2012, 19:28 »
Hi nori:
I have tried the method you suggested. It just the same as GGA.PW91.
Thanks!