X2C one-electron Hamiltonian for SAPT calculations


May I know if it is legit to use X2C scalar relativistic method in SAPT calculations? I have tried a few calculations on halogen-bonded dimers involving Br and it seems like it ended up with large delta HF terms ~10 kcal/mol.


Hi SJ, a 10 kcal/mol relativistic correction sounds large, but it possible that it is not wrong. May I ask what basis set are your using? It’s generally a good idea to use a fully uncontracted basis DK relativistic basis (see manual for details). Alternatively you can try a non-SAPT method (HF, MP2, CCSD) on the monomers and dimer to see if the magnitude of the relativistic corrections are similar to what you find with SAPT. I’m curious to know what you find.

Hi Francesco,

I used aug-cc-pvtz-dk as the relativistic basis set and aug-cc-pvtz as the primary basis set(with corresponding jkfit and ri basis sets for df-scf and df-sapt respectively). I will calculate what you have suggested and update you on the results.



Dear SJ, I would suggest that you first try to perform all your computations with the aug-cc-pvtz-dk basis to avoid any inconsistency with the treatment of relativistic and correlation effects, and at first, if possible, avoiding DF and RI. Once you have these results I would try to move to DF and RI with a fitting basis.

I also recommend that you try to perform all your computations with the decontracted aug-cc-pvtz-dk basis as well, to see if the effect of contraction is large.

I don’t know if it’s relevant here, but if you’re using the decontract keyword and and any density fitting (thus requiring auxiliary basis sets), be sure to specify the aux basis sets explicitly, as in https://github.com/psi4/psi4/blob/master/tests/decontract/input.dat (df_basis_sapt too, to be safe). This is necessary because decontraction gets applied to all basis sets if “-decontract” present for orbital basis. Yes, this is bad and on the list to remedy– #1 here.

Hi Francesco,

I have realised that the 1-norm of |H_X2C - H_Dirac| explodes when using aug-cc-pvtz(-dk) basis sets, regardless of whether it is decontracted or not. I have tried to calculate the interaction between ethyne and Br2 dimer using the following input:

memory 16 gb
# ethyne_br2 ccsdt

molecule ethyne_br2 {
0 1
C -3.60185 -0.59768 0.00029
C -3.60184 0.59769 0.00017
H -3.60839 -1.66070 0.00040
H -3.60837 1.66072 0.00006

0 1
Br -0.42580 -0.00001 0.00004
Br 1.86691 0.00000 -0.00013

units angstrom
symmetry c1

set globals {
basis aug-cc-pvtz-dk
relativistic x2c
guess sad
scf_type direct
freeze_core true


Parts of the output are:
The 1-norm of |H_X2C - H_Dirac| is: 76151.710961215023
WARNING: The X2C and Dirac Hamiltonians have substatially different eigenvalues!
This is probably caused by the recontraction of the basis set.

The basis sets without diffuse functions worked fine though.

Hi SJ, thanks for the input. We think there might be an issue with linear dependencies in the basis, which in turn makes the recontraction procedure dubious. Can you try a computation in a completely decontracted basis (here I went down to DZ, since the decontracted basis is pretty large):

set globals {
basis cc-pvdz-dk-decontract
rel_basis cc-pvdz-dk-decontract

Your other option (which I cannot guarantee will be accurate) is to work in the contracted basis:

set globals {
basis cc-pvtz-dk
rel_basis cc-pvtz-dk

This calculation will have the same cost of your original computation, but as I mentioned above, in general it is not recommended.

I am curious to know if any of these two options work. I will keep you updated on what we find about the original procedure.