"NaN" error when using SAPT charge transfer methodology

Hi everyone,

I am having trouble with the charge transfer methodology of SAPT implemented in Psi4.

I did calculations with an external decontracted basis set generated by ORCA4 (as discussed here) at SAPT0/TZVP. SAPT0 trends beautifully agree with EDA calculations performed with ADF 2016 (ZORA-BP86-D3/TZ2P).

But I would like to use the charge transfer methodology and it has just worked for one compound so far.
I keep getting “not a number” issues.

This is a typical input:

memory 29 gb

molecule dimer {
 0 1
 Te         0.00000       -0.00000        3.05800
 C          1.47926        1.51846        3.26142
 H          1.29403        2.28304        2.51234
 H          2.44452        1.05067        3.08494
 H          1.43690        1.92765        4.26757
 C         -1.66964        1.30621        3.26157
 H         -1.58882        2.08868        2.51242
 H         -1.68241        1.71746        4.26769
 H         -2.56342        0.71309        3.08529
 --
 0 1
 I          0.00000        0.00000        0.00000
 Cl        -0.01030        0.15341       -2.65615
 units angstrom
}

set globals {
 maxiter 500
 relativistic DKH
 df_scf_guess false
 scf_type direct
# guess gwh
}

basis {
 assign oldDKHtzvp
}

df_basis_sapt {
 assign oldDKHtzvp-ri
}

energy('sapt0-ct')

And the corresponding output (rather long, some parts suppressed):

...
  //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//
  //        SAPT Charge Transfer       //
  //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<//


  //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//
  //          Dimer Basis SAPT         //
  //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<//


*** tstart() called on tarsus.cdi.unifran.br
*** at Thu Apr 13 08:54:39 2017

        SAPT0
    Ed Hohenstein
     6 June 2009

      Orbital Information
  --------------------------
    NSO        =       390
    NMO        =       390
    NRI        =      1992
    NOCC A     =        35
    NOCC B     =        35
    FOCC A     =         0
    FOCC B     =         0
    NVIR A     =       355
    NVIR B     =       355

    Elst10,r            =    -0.071295970477 [Eh]
    Exch10              =     0.101705542455 [Eh]
    Exch10 (S^2)        =     0.095167728553 [Eh]

    Iter     Energy [mEh]          dE [mEh]         Residual      Time [s]
       1    -339.31922137     339.319221372      86.019096848             1
       2    -428.41275195      89.093530581      27.015253835             2
...
EVERYTHING GOES FINE AT THIS POINT
...
    CHF Iterations converged
...
  Total HF                        -22.66371892 [mEh]     -14.22169893 [kcal/mol]     -59.50359402 [kJ/mol]
  Total SAPT0                     -38.92147546 [mEh]     -24.42359561 [kcal/mol]    -102.18833383 [kJ/mol]

  Special recipe for scaled SAPT0 (see Manual):
    Electrostatics sSAPT0         -71.29597048 [mEh]     -44.73889879 [kcal/mol]    -187.18757049 [kJ/mol]
    Exchange sSAPT0               101.70554245 [mEh]      63.82119409 [kcal/mol]     267.02790171     [kJ/mol]
    Induction sSAPT0               35.08726412 [mEh]      22.01759156 [kcal/mol]      92.12161194 [kJ/mol]
    Dispersion sSAPT0             -15.12940925 [mEh]      -9.49384804 [kcal/mol]     -39.72226399 [kJ/mol]
  Total sSAPT0                     50.36742684 [mEh]      31.60603883 [kcal/mol]     132.23967917 [kJ/mol]
  --------------------------------------------------------------------------------------------------------

*** tstop() called on tarsus.cdi.unifran.br at Thu Apr 13 08:56:14 2017
Module time:
        user time   =     633.67 seconds =      10.56 minutes
        system time =      37.93 seconds =       0.63 minutes
        total time  =         95 seconds =       1.58 minutes
