DFT SCF Convergence Issue

Hello!

I was recently running an Na+ and water dimer calculation at the PBE0/aug-cc-pVTZ level with the Na+ as a ghost atom. The SCF procedure (DF-RKS) does not converge in 100 iterations. Strangely, when the Na+ and water dimer is close (equilibrium distance) the SCF converges, but as I increase the distance between Na+ and water, the SCF stops converging. I was wondering if anyone could help with this issue. I’ve attached the input and output files below. Thank you!

Input and output:


basis {
  assign aug-cc-pvtz
}

molecule H2O {
  no_reorient
  no_com
  units bohr
   0  1
   O               0.00000000       0.00000000       0.00000000
   H              -1.11259885       1.43458170       0.00000000
   H              -1.11259885      -1.43458170       0.00000000
   @Na             8.38998655       0.00000000       0.00000000
}
set {
  ints_tolerance 1.0E-10
  s_tolerance    1.0E-07
  dft_grac_shift        0.129493
}

energy, wfn = energy('PBE0', return_wfn=True)

fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write('NaH2O_A.fchk')

    -----------------------------------------------------------------------
          Psi4: An Open-Source Ab Initio Electronic Structure Package
                               Psi4 1.4a1 prerelease

                         Git: Rev {} 9c877d0 


    D. G. A. Smith, L. A. Burns, A. C. Simmonett, R. M. Parrish,
    M. C. Schieber, R. Galvelis, P. Kraus, H. Kruse, R. Di Remigio,
    A. Alenaizan, A. M. James, S. Lehtola, J. P. Misiewicz, M. Scheurer,
    R. A. Shaw, J. B. Schriber, Y. Xie, Z. L. Glick, D. A. Sirianni,
    J. S. O'Brien, J. M. Waldrop, A. Kumar, E. G. Hohenstein,
    B. P. Pritchard, B. R. Brooks, H. F. Schaefer III, A. Yu. Sokolov,
    K. Patkowski, A. E. DePrince III, U. Bozkaya, R. A. King,
    F. A. Evangelista, J. M. Turney, T. D. Crawford, C. D. Sherrill,
    J. Chem. Phys. 152(18) 184108 (2020). https://doi.org/10.1063/5.0006002

                            Additional Code Authors
    E. T. Seidl, C. L. Janssen, E. F. Valeev, M. L. Leininger,
    J. F. Gonthier, R. M. Richard, H. R. McAlexander, M. Saitow, X. Wang,
    P. Verma, and M. H. Lechner

             Previous Authors, Complete List of Code Contributors,
                       and Citations for Specific Modules
    https://github.com/psi4/psi4/blob/master/codemeta.json
    https://github.com/psi4/psi4/graphs/contributors
    http://psicode.org/psi4manual/master/introduction.html#citing-psifour

    -----------------------------------------------------------------------


    Psi4 started on: Sunday, 26 December 2021 07:29PM

    Process ID: 305680
    Host:       moses-razer
    PSIDATADIR: /usr/local/psi4/share/psi4
    Memory:     500.0 MiB
    Threads:    1
    
  ==> Input File <==

--------------------------------------------------------------------------
memory 8 GB

basis {
  assign aug-cc-pvtz
}

molecule H2O {
  no_reorient
  no_com
  units bohr
   0  1
   O               0.00000000       0.00000000       0.00000000
   H              -1.11259885       1.43458170       0.00000000
   H              -1.11259885      -1.43458170       0.00000000
   @Na             8.38998655       0.00000000       0.00000000
}
set {
  ints_tolerance 1.0E-10
  s_tolerance    1.0E-07
  dft_grac_shift        0.129493
}

energy, wfn = energy('PBE0', return_wfn=True)

fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write('NaH2O_A.fchk')
--------------------------------------------------------------------------

  Memory set to   7.451 GiB by Python driver.

Scratch directory: /scratch/

