10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-06-20 20:22:32 +02:00

fixed problem with nested data in pyscf hdf5 3idx ints (needs testing for nk>1)

This commit is contained in:
Kevin Gasperich 2020-10-30 10:36:02 -05:00
parent 671dd70ba8
commit 0d9879dcb1

View File

@ -440,9 +440,10 @@ def get_j3ao_new(fname,nao,Nk):
# in new(?) version of PySCF, there is an extra layer of groups before the datasets
# datasets used to be [/j3c/0, /j3c/1, /j3c/2, ...]
# datasets now are [/j3c/0/0, /j3c/1/0, /j3c/2/0, ...]
keysub = '/0' if bool(j3c.get('0/0',getclass=True)) else ''
#keysub = '/0' if bool(j3c.get('0/0',getclass=True)) else ''
naux = max(map(lambda k: j3c[k+keysub].shape[0],j3c.keys()))
#naux = max(map(lambda k: j3c[k+keysub].shape[0],j3c.keys()))
naux = max(map(lambda k: j3c[k]['0'].shape[0],j3c.keys()))
naosq = nao*nao
naotri = (nao*(nao+1))//2
@ -451,11 +452,12 @@ def get_j3ao_new(fname,nao,Nk):
j3arr = np.zeros((nkpairs,naux,nao,nao),dtype=np.complex128)
for i,kpair in enumerate(j3ckeys):
iaux,dim2 = j3c[kpair+keysub].shape
tmpdat = np.concatenate([j3c[kpair][ii][()] for ii in j3c[kpair]],axis=1)
iaux,dim2 = tmpdat.shape
if (dim2==naosq):
j3arr[i,:iaux,:,:] = j3c[kpair+keysub][()].reshape([iaux,nao,nao]).transpose((0,2,1)) * nkinvsq
j3arr[i,:iaux,:,:] = tmpdat.reshape([iaux,nao,nao]).transpose((0,2,1)) * nkinvsq
else:
j3arr[i,:iaux,:,:] = makesq3(j3c[kpair+keysub][()].conj(),nao) * nkinvsq
j3arr[i,:iaux,:,:] = makesq3(tmpdat.conj(),nao) * nkinvsq
return j3arr