Pipek-Mezey localization output is not documented


Clicked A Few Times
Dear developers and users,

I looks like the output format of orbital localization http://nwchemgit.github.io/index.php/Release66:Hartree-Fock_Theory_for_Molecules#Orbital_Loc... (i.e. a unitary transformation matrix) is not documented anywhere.


                         Pipek-Mezey orbital localization
                         --------------------------------

           iter   Max. delocal   Mean delocal    Converge
           ----   ------------   ------------   ---------
              1  47.4681514547  25.3828742243    0.00D+00
              2  13.6804468413   3.0384186919    7.85D-01
              3   1.5128516708   1.0462692341    7.70D-01
              4   0.9974416179   0.9966413655    4.06D-01
              5   0.9965545451   0.9965509097    1.79D-02
              6   0.9965545444   0.9965509095    2.99D-05
              7   0.9965545444   0.9965509095    5.27D-09

    1    47( 1.00)
    2    34( 1.00)
    3    55( 1.00)
    4    45( 1.00)
    .
    .
    .
  118    59( 0.42)     2( 0.42)    27( 0.03)    47( 0.02)    39( 0.02)     9( 0.02)    35( 0.01)    10( 0.01)    46( 0.01)    17( 0.01)
    .
    .
    .


My wild guess would be that the first number is the index of the loclaized orbital. Then comes a list of pairs, where first element is the index of the global MO and the second is its coefficient. Judging by the output it looks like up to 10 MO are reported for each localized orbital.

Is my interpretation of the output correct?

Clicked A Few Times
Just realized that this can't be right, the subsequent numbers probably refer to single AOs.

Clicked A Few Times
Found a similar topic http://nwchemgit.github.io/Special_AWCforum/st/id751/extract_localized_orbitals.ht... which says


Quote:

The localized molecular orbitals are written to the .movecs file, and the coefficients can be extracted from this file. These are regular MOs so yes they are expanded into AOs.


It would be better if this information is mentioned in relevant parts of the documentation.

Clicked A Few Times
As a follow up, in what format `mov2asc` outputs data? I have something along the lines

# This is an NWChem movecs file translated by mov2asc
6bc69ba20f58c312c81c9a32423d2e76
6580a8890d88cfbcb5d07cf1db73129e
                                
scf                 
Tue Aug 30 17:49:38 2016  
scf                 
        16
C60 Hartree-Fock
         8
ao basis
         1
       300
       300
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01

    [same-type-output-no-breaks]

   -0.166783850270984E-03   -0.979205468297886E-04   -0.239070322689848E-03
   -0.121300434704386E-03   -0.538255960173556E-04    0.214585577779526E-03
   -0.532862385098221E-04    0.382973597083172E-04    0.892054918204168E-05
    0.210214903651678E-04   -0.764091175900285E-04    0.457033321624615E-03
   -0.158519671014606E-03   -0.104367260306628E-03    0.654598517213629E-02
   -0.216118132216848E-01   -0.467942884621228E-01    0.799322237055428E-01
   -0.515112186749453E-02   -0.219154170772508E-02   -0.735279112838251E-02
   -0.211955770460815E-02    0.209713735715346E-02    0.527219847662861E-03
   -0.224420203192950E+04    0.837570677639371E+04


i.e. 3 columns, first two 30201 rows each, last one 30200 rows.


Also how do i know if this output corresponds to general MO or their localized versions from Pipek-Mezey approach?

Clicked A Few Times
With the help of EgorTrushin (thanks a lot!) and by comparing to the terminal output, the format of mov2asc is as follows:

Let N be the number of basis functions.
First, N occupation numbers, up to 3 in each line (supposedly if N/3 is not integer, then the last line with occupation numbers will not be full).
Then N eigenvalues.
Finally N eigenvectors each of size N (again, not sure if each eigenvector starts from a new line).
Last two values are the total SCF energy and nuclear repulsion energy.


ASCII part of .movecs:
    0.200000000000000E+01    0.200000000000000E+01    0.200000000000000E+01
    ...
    0.000000000000000E+00    0.000000000000000E+00    0.000000000000000E+00
   -0.110544313656806E+02   -0.110544290828113E+02   -0.110544284753984E+02
   ...
   0.117849117291811E+01    0.117849717833092E+01    0.117850221343180E+01
   0.912202618125009E-07   -0.232907191786075E-06   -0.109972836618029E-05
   ...
   -0.211955770460815E-02    0.209713735715346E-02    0.527219847662861E-03
   -0.224420203192950E+04    0.837570677639371E+04



Here is a relevant part of terminal output
...
      Final RHF  results 
       ------------------ 

         Total SCF energy =  -2244.202031929501
      One-electron energy = -19757.338765148339
      Two-electron energy =   9137.429956825124
 Nuclear repulsion energy =   8375.706776393714
...

             Final eigenvalues
             -----------------

              1      
    1  -11.0544
    2  -11.0544
...
    298    1.1785
    299    1.1785
    300    1.1785
...
                                 Final MO vectors
                                 ----------------


 global array: scf_init: MOs[1:300,1:300],  handle: -1000 

            1           2           3           4           5           6  
       ----------- ----------- ----------- ----------- ----------- -----------
   1      -0.02529     0.07737    -0.03605    -0.08453    -0.05837     0.06251
   ...



          295         296         297         298         299         300  
       ----------- ----------- ----------- ----------- ----------- -----------
   ...
 299      -0.19062     0.04948     0.05697     0.15658     0.08765     0.13066
 300       0.24404     0.00724    -0.06867    -0.19289    -0.17304    -0.08865


By comparing the terminal output of first MO to that in the .movecs, it appears that .movecs contains localized molecular orbitals (i.e. after applying unitary transformation).


I think this info should be added to README of mov2asc to save users from detective work.


Forum >> NWChem's corner >> General Topics