TURBOMOLE Users Forum
TURBOMOLE Modules => Define => Topic started by: evgeniy on September 05, 2018, 05:12:08 PM
-
Hello,
I am intrested in analysis of a HF MO in terms of atomic orbitals (basis funstions) contributions.
More precisely, I am interested in the weight of certain (diffuse) basis functions in different virtual orbitals.
How could one do this best? I tried to separate those basis funstions, setting them on
a ghost atom and running just dscf with Mulliken population analysis ($pop mo ...). However, in this case
the ghost atom coincides with a real atom and Turbomole does not seem to be able to handle such
a situiation - I could not make it run. I wonder if there is some other way, except for doing it manually.
Best regards,
Evgeniy
-
Hi,
in principle you could use the tool tm2molden with the mostat option:
tm2molden mostat
or
tm2molden mostat 149-153,155
to print the data just from the list of selected molecular orbitals (use the eiger script to see which numbers are virtual).
But this will print the contributions only if they are larger than 1%. To change the threshold, add another option to tm2molden:
tm2molden mostat 150-160 above 0.00001
or
tm2molden mostat 150-160 above 1e-5
(smaller than 1e-5 will not help anymore as the print format is "0.001 %")
If you run into problems or if the output does not help as expected, just contact the Turbomole support to get a modified version (email address as usual).
Regards,
Uwe
-
Dear Uwe,
Thanks for your reply. I will try that way.
By the way, I have a related question. Don't you happen to know
why there are sometimes negative contributions from the basis functions
in the Mulleken population analysis. For example like this:
22a' energy/a.u.: -0.4962665
1ir 0.20219 0.20063 0.00000 0.00068 0.00087 0.00001
2c 0.13295 -0.00256 0.12903 0.00624 0.00024
3c 0.13295 -0.00256 0.12903 0.00624 0.00024
4c 0.13295 -0.00256 0.12903 0.00624 0.00024
5c 0.13295 -0.00256 0.12903 0.00624 0.00024
6c 0.13295 -0.00256 0.12903 0.00624 0.00024
7c 0.13295 -0.00256 0.12903 0.00624 0.00024
8c 0.18431 0.00269 0.17219 0.00926 0.00017
9c 0.18431 0.00269 0.17219 0.00926 0.00017
Normally, there shouldn't be negative contributions. So, I guess, it is sort of an artefact due to the Mulliken anlysis.
Best regards,
Evgeniy
-
Dear Evgeniy,
that is a known problem with Mulliken population analysis. Well, not really a problem... this approach is just a model and one gets very different numbers just be changing the basis set size. There are plenty of papers about this topic out there.
Regards,
Uwe
-
Dear Uwe,
Many thanks for your reply. I tried the way you suggested in your previous messages, that is,
tm2molden mostat ...
This would be perfect if for some reasons I had not got stars, i.e. ******* for the contributaion of certain basis
(atomic) functions in some cases, for example like this:
contribution of AO 1 ir 2 px is: ****** %
contribution of AO 1 ir 1 dy2 is: 30.007 %
contribution of AO 1 ir 1 dx2 is: 30.007 %
contribution of AO 1 ir 1 dxy is: 18.705 %
contribution of AO 1 ir 5 px is: 18.695 %
contribution of AO 1 ir 3 px is: 9.933 %
Some different questions:
Maybe you know if there is a way just to print out the MO coefficients in a more or less readable way from the mos file?
I do not want to use the molden file for that as there are Cartesian d-, f- etc. functions instead of spherical ones.
Best regards,
Evgeniy
-
Hi,
if you just want to know in which order the coefficients are printed to the mos (or alpha/beta) file, simply call define, go to the molecular orbital menu (say 'y' if you are asked if you want to enter the menu) and enter 'infsao'.
This will ask for a file name where the information will be written to. Just enter a name here, or a '0' (zero) to print it to screen. The resulting file will look like that:
SYMMETRIZED ATOMIC ORBITALS (SAOS) EXPRESSED IN TERMS OF AOS
representation a contains 1 *149 basis functions
cumulative within current atom shell type coefficient
SAO-index symmetry species
1 1 1 c 1 s 1.000000
2 2 1 c 2 s 1.000000
3 3 1 c 3 s 1.000000
4 4 1 c 4 s 1.000000
5 5 1 c 5 s 1.000000
6 6 1 c 1 px 1.000000
7 7 1 c 1 py 1.000000
8 8 1 c 1 pz 1.000000
9 9 1 c 2 px 1.000000
10 10 1 c 2 py 1.000000
11 11 1 c 2 pz 1.000000
12 12 1 c 3 px 1.000000
13 13 1 c 3 py 1.000000
14 14 1 c 3 pz 1.000000
15 15 1 c 1 d0 1.000000
16 16 1 c 1 d1a 1.000000
17 17 1 c 1 d1b 1.000000
18 18 1 c 1 d2a 1.000000
19 19 1 c 1 d2b 1.000000
20 20 2 n 1 s 1.000000
21 21 2 n 2 s 1.000000
22 22 2 n 3 s 1.000000
and so on. The d0, d1a, etc. terms (and higher ones if present) are described at the end of the file, e.g.:
d0 = (-xx-yy+2zz)/sqrt(12)
d1a = xz
d1b = yz
d2a = xy
d2b = (xx-yy)/2
Then you can identify which number in each molecular orbital belongs to the AO you are interested in.
Regards,
Uwe