*** tstart() called on moses-razer
*** at Sun Dec 26 19:29:06 2021

   => Loading Basis Set <=

    Name: ANONYMOUS5312A9A5
    Role: ORBITAL
    Keyword: BASIS
    atoms 1   entry O          line   331 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/aug-cc-pvtz.gbs 
    atoms 2-3 entry H          line    40 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/aug-cc-pvtz.gbs 
    atoms 4   entry NA         line   469 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/aug-cc-pvtz.gbs 


         ---------------------------------------------------------
                                   SCF
               by Justin Turney, Rob Parrish, Andy Simmonett
                          and Daniel G. A. Smith
                              RKS Reference
                        1 Threads,   7629 MiB Core
         ---------------------------------------------------------

  ==> Geometry <==

    Molecular point group: c2v
    Full point group: C2v

    Geometry (in Bohr), charge = 0, multiplicity = 1:

       Center              X                  Y                   Z               Mass       
    ------------   -----------------  -----------------  -----------------  -----------------
         O            0.000000000000     0.000000000000     0.000000000000    15.994914619570
         H           -1.112598850000     1.434581700000     0.000000000000     1.007825032230
         H           -1.112598850000    -1.434581700000     0.000000000000     1.007825032230
      Gh(NA)          8.389986550000     0.000000000000     0.000000000000    22.989769282000

  Running in c2v symmetry.

  Rotational constants: A =     14.51204  B =      0.03714  C =      0.03705 [cm^-1]
  Rotational constants: A = 435060.06858  B =   1113.49610  C =   1110.65349 [MHz]
  Nuclear repulsion =    9.161719190563474

  Charge       = 0
  Multiplicity = 1
  Electrons    = 10
  Nalpha       = 5
  Nbeta        = 5

  ==> Algorithm <==

  SCF Algorithm Type is DF.
  DIIS enabled.
  MOM disabled.
  Fractional occupation disabled.
  Guess Type is SAD.
  Energy threshold   = 1.00e-06
  Density threshold  = 1.00e-06
  Integral threshold = 1.00e-10

  ==> Primary Basis <==

  Basis Set: ANONYMOUS5312A9A5
    Blend: AUG-CC-PVTZ
    Number of shells: 48
    Number of basis function: 142
    Number of Cartesian functions: 164
    Spherical Harmonics?: true
    Max angular momentum: 3

  ==> DFT Potential <==

   => Composite Functional: PBE0 <= 

    PBE0 Hyb-GGA Exchange-Correlation Functional

    C. Adamo and V. Barone, J. Chem. Phys. 110, 6158 (1999)
    M. Ernzerhof and G. E. Scuseria, J. Chem. Phys. 110, 5029 (1999)

    Deriv               =              1
    GGA                 =           TRUE
    Meta                =          FALSE

    Exchange Hybrid     =           TRUE
    MP2 Hybrid          =          FALSE

   => Exchange Functionals <=

    0.7500   Perdew, Burke & Ernzerhof

   => Exact (HF) Exchange <=

    0.2500               HF 

   => Correlation Functionals <=

    1.0000   Perdew, Burke & Ernzerhof

   => Asymptotic Correction <=

    X Functional        =    XC_GGA_X_LB
    C Functional        =   XC_LDA_C_VWN
    Bulk Shift          =       0.129493
    GRAC Alpha          =       0.500000
    GRAC Beta           =      40.000000

   => Molecular Quadrature <=

    Radial Scheme          =       TREUTLER
    Pruning Scheme         =           NONE
    Nuclear Scheme         =       TREUTLER

    BS radius alpha        =              1
    Pruning alpha          =              1
    Radial Points          =             75
    Spherical Points       =            302
    Total Points           =          89025
    Total Blocks           =            768
    Max Points             =            256
    Max Functions          =            142
    Weights Tolerance      =       1.00E-15

   => Loading Basis Set <=

    Name: (ANONYMOUS5312A9A5 AUX)
    Role: JKFIT
    Keyword: DF_BASIS_SCF
    atoms 1   entry O          line   286 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/aug-cc-pvtz-jkfit.gbs 
    atoms 2-3 entry H          line    70 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/aug-cc-pvtz-jkfit.gbs 
    atoms 4   entry NA         line   498 file /home/kchung25/anaconda3/envs/p4env/share/psi4/basis/def2-universal-jkfit.gbs 

  ==> Integral Setup <==

  DFHelper Memory: AOs need 0.051 GiB; user supplied 5.260 GiB. Using in-core AOs.

  ==> MemDFJK: Density-Fitted J/K Matrices <==

    J tasked:                   Yes
    K tasked:                   Yes
    wK tasked:                   No
    OpenMP threads:               1
    Memory [MiB]:              5385
    Algorithm:                 Core
    Schwarz Cutoff:           1E-10
    Mask sparsity (%):       0.2777
    Fitting Condition:        1E-10

   => Auxiliary Basis Set <=

  Basis Set: (ANONYMOUS5312A9A5 AUX)
    Blend: AUG-CC-PVTZ-JKFIT + DEF2-UNIVERSAL-JKFIT
    Number of shells: 92
    Number of basis function: 308
    Number of Cartesian functions: 378
    Spherical Harmonics?: true
    Max angular momentum: 4

  Cached 100.0% of DFT collocation blocks in 0.328 [GiB].

  Minimum eigenvalue in the overlap matrix is 2.8509124349E-04.
  Reciprocal condition number of the overlap matrix is 4.4202777885E-05.
    Using symmetric orthogonalization.

  ==> Pre-Iterations <==

  SCF Guess: Superposition of Atomic Densities via on-the-fly atomic UHF (no occupation information).

   -------------------------
    Irrep   Nso     Nmo    
   -------------------------
     A1        56      56 
     A2        17      17 
     B1        39      39 
     B2        30      30 
   -------------------------
    Total     142     142
   -------------------------

  ==> Iterations <==

                           Total Energy        Delta E     RMS |[F,P]|

   @DF-RKS iter SAD:   -75.97620479579365   -7.59762e+01   0.00000e+00 
   @DF-RKS iter   1:     5.65092262388474    8.16271e+01   1.83142e-02 DIIS
   @DF-RKS iter   2:   -60.84054872545652   -6.64915e+01   1.08135e-01 DIIS
   @DF-RKS iter   3:   -61.47994738951796   -6.39399e-01   1.06037e-01 DIIS
   @DF-RKS iter   4:   -61.94478351763251   -4.64836e-01   1.04519e-01 DIIS
   @DF-RKS iter   5:   -61.97521287500297   -3.04294e-02   1.04418e-01 DIIS
   @DF-RKS iter   6:   -61.98703003724567   -1.18172e-02   1.04378e-01 DIIS
   @DF-RKS iter   7:   -61.99633324938624   -9.30321e-03   1.04347e-01 DIIS
   @DF-RKS iter   8:   -61.99543762580062    8.95624e-04   1.04350e-01 DIIS
   @DF-RKS iter   9:   -61.99525354217147    1.84084e-04   1.04351e-01 DIIS
   @DF-RKS iter  10:   -61.99593808905948   -6.84547e-04   1.04349e-01 DIIS
   @DF-RKS iter  11:   -62.03283023560814   -3.68921e-02   1.04225e-01 DIIS
   @DF-RKS iter  12:   -62.05885038138891   -2.60201e-02   1.04143e-01 DIIS
   @DF-RKS iter  13:   -62.02453113237811    3.43192e-02   1.04257e-01 DIIS
   @DF-RKS iter  14:   -62.02447199478910    5.91376e-05   1.04256e-01 DIIS
   @DF-RKS iter  15:   -62.06180209135522   -3.73301e-02   1.04132e-01 DIIS
   @DF-RKS iter  16:   -62.05736617460333    4.43592e-03   1.04146e-01 DIIS
   @DF-RKS iter  17:   -62.05852107407755   -1.15490e-03   1.04143e-01 DIIS
   @DF-RKS iter  18:   -62.09450975212263   -3.59887e-02   1.04033e-01 DIIS
   @DF-RKS iter  19:   -62.11702903435923   -2.25193e-02   1.03946e-01 DIIS
   @DF-RKS iter  20:   -62.10729098497010    9.73805e-03   1.03977e-01 DIIS
   @DF-RKS iter  21:   -62.08902790451533    1.82631e-02   1.04041e-01 DIIS
   @DF-RKS iter  22:   -62.09714953945048   -8.12163e-03   1.04011e-01 DIIS
   @DF-RKS iter  23:   -62.08684720506605    1.03023e-02   1.04049e-01 DIIS
   @DF-RKS iter  24:   -62.08533808190586    1.50912e-03   1.04053e-01 DIIS
   @DF-RKS iter  25:   -62.09396388652315   -8.62580e-03   1.04023e-01 DIIS
   @DF-RKS iter  26:   -62.09138586222104    2.57802e-03   1.04030e-01 DIIS
   @DF-RKS iter  27:   -62.06532692096742    2.60589e-02   1.04111e-01 DIIS
   @DF-RKS iter  28:   -62.06765039747845   -2.32348e-03   1.04117e-01 DIIS
   @DF-RKS iter  29:   -62.05462543989105    1.30250e-02   1.04146e-01 DIIS
   @DF-RKS iter  30:   -62.07503072642499   -2.04053e-02   1.04093e-01 DIIS
   @DF-RKS iter  31:   -62.05027070606336    2.47600e-02   1.04161e-01 DIIS
   @DF-RKS iter  32:   -62.08215463114397   -3.18839e-02   1.04069e-01 DIIS
   @DF-RKS iter  33:   -62.04576881242298    3.63858e-02   1.04177e-01 DIIS
   @DF-RKS iter  34:   -62.09191422102469   -4.61454e-02   1.04037e-01 DIIS
   @DF-RKS iter  35:   -62.04301968852170    4.88945e-02   1.04189e-01 DIIS
   @DF-RKS iter  36:   -62.07132228787025   -2.83026e-02   1.04098e-01 DIIS
   @DF-RKS iter  37:   -62.05716477401588    1.41575e-02   1.04144e-01 DIIS
   @DF-RKS iter  38:   -62.06796922682510   -1.08045e-02   1.04109e-01 DIIS
   @DF-RKS iter  39:   -62.06251062611473    5.45860e-03   1.04126e-01 DIIS
   @DF-RKS iter  40:   -62.06551246327705   -3.00184e-03   1.04117e-01 DIIS
   @DF-RKS iter  41:   -62.06437648564841    1.13598e-03   1.04120e-01 DIIS
   @DF-RKS iter  42:   -62.06454814189595   -1.71656e-04   1.04120e-01 DIIS
   @DF-RKS iter  43:   -62.06488577567828   -3.37634e-04   1.04119e-01 DIIS
   @DF-RKS iter  44:   -62.06436316533912    5.22610e-04   1.04120e-01 DIIS
   @DF-RKS iter  45:   -62.06490507882803   -5.41913e-04   1.04119e-01 DIIS
   @DF-RKS iter  46:   -62.06441309857446    4.91980e-04   1.04120e-01 DIIS
   @DF-RKS iter  47:   -62.06483266050017   -4.19562e-04   1.04119e-01 DIIS
   @DF-RKS iter  48:   -62.06448280576963    3.49855e-04   1.04120e-01 DIIS
   @DF-RKS iter  49:   -62.06477662749186   -2.93822e-04   1.04119e-01 DIIS
   @DF-RKS iter  50:   -62.06452416964802    2.52458e-04   1.04120e-01 DIIS
   @DF-RKS iter  51:   -62.06474869203950   -2.24522e-04   1.04119e-01 DIIS
   @DF-RKS iter  52:   -62.06454235243921    2.06340e-04   1.04120e-01 DIIS
   @DF-RKS iter  53:   -62.06473740746520   -1.95055e-04   1.04119e-01 DIIS
   @DF-RKS iter  54:   -62.06454951758124    1.87890e-04   1.04120e-01 DIIS
   @DF-RKS iter  55:   -62.06473266657411   -1.83149e-04   1.04119e-01 DIIS
   @DF-RKS iter  56:   -62.06455313651009    1.79530e-04   1.04120e-01 DIIS
   @DF-RKS iter  57:   -62.06472958729570   -1.76451e-04   1.04119e-01 DIIS
   @DF-RKS iter  58:   -62.06455615558124    1.73432e-04   1.04120e-01 DIIS
   @DF-RKS iter  59:   -62.06472656882020   -1.70413e-04   1.04119e-01 DIIS
   @DF-RKS iter  60:   -62.06455931008779    1.67259e-04   1.04120e-01 DIIS
   @DF-RKS iter  61:   -62.06472333789061   -1.64028e-04   1.04119e-01 DIIS
   @DF-RKS iter  62:   -62.06456261939551    1.60718e-04   1.04120e-01 DIIS
   @DF-RKS iter  63:   -62.06472013193836   -1.57513e-04   1.04119e-01 DIIS
   @DF-RKS iter  64:   -62.06456579055730    1.54341e-04   1.04120e-01 DIIS
   @DF-RKS iter  65:   -62.06471706544318   -1.51275e-04   1.04119e-01 DIIS
   @DF-RKS iter  66:   -62.06456885725034    1.48208e-04   1.04120e-01 DIIS
   @DF-RKS iter  67:   -62.06471408208424   -1.45225e-04   1.04119e-01 DIIS
   @DF-RKS iter  68:   -62.06457180998545    1.42272e-04   1.04120e-01 DIIS
   @DF-RKS iter  69:   -62.06471124475806   -1.39435e-04   1.04119e-01 DIIS
   @DF-RKS iter  70:   -62.06457461133655    1.36633e-04   1.04120e-01 DIIS
   @DF-RKS iter  71:   -62.06470855749651   -1.33946e-04   1.04119e-01 DIIS
   @DF-RKS iter  72:   -62.06457727060224    1.31287e-04   1.04120e-01 DIIS
   @DF-RKS iter  73:   -62.06470596957332   -1.28699e-04   1.04119e-01 DIIS
   @DF-RKS iter  74:   -62.06457980730441    1.26162e-04   1.04120e-01 DIIS
   @DF-RKS iter  75:   -62.06470355228291   -1.23745e-04   1.04119e-01 DIIS
   @DF-RKS iter  76:   -62.06458220013032    1.21352e-04   1.04120e-01 DIIS
   @DF-RKS iter  77:   -62.06470120723195   -1.19007e-04   1.04119e-01 DIIS
   @DF-RKS iter  78:   -62.06458456723347    1.16640e-04   1.04120e-01 DIIS
   @DF-RKS iter  79:   -62.06469891366358   -1.14346e-04   1.04119e-01 DIIS
   @DF-RKS iter  80:   -62.06458683087752    1.12083e-04   1.04120e-01 DIIS
   @DF-RKS iter  81:   -62.06469672580488   -1.09895e-04   1.04119e-01 DIIS
   @DF-RKS iter  82:   -62.06458898098231    1.07745e-04   1.04120e-01 DIIS
   @DF-RKS iter  83:   -62.06469461362907   -1.05633e-04   1.04119e-01 DIIS
   @DF-RKS iter  84:   -62.06459110898181    1.03505e-04   1.04120e-01 DIIS
   @DF-RKS iter  85:   -62.06469257654425   -1.01468e-04   1.04119e-01 DIIS
   @DF-RKS iter  86:   -62.06459308923888    9.94873e-05   1.04120e-01 DIIS
   @DF-RKS iter  87:   -62.06469064600990   -9.75568e-05   1.04119e-01 DIIS
   @DF-RKS iter  88:   -62.06459501718618    9.56288e-05   1.04120e-01 DIIS
   @DF-RKS iter  89:   -62.06468874907403   -9.37319e-05   1.04119e-01 DIIS
   @DF-RKS iter  90:   -62.06459691688129    9.18322e-05   1.04120e-01 DIIS
   @DF-RKS iter  91:   -62.06468688852454   -8.99716e-05   1.04119e-01 DIIS
   @DF-RKS iter  92:   -62.06459873474731    8.81538e-05   1.04120e-01 DIIS
   @DF-RKS iter  93:   -62.06468541070467   -8.66760e-05   1.04119e-01 DIIS
   @DF-RKS iter  94:   -62.06458853417276    9.68765e-05   1.04120e-01 DIIS
   @DF-RKS iter  95:   -62.06468744654792   -9.89124e-05   1.04119e-01 DIIS
   @DF-RKS iter  96:   -62.06459876155064    8.86850e-05   1.04120e-01 DIIS
   @DF-RKS iter  97:   -62.06468345066283   -8.46891e-05   1.04119e-01 DIIS
   @DF-RKS iter  98:   -62.06459136377997    9.20869e-05   1.04120e-01 DIIS
   @DF-RKS iter  99:   -62.06468415490521   -9.27911e-05   1.04119e-01 DIIS
   @DF-RKS iter 100:   -62.06460224860098    8.19063e-05   1.04120e-01 DIIS