Total time:
        user time   =    4432.58 seconds =      73.88 minutes
        system time =      48.71 seconds =       0.81 minutes
        total time  =        578 seconds =       9.63 minutes

  //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//
  //         Monomer Basis SAPT        //
  //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<//


*** tstart() called on tarsus.cdi.unifran.br
*** at Thu Apr 13 08:56:14 2017

        SAPT0
    Ed Hohenstein
     6 June 2009

      Orbital Information
  --------------------------
    NSO        =       390
    NSO A      =       230
    NSO B      =       160
    NMO        =       390
    NMO A      =       230
    NMO B      =       160
    NRI        =      1992
    NOCC A     =        35
    NOCC B     =        35
    FOCC A     =         0
    FOCC B     =         0
    NVIR A     =       195
    NVIR B     =       125

    Elst10,r            =               -nan [Eh]
    Exch10              =               -nan [Eh]
    Exch10 (S^2)        =               -nan [Eh]

    Iter     Energy [mEh]          dE [mEh]         Residual      Time [s]
       1             -nan              -nan              -nan             0

    CHF Iterations did not converge
...
EVERY NUMBER NOW IS A NAN
...
  Total HF                        -23.85721138 [mEh]     -14.97062679 [kcal/mol]     -62.63710849 [kJ/mol]
  Total SAPT0                             -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]

  Special recipe for scaled SAPT0 (see Manual):
    Electrostatics sSAPT0                 -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]
    Exchange sSAPT0                       -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]
    Induction sSAPT0                      -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]
    Dispersion sSAPT0                     -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]
  Total sSAPT0                            -nan [mEh]             -nan [kcal/mol]             -nan [kJ/mol]
  --------------------------------------------------------------------------------------------------------

*** tstop() called on tarsus.cdi.unifran.br at Thu Apr 13 08:56:46 2017
Module time:
        user time   =     232.98 seconds =       3.88 minutes
        system time =       9.27 seconds =       0.15 minutes
        total time  =         32 seconds =       0.53 minutes
Total time:
        user time   =    4665.56 seconds =      77.76 minutes
        system time =      57.98 seconds =       0.97 minutes
        total time  =        610 seconds =      10.17 minutes


    SAPT Charge Transfer Analysis
  ------------------------------------------------------------------------------------------------
    SAPT Induction (Dimer Basis)      -56.1102 [mEh]     -35.2097 [kcal/mol]    -147.3174 [kJ/mol]
    SAPT Induction (Monomer Basis)         nan [mEh]          nan [kcal/mol]          nan [kJ/mol]
    SAPT Charge Transfer                   nan [mEh]          nan [kcal/mol]          nan [kJ/mol]


*** Psi4 exiting successfully. Buy a developer a beer!

But the following input (pretty much the same!) works (it gives me a -30.2 kcal/mol charge transfer term):

memory 29 gb

molecule dimer {
 -1 1
 I          0.000          0.00000        3.069
 --
 0 1
 I          0.00000        0.00000        0.00000
 I          0.000          0.0000        -3.069
 units angstrom
}

set globals {
 maxiter 500
 relativistic DKH
 df_scf_guess false
 scf_type direct
 guess gwh
}

basis {
 assign oldDKHtzvp
}

df_basis_sapt {
 assign oldDKHtzvp-ri
}

energy('sapt0-ct')

I don’t believe it has something to do with either the initial guess (I have tested both the default, which sometimes gives me convergence problems for the dimer calculation, and gwh, which works fine overall) or the scf_type keyword (I have tested both pk, which sometimes gives me storage problems, and direct).
And since the basis set is the same, I doubt it has something to it too.

It would be very nice if someone could give me advice on this.
Thanks in advance!

All the best,
Felipe

Just to close this thread: it has been solved by the use of a tip provided by @dgasmith:

Looks like a orientation issue. Add

no_com
no_reorient

to your molecule specification. Ill make a patch so this is fixed in Psi4 1.1.

Felipe