def __init__(self, xmol, g=None): if g is None: g = int4g(xmol) o = xmol.no v = xmol.nv # c = xmol.nc # t = o + v + c h = o + v # kin = int2(xmol, 0) nuc = int2(xmol, 1) j = np.einsum("piqi->pq", g[:, :o, :, :o]) k = np.einsum("piiq->pq", g[:, :o, :o, :]) T = kin + nuc + j # K = T1 + k0 K = np.empty(np.shape(T)) K[:o, :o] = k[:o, :o] K[o:, o:] = k[o:, o:] K[:o, o:] = T[:o, o:] K[o:, :o] = T[o:, :o] # F0ca self.F0ca = T[h:, o:h] - k[h:, o:h] # Fcx, Fca, Fcc self.Fcx = T[h:, :o] - k[h:, :o] self.Fca = self.F0ca self.Fcc = T[h:, h:] - k[h:, h:] # Ktc, Ktv self.Ktc = K[:, h:] self.Ktv = K[:, o:h] # Ttc, Tth, Ttx self.Ttc = T[:, h:] self.Tth = T[:, :h] self.Ttx = T[:, :o]
def __init__(self, xmol, AO): x = xmol.no v = xmol.nv c = xmol.nc h = x + v t = h + c # g # _g = ao2mo_4s(AO.g, xmol.Xmo_coeff) _g = int4g(xmol) # self.g_PQRS = self.g self.g = _g self.g_PQij = self.g[:, :, :x, :x] self.g_abij = self.g[x:h, x:h, :x, :x] self.g_ijab = self.g[:x, :x, x:h, x:h] # for QA self.g_pqij = self.g[:h, :h, :x, :x] self.g_Ajij = self.g[h:, :x, :x, :x] self.g_iBij = self.g[:x, h:, :x, :x] # r r_ao = np.load(AO.r)["r"] _r = ao2mo_4s(r_ao, xmol.Xmo_coeff) gc_(r_ao, "r_ao") r_int = _r[:x, :x, :, :] # Sxy self.r = 0.375 * r_int + 0.125 * r_int.transpose(1, 0, 2, 3) gc_(r_int, "r_mo_no_S") gc_(_r) # for C self.r_xyAb = self.r[:, :, h:, x:h] self.r_xyaB = self.r[:, :, x:h, h:] self.r_xyab = self.r[:, :, x:h, x:h] # for QA self.r_xypq = self.r[:, :, :h, :h] self.r_xyAj = self.r[:, :, h:, :x] self.r_xyiB = self.r[:, :, :x, h:] self.r_xyPq = self.r[:, :, :, :h] self.r_xypQ = self.r[:, :, :h, :] self.r_xyPj = self.r[:, :, :, :x] self.r_xyiQ = self.r[:, :, :x, :] # for QB self.r_xyAQ = self.r[:, :, h:, :] self.r_xyPB = self.r[:, :, h:, :] self.r_xyAB = self.r[:, :, h:, h:] self.r_xypB = self.r[:, :, :h, h:] self.r_xyAq = self.r[:, :, h:, :h] self.r_xyPb = self.r[:, :, :, x:h] self.r_xyaQ = self.r[:, :, x:h, :] # x x_ao = np.load(AO.x)["x"] _x = ao2mo_4s(x_ao, xmol.Xmo_coeff) gc_(x_ao, "x_ao") x_int = _x[:x, :x, :, :] # SxySvw self.x = 0.15625 * x_int + 0.09375 * x_int.transpose(1, 0, 2, 3) gc_(x_int, "x_mo_no_S") gc_(_x) # for pi self.x_xyPw = self.x[:, :, :, :x] self.x_xyvQ = self.x[:, :, :x, :] # for x self.x_xyvw = self.x[:, :, :x, :x] # d d_ao = np.load(AO.d)["d"] _d = ao2mo_4s(d_ao, xmol._vhf.mo_coeff) gc_(d_ao, "d_ao") d_int = _d[:x, :x, :x, :x] # SxySvw self.d_xyvw = 0.15625 * d_int + 0.09375 * d_int.transpose(1, 0, 2, 3) gc_(d_int, "d_mo_no_S") gc_(_d) # v v_ao = np.load(AO.v)["v"] _v = ao2mo_4s(v_ao, xmol._vhf.mo_coeff) v_int = _v[:x, :x, :x, :x] # Sxy self.v_xyij = 0.375 * v_int + 0.125 * v_int.transpose(1, 0, 2, 3) gc_(v_int, "v_mo_no_S") gc_(_v)
def __init__(self, xmol, AO): x = xmol.no v = xmol.nv c = xmol.nc h = x + v t = h + c # g #_g = ao2mo_4s(AO.g, xmol.Xmo_coeff) _g = int4g(xmol) # self.g_PQRS = self.g self.g = _g # self.g_PQij = self.g[:, :, :x, :x] # self.g_abij = self.g[x:h, x:h, :x, :x] # self.g_ijab = self.g[:x, :x, x:h, x:h] # for QA self.g_pqij = self.g[:h, :h, :x, :x] self.g_Ajij = self.g[h:, :x, :x, :x] self.g_iBij = self.g[:x, h:, :x, :x] # r r_ao = np.load(AO.r)['r'] r_int = ao2mo_4s(r_ao, xmol.Xmo_coeff) gc_(r_ao, 'r_ao') # Sxy self.r = 0.375 * r_int + 0.125 * r_int.transpose(1,0,2,3) gc_(r_int, 'r_mo_no_S') # for QA self.r_xypq = self.r[:x, :x, :h, :h] self.r_xyAj = self.r[:x, :x, h:, :x] self.r_xyiB = self.r[:x, :x, :x, h:] self.r_xyPq = self.r[:x, :x, :, :h] self.r_xypQ = self.r[:x, :x, :h, :] self.r_xyPj = self.r[:x, :x, :, :x] self.r_xyiQ = self.r[:x, :x, :x, :] self.r_xyAQ = self.r[:x, :x, h:, :] self.r_xyPB = self.r[:x, :x, :, h:] # for t with QA self.r_Pypq = self.r[:, :x, :h, :h] self.r_xQpq = self.r[:x, :, :h, :h] self.r_PyAj = self.r[:, :x, h:, :x] self.r_xQAj = self.r[:x, :, h:, :x] self.r_PyiB = self.r[:, :x, :x, h:] self.r_xQiB = self.r[:x, :, :x, h:] # x ''' x_ao = np.load(AO.x)['x'] _x = ao2mo_4s(x_ao, xmol._vhf.mo_coeff) gc_(x_ao, 'x_ao') x_int = _x[:x, :x, :x, :x] # SxySvw self.x_xyvw = 0.15625 * x_int + 0.09375 * x_int.transpose(1,0,2,3) gc_(x_int, 'x_mo_no_S') gc_(_x) ''' # d d_ao = np.load(AO.d)['d'] _d = ao2mo_4s(d_ao, xmol._vhf.mo_coeff) gc_(d_ao, 'd_ao') d_int = _d[:x, :x, :x, :x] # SxySvw self.d_xyvw = 0.15625 * d_int + 0.09375 * d_int.transpose(1,0,2,3) gc_(d_int, 'd_mo_no_S') gc_(_d) # v v_ao = np.load(AO.v)['v'] _v = ao2mo_4s(v_ao, xmol._vhf.mo_coeff) v_int = _v[:x, :x, :x, :x] # Sxy self.v_xyij = 0.375 * v_int + 0.125 * v_int.transpose(1,0,2,3) gc_(v_int, 'v_mo_no_S') gc_(_v)