Visualizing NTOs in addition to canonical orbitals

IQmol has this nice feature for the .fchk files of TDDFT calculations where you can visualize the NTOs in addition to the canonical orbitals. Is it / could it be possible to do this with Avogadro?

TDDFT_H2O.fchk (15.4 KB)

It’s possible - I can see things like this in the fchk file:

Alpha NTO coefficients                     R   N=          28
 -1.59365725E-13  7.18809215E-13 -6.07318111E-01  9.88355909E-17  7.87324239E-13

And I can see that there are three transitions in that fchk .. but I’d need to know a bit about how Q-Chem stores the NTO coefficients.

I can try to figure it out later this week.

Alright I think this is how it goes with the NTOs. I’m using a simpler example to figure it out: Ne in a Def2-SVP basis without the d-functions.

$basis
Ne     0
S   5   1.00
   3598.9736625             -0.53259297003D-02
    541.32073112            -0.39817417969D-01
    122.90450062            -0.17914358188
     34.216617022           -0.46893582977
     10.650584124           -0.44782537577
S   1   1.00
      1.3545953960           1.0000000
S   1   1.00
      0.41919362639          1.0000000
P   3   1.00
     28.424053785           -0.46031944795D-01
      6.2822510953          -0.23993183041
      1.6978715079          -0.50871724964
P   1   1.00
      0.43300700172          1.0000000
****
$end

There’s a total of 9 basis functions: (1s, 2s, 3s, 2p_x, 2p_y, 2p_z, 3p_x, 3p_y, 3p_z). The “Alpha NTO coefficients” store, well, the NTOs in the same way that the “Alpha MO coefficients” stores the MOs. So, for example, here

Number of independent functions            I                9
Alpha MO coefficients                      R   N=          81
  9.89929317E-01 -3.23964495E-02  1.04041152E-02  1.40784396E-15  2.91849925E-16
 -1.40076475E-16 -3.49828678E-17 -2.01783173E-16  3.06879257E-17  3.21130421E-01
  6.40255702E-01  4.64017909E-01 -2.49526107E-16  3.29899223E-16 -1.94940559E-16
  2.12500234E-16 -1.78535702E-16  9.85801974E-17  3.21322835E-17  4.63777649E-17
  7.87473794E-17 -2.46384391E-16 -2.17200672E-18  6.96396188E-01  1.01074833E-16
 -4.31934535E-18 -4.55514279E-01  5.26019069E-16  5.61386782E-16  3.93779381E-16
  6.96396188E-01  5.89072509E-16 -1.20851592E-16 -4.55514279E-01  1.04653200E-16
  1.99353559E-17  5.45680610E-17 -1.30656818E-16 -5.91411744E-17 -2.80768129E-16
 -6.96396188E-01  2.90110295E-18 -3.07121653E-16  4.55514279E-01  3.39576746E-18
 -3.29074047E-01 -1.60950031E+00  1.57451026E+00 -2.24612639E-16  7.65878350E-16
  1.60601782E-17 -1.98623864E-16  9.06692893E-16 -1.18720261E-17 -4.33036677E-18
 -5.41080747E-18 -6.15206897E-18 -3.24653900E-17  2.91680260E-18  9.06742105E-01
  1.43223382E-17  1.01203706E-17  1.04864467E+00  9.38043456E-17  3.30790974E-16
 -2.81221566E-16  9.06742105E-01  2.30891270E-15 -4.08715865E-17  1.04864467E+00
  2.05274666E-15  3.85822203E-18  2.79377773E-16  1.37481065E-15 -1.36553825E-15
  2.98326830E-15 -9.06742105E-01 -2.51900198E-19  4.06824906E-15 -1.04864467E+00
 -6.69536139E-18

the outer loop runs to the MOs (9 in total) and the inner loop runs through the basis functions. Similarly, here,

Alpha NTO coefficients                     R   N=          72
  8.21449756E-02 -1.39328275E-04  2.66760990E-03 -9.16669038E-03  6.56641092E-15
  6.94001644E-01  5.99595235E-03 -4.30801699E-15 -4.53948002E-01  1.00080444E+00
 -1.69749099E-03  3.25005371E-02  7.52392121E-04  9.57645021E-17 -5.69629251E-02
 -4.92141342E-04 -7.06977759E-17  3.72595746E-02  2.73363279E-01  6.41072534E-01
  4.62987542E-01  6.26057226E-16  1.13722488E-16  1.48466376E-16 -4.02694637E-16
 -3.66556381E-17 -1.23092155E-16 -3.62010895E-17 -3.16427476E-16 -1.93695212E-16
 -1.26315060E-06 -6.96396188E-01 -1.66842629E-08  8.26229587E-07  4.55514279E-01
  1.09132131E-08 -3.29074047E-01 -1.60950031E+00  1.57451026E+00 -3.85865445E-16
 -3.07539910E-15  5.10880815E-17 -3.85112275E-16 -3.53573356E-15  2.86376445E-17
  1.67345074E-15  8.19321816E-15 -8.03571572E-15 -1.64468424E-06 -9.06742105E-01
 -2.17237313E-08 -1.90207265E-06 -1.04864467E+00 -2.51234335E-08  3.53932326E-17
  4.53221048E-17 -2.11379602E-18  9.06662822E-01 -1.64482770E-06  1.19905165E-02
  1.04855298E+00 -1.90223856E-06  1.38669983E-02 -3.96831805E-18 -1.94869176E-18
 -1.00983155E-17 -1.19905165E-02  2.70352791E-11  9.06662822E-01 -1.38669983E-02
  3.12662384E-11  1.04855298E+00

the outer loop runs through the NTOs and the inner loop runs through the basis functions. Note that there are only 8 NTOs printed so the size of the array is 9 x 8 = 72. The occupancy of the NTOs is then given in the following section:

Alpha NTO amplitudes                       R   N=           8
  0.00000000E+00 -2.19285177E-11 -1.05323865E-08 -2.46943282E-02 -9.99695049E-01
  9.99695049E-01  2.46943282E-02  1.05323865E-0

Let me know if this helps!

Here are the files I am using for this example:

Ne.fchk (22.8 KB)

Ne.out (17.9 KB)

It helps. I have to plan a bit, because a bunch of the basis set code makes assumptions about the size of the MO matrix. But this will be useful for also considering multi-reference calculations, etc.