Fatal Error: A Matrix is not SPD

Hello,

I am trying to run a SAPT0 calculation on an open shell system (using v1.3).
I have come across this fatal error message during the SAPT stage of the calculation, during or after the CPKS iterations stage (the energy and wavefunction of the two monomers were solved fine). Please could someone explain the error and how I could go about resolving it?

RuntimeError:
Fatal Error: Monomer B: A Matrix is not SPD
Error occurred in file: /scratch/psilocaluser/conda-builds/psi4-multiout_1557940846948/work/psi4/src/psi4/libsapt_solver/usapt0.cc on line: 1465
The most recent 5 function calls were:

Printing out the relevant lines from the Psithon --> Python processed input file:
core.IO.set_default_namespace(“dimer”)
core.set_global_option(“REFERENCE”, “uhf”)
core.set_global_option(“BASIS”, “aug-cc-pvdz”)
core.set_global_option(“GUESS”, “sad”)
core.set_global_option(“SCF_TYPE”, “df”)
–> energy(‘sapt0’)

Could you post the input file for this one? I’ll get the issue transferred to the SAPT developers.

1 Like

similar problem. Sending my input

memory 4 gb
set basis 6-311++G**
molecule {
0 1
0 1
   C        2.67512       -0.08827       -0.31694
   F        3.12338       -1.28040       -0.69586
  Cl        3.46624        0.37456        1.18922
  Cl        0.92071       -0.15011       -0.15342
   F        2.99808        0.78495       -1.26527
--
0 2
   Cl       -2.64767       0.22684        -0.14175
}

set {
e_convergence 1e-8
d_convergence 1e-8
reference uhf
}

energy ('sapt0')

or this

memory 24 gb
molecule {
0 1
C         -1.39179       -0.20044        0.00015
Cl        -0.43716        1.29883        0.00009
F         -1.08662       -0.91763        1.08111
F         -1.08730       -0.91729       -1.08123
H         -2.44780        0.05805        0.00053
--
0 2
Cl         2.22327       -0.26007       -0.00012
}

set {
basis 6-311++G**
reference uhf
soscf true
soscf_max_iter 30
}

energy('sapt0')

Thank you for the input files!

With the first input file you gave, I can’t reproduce the matrix is not SPD message. When I try it, I can’t get the SCF solution to converge at first. It converges when I try soscf with soscf_max_iter 10 with no problems.

I can reproduce your problem for the second input file. Add the option stability_analysis follow, and the problem will be fixed.

I’ll talk to the SAPT developers about updating the warning message…

1 Like

Hi,
I tried both of these suggestions but still get the same error for the input below. Are there any other keywords that would help me fix it?

molecule {
0 3
C 2.146191145 -2.250869610 -0.229432545
H 2.796153988 -3.111981487 -0.362347932
H 1.465215175 -2.173397551 -1.073297820
H 1.533174247 -2.389665597 0.657575818
C 2.900923223 -0.952856733 -0.096839038
O 2.324207776 0.122438123 0.059749704
N 4.251556346 -1.050359417 -0.161457007
H 4.652507974 -1.960893396 -0.290972105
C 5.119798458 0.101611043 -0.052013925
H 4.483304328 0.969911486 0.082770682
H 5.785387965 0.010155845 0.804078956
H 5.714264181 0.231031532 -0.954273112

0 1
O -0.392018453 -0.384718737 0.076071325
H -0.911460851 0.413812040 0.177648774
H 0.524903820 -0.068484694 0.090511364
}

set {
reference uhf
basis jun-cc-pVDZ
maxiter 200
stability_analysis follow
soscf true
soscf_max_iter 30
}

energy(‘sapt0’)

Please follow the instructions here when posting help requests. In particular, I need to know what version of Psi you’re using. There was a bug in the SCF guess in older versions of Psi, and that may be your problem.

I tried using versions 1.2.1 and 1.3 in Linux and 1.3.2 in Mac. Below is the input again, this time using backticks.

molecule {
     0 3
     C    2.146191145  -2.250869610  -0.229432545
     H    2.796153988  -3.111981487  -0.362347932
     H    1.465215175  -2.173397551  -1.073297820
     H    1.533174247  -2.389665597   0.657575818
     C    2.900923223  -0.952856733  -0.096839038
     O    2.324207776   0.122438123   0.059749704
     N    4.251556346  -1.050359417  -0.161457007
     H    4.652507974  -1.960893396  -0.290972105
     C    5.119798458   0.101611043  -0.052013925
     H    4.483304328   0.969911486   0.082770682
     H    5.785387965   0.010155845   0.804078956
     H    5.714264181   0.231031532  -0.954273112
     --
     0 1
     O   -0.392018453  -0.384718737   0.076071325
     H   -0.911460851   0.413812040   0.177648774
     H    0.524903820  -0.068484694   0.090511364
}

set {
reference uhf
basis         jun-cc-pVDZ
maxiter 200
stability_analysis follow
soscf true
soscf_max_iter 30
}

energy('sapt0')

Thanks.

I’ve tried to solve the convergence problem but have not been able to get it. I’ve passed this on to the SAPT developers. Unfortunately, I can’t say when this will get fixed.