PsiException: Could not converge SCF iterations in 100 iterations.

  Failed to converge.

Traceback (most recent call last):
  File "/usr/local/psi4/bin/psi4", line 337, in <module>
    exec(content)
  File "<string>", line 45, in <module>
  File "/usr/local/psi4/lib/psi4/driver/driver.py", line 576, in energy
    wfn = procedures['energy'][lowername](lowername, molecule=molecule, **kwargs)
  File "/usr/local/psi4/lib/psi4/driver/procrouting/proc.py", line 2238, in run_scf
    scf_wfn = scf_helper(name, post_scf=False, **kwargs)
  File "/usr/local/psi4/lib/psi4/driver/procrouting/proc.py", line 1528, in scf_helper
    e_scf = scf_wfn.compute_energy()
  File "/usr/local/psi4/lib/psi4/driver/procrouting/scf_proc/scf_iterator.py", line 93, in scf_compute_energy
    raise e
  File "/usr/local/psi4/lib/psi4/driver/procrouting/scf_proc/scf_iterator.py", line 86, in scf_compute_energy
    self.iterations()
  File "/usr/local/psi4/lib/psi4/driver/procrouting/scf_proc/scf_iterator.py", line 464, in scf_iterate
    raise SCFConvergenceError("""SCF iterations""", self.iteration_, self, Ediff, Dnorm)

psi4.driver.p4util.exceptions.SCFConvergenceError: Could not converge SCF iterations in 100 iterations.


Printing out the relevant lines from the Psithon --> Python processed input file:
    ""","H2O")
    core.IO.set_default_namespace("H2O")
    core.set_global_option("INTS_TOLERANCE", 1.0E-10)
    core.set_global_option("S_TOLERANCE", 1.0E-07)
    core.set_global_option("DFT_GRAC_SHIFT", 0.129493)
--> energy, wfn = energy('PBE0', return_wfn=True)
    fchk_writer = psi4.core.FCHKWriter(wfn)
    fchk_writer.write('NaH2O_A.fchk')

!-------------------------------------------------------!
!                                                       !
!  Could not converge SCF iterations in 100 iterations. !
!                                                       !
!-------------------------------------------------------!

    Psi4 stopped on: Sunday, 26 December 2021 07:30PM
    Psi4 wall time for execution: 0:01:04.79

*** Psi4 encountered an error. Buy a developer more coffee!
*** Resources and help at github.com/psi4/psi4.

I did it on linux with psi4 1.5. There is no convergence issue.

Output file:
NaH2O.txt (14.0 KB)

I also can’t reproduce the convergence issue using the current master. My first suggestion is to try upgrading to either the official 1.4 release or, better yet, to 1.5.

What operating system are you using?

For the newer version the fchk syntax has changed (with various under the hood improvements):

energy, wfn = energy('scf', return_wfn=True)
fchk(wfn,'output.fchk')

I’ve upgraded to 1.5, and it works now. Thank you guys so much for your help!