QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: hol28 on July 21, 2012, 18:19

Title: Not physically reasonable in mulliken population
Post by: hol28 on July 21, 2012, 18:19
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!
Title: Re: Not physically reasonable in mulliken population
Post by: Nordland on July 21, 2012, 19:36
A couple of things that is wrong:

Title: Re: Not physically reasonable in mulliken population
Post by: hol28 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.
Title: Re: Not physically reasonable in mulliken population
Post by: Nordland 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.
Title: Re: Not physically reasonable in mulliken population
Post by: hol28 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! 
Title: Re: Not physically reasonable in mulliken population
Post by: nori on July 23, 2012, 14:57
How about changing exchange_correlation from GGA.PW91 to GGA.PBE?
Title: Re: Not physically reasonable in mulliken population
Post by: hol28 on July 27, 2012, 19:28
Hi nori:
I have tried the method you suggested. It just the same as GGA.PW91.
Thanks!