Hi all,
I’m trying to access MO ERI for the list of atoms [Be, Ne, Ca, Zn, Xe] at HF/UGBS.
I use the following script
memory 2000 mb
import numpy as np
molecule at {
Ca
}
set basis ugbs
energy('scf')
scf_e, scf_wfn = psi4.energy('scf', return_wfn=True)
#Matrix of MO coefficients and AO ERI tensor
Matrix_C = scf_wfn.Ca_subset("AO", "ALL")
mints = psi4.core.MintsHelper(scf_wfn.basisset())
Matrix_I = mints.ao_eri()
#Transforming AO ERI to MO ERI manually
mo_I = np.asarray(mints.mo_transform(Matrix_I, Matrix_C, Matrix_C, Matrix_C, Matrix_C))
#Calculating the total electron-electron repulsion manually
ndocc = scf_wfn.nalpha()
Vee = 0
for i in range(ndocc):
for j in range(ndocc):
Vee += 2*mo_I[i][i][j][j] - mo_I[i][j][j][i]
print(Vee)
print()
#Total electron-electron repulsion calculated by the Psi4 code
print(list(scf_wfn.variables().values())[-1])
It works for Be, Ne, and Ca, but crashes without referring to any particular problem for Zn and Xe.
I suspect that the AO ERI tensor for Zn and heavier atoms is too large to be stored in RAM (my machine is freezing and the program stops at the point of creating Matrix_I).
Does anyone know how to solve this problem?
Thanks in advance
P.S. The electron-electron repulsion is calculated by the Psi4 code without any issues (the last string of the code), but I cannot access it manually. Isn’t the similar procedure of transferring AO ERI to MO ERI utilized by the Psi4 code?
That’s the basis set I used
ugbs.txt (26.8 KB)