Source code for pyscf.adc.uadc_ee
# Copyright 2014-2022 The PySCF Developers. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Author: Terrence Stahl <terrencestahl@gmail.com>
# Alexander Sokolov <alexander.y.sokolov@gmail.com>
#
'''
Unrestricted algebraic diagrammatic construction
'''
import numpy as np
from pyscf import lib, symm
from pyscf.lib import logger
from pyscf.adc import uadc
from pyscf.scf import hf_symm
from pyscf.adc import uadc_ao2mo, uadc_amplitudes
from pyscf.adc import radc_ao2mo
from pyscf.adc import dfadc
from pyscf import scf
[docs]
def get_imds(adc, eris=None):
cput0 = (logger.process_clock(), logger.perf_counter())
log = logger.Logger(adc.stdout, adc.verbose)
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
method = adc.method
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
t1 = adc.t1
t2 = adc.t2
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
n_singles_a = nocc_a * nvir_a
dim_a = int(n_singles_a)
n_singles_b = nocc_b * nvir_b
dim_b = int(n_singles_b)
M_ia_jb_a = np.zeros((dim_a, dim_a))
M_ia_jb_b = np.zeros((dim_b, dim_b))
if eris is None:
eris = adc.transform_integrals()
d_ai_a = adc.mo_energy_a[nocc_a:][:, None] - adc.mo_energy_a[:nocc_a]
np.fill_diagonal(M_ia_jb_a, d_ai_a.transpose().reshape(-1))
M_ia_jb_a = M_ia_jb_a.reshape(nocc_a, nvir_a, nocc_a, nvir_a).copy()
d_ai_b = adc.mo_energy_b[nocc_b:][:, None] - adc.mo_energy_b[:nocc_b]
np.fill_diagonal(M_ia_jb_b, d_ai_b.transpose().reshape(-1))
M_ia_jb_b = M_ia_jb_b.reshape(nocc_b, nvir_b, nocc_b, nvir_b).copy()
M_ia_jb_a -= lib.einsum('ijba->iajb', eris.oovv, optimize=True).copy()
M_ia_jb_a += lib.einsum('jbai->iajb', eris.ovvo, optimize=True)
M_ia_jb_b -= lib.einsum('ijba->iajb', eris.OOVV, optimize=True).copy()
M_ia_jb_b += lib.einsum('jbai->iajb', eris.OVVO, optimize=True)
M_aabb = lib.einsum('jbai->iajb', eris.OVvo, optimize=True).copy()
# #M^(2)_0 term 3 iemf
vir_list_a = np.array(range(nvir_a))
vir_list_b = np.array(range(nvir_b))
occ_list_a = np.array(range(nocc_a))
occ_list_b = np.array(range(nocc_b))
t2_1_a = t2[0][0][:]
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.25 * \
lib.einsum('jmef,iefm->ij', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[:, vir_list_a, :, vir_list_a] += 0.25 * \
lib.einsum('jmef,ifem->ij', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.25 * \
lib.einsum('imef,jefm->ij', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[:, vir_list_a, :, vir_list_a] += 0.25 * \
lib.einsum('imef,jfem->ij', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.25 * \
lib.einsum('mnae,mben->ab', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] += 0.25 * \
lib.einsum('mnae,mebn->ab', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.25 * \
lib.einsum('mnbe,maen->ab', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] += 0.25 * \
lib.einsum('mnbe,mean->ab', t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a += 0.5 * lib.einsum('jmbe,iaem->iajb',
t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a += 0.5 * lib.einsum('imae,jbem->iajb',
t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a -= 0.5 * lib.einsum('imae,jebm->iajb',
t2_1_a, eris.ovvo, optimize=True)
M_ia_jb_a -= 0.5 * lib.einsum('jmbe,ieam->iajb',
t2_1_a, eris.ovvo, optimize=True)
M_aabb += 0.5 * lib.einsum('imae,jbem->iajb',
t2_1_a, eris.OVvo, optimize=True)
del t2_1_a
t2_1_ab = t2[0][1][:]
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.5 * \
lib.einsum('jmef,iefm->ij', t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.5 * \
lib.einsum('imef,jefm->ij', t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.5 * \
lib.einsum('mnae,mben->ab', t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.5 * \
lib.einsum('mnbe,maen->ab', t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_a += 0.5 * lib.einsum('jmbe,iaem->iajb',
t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_a += 0.5 * lib.einsum('imae,jbem->iajb',
t2_1_ab, eris.ovVO, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.5 * \
lib.einsum('mjfe,iefm->ij', t2_1_ab, eris.OVvo, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.5 * \
lib.einsum('mife,jefm->ij', t2_1_ab, eris.OVvo, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.5 * \
lib.einsum('nmea,mben->ab', t2_1_ab, eris.OVvo, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.5 * \
lib.einsum('nmeb,maen->ab', t2_1_ab, eris.OVvo, optimize=True)
M_ia_jb_b += 0.5 * lib.einsum('mjeb,iaem->iajb',
t2_1_ab, eris.OVvo, optimize=True)
M_ia_jb_b += 0.5 * lib.einsum('miea,jbem->iajb',
t2_1_ab, eris.OVvo, optimize=True)
M_aabb += 0.5 * lib.einsum('mjeb,iaem->iajb',
t2_1_ab, eris.ovvo, optimize=True)
M_aabb -= 0.5 * lib.einsum('mjeb,ieam->iajb',
t2_1_ab, eris.ovvo, optimize=True)
M_aabb += 0.5 * lib.einsum('imae,jbem->iajb',
t2_1_ab, eris.OVVO, optimize=True)
M_aabb -= 0.5 * lib.einsum('imae,jebm->iajb',
t2_1_ab, eris.OVVO, optimize=True)
del t2_1_ab
t2_1_b = t2[0][2][:]
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.25 * \
lib.einsum('jmef,iefm->ij', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] += 0.25 * \
lib.einsum('jmef,ifem->ij', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.25 * \
lib.einsum('imef,jefm->ij', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] += 0.25 * \
lib.einsum('imef,jfem->ij', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.25 * \
lib.einsum('mnae,mben->ab', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] += 0.25 * \
lib.einsum('mnae,mebn->ab', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.25 * \
lib.einsum('mnbe,maen->ab', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] += 0.25 * \
lib.einsum('mnbe,mean->ab', t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b += 0.5 * lib.einsum('jmbe,iaem->iajb',
t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b -= 0.5 * lib.einsum('jmbe,ieam->iajb',
t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b += 0.5 * lib.einsum('imae,jbem->iajb',
t2_1_b, eris.OVVO, optimize=True)
M_ia_jb_b -= 0.5 * lib.einsum('imae,jebm->iajb',
t2_1_b, eris.OVVO, optimize=True)
M_aabb += 0.5 * lib.einsum('mjeb,iaem->iajb',
t2_1_b, eris.ovVO, optimize=True)
del t2_1_b
if isinstance(adc._scf, scf.rohf.ROHF):
t1_1_a = t1[2][0][:]
f_ov_a = adc.f_ov[0]
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.5 * \
lib.einsum('je,ie->ij', t1_1_a, f_ov_a, optimize=True)
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 0.5 * \
lib.einsum('ie,je->ij', t1_1_a, f_ov_a, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.5 * \
lib.einsum('ma,mb->ab', f_ov_a, t1_1_a, optimize=True)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] -= 0.5 * \
lib.einsum('mb,ma->ab', f_ov_a, t1_1_a, optimize=True)
del f_ov_a
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 2 * \
lib.einsum('me,meij->ij', t1_1_a, eris.ovoo, optimize=True)
M_ia_jb_a[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('me,iemj->ij',
t1_1_a,
eris.ovoo,
optimize=True)
M_ia_jb_a -= lib.einsum('ma,jbmi->iajb', t1_1_a,
eris.ovoo, optimize=True)
M_ia_jb_a += lib.einsum('ma,mbji->iajb', t1_1_a,
eris.ovoo, optimize=True)
M_aabb -= lib.einsum('ma,jbmi->iajb', t1_1_a, eris.OVoo, optimize=True)
M_ia_jb_a -= lib.einsum('mb,iamj->iajb', t1_1_a,
eris.ovoo, optimize=True)
M_ia_jb_a += lib.einsum('mb,maij->iajb', t1_1_a,
eris.ovoo, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 2 * \
lib.einsum('me,meij->ij', t1_1_a, eris.ovOO, optimize=True)
M_ia_jb_a[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('me,jemi->ij',
t1_1_a,
eris.ovoo,
optimize=True)
del t1_1_a
f_ov_b = adc.f_ov[1]
t1_1_b = t1[2][1][:]
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.5 * \
lib.einsum('je,ie->ij', t1_1_b, f_ov_b, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 0.5 * \
lib.einsum('ie,je->ij', t1_1_b, f_ov_b, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.5 * \
lib.einsum('ma,mb->ab', f_ov_b, t1_1_b, optimize=True)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] -= 0.5 * \
lib.einsum('mb,ma->ab', f_ov_b, t1_1_b, optimize=True)
del f_ov_b
M_ia_jb_a[:, vir_list_a, :, vir_list_a] -= 2 * \
lib.einsum('me,meij->ij', t1_1_b, eris.OVoo, optimize=True)
M_aabb -= lib.einsum('mb,iamj->iajb', t1_1_b, eris.ovOO, optimize=True)
M_ia_jb_b[:, vir_list_b, :, vir_list_b] -= 2 * \
lib.einsum('me,meij->ij', t1_1_b, eris.OVOO, optimize=True)
M_ia_jb_b[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('me,iemj->ij',
t1_1_b,
eris.OVOO,
optimize=True)
M_ia_jb_b[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('me,jemi->ij',
t1_1_b,
eris.OVOO,
optimize=True)
M_ia_jb_b -= lib.einsum('ma,jbmi->iajb', t1_1_b,
eris.OVOO, optimize=True)
M_ia_jb_b += lib.einsum('ma,mbji->iajb', t1_1_b,
eris.OVOO, optimize=True)
M_ia_jb_b -= lib.einsum('mb,iamj->iajb', t1_1_b,
eris.OVOO, optimize=True)
M_ia_jb_b += lib.einsum('mb,maij->iajb', t1_1_b,
eris.OVOO, optimize=True)
del t1_1_b
t1_1_a = t1[2][0][:]
if isinstance(eris.ovvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
eris_ovvv = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.Lvv, a, chnk_size).reshape(-1, nvir_a, nvir_a, nvir_a)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] += 2 * lib.einsum('me,meba->ab',
t1_1_a[a:b],
eris_ovvv,
optimize=True)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('me,mabe->ab',
t1_1_a[a:b],
eris_ovvv,
optimize=True)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('me,mbea->ab',
t1_1_a[a:b],
eris_ovvv,
optimize=True)
M_ia_jb_a[a:b] -= lib.einsum('je,ieab->iajb',
t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a[a:b] += lib.einsum('je,iaeb->iajb',
t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a[:,
:,
a:b] -= lib.einsum('ie,jeba->iajb',
t1_1_a,
eris_ovvv,
optimize=True)
M_ia_jb_a[:,
:,
a:b] += lib.einsum('ie,jbea->iajb',
t1_1_a,
eris_ovvv,
optimize=True)
del eris_ovvv
else:
eris_ovvv = uadc_ao2mo.unpack_eri_1(eris.ovvv, nvir_a)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] += 2 * \
lib.einsum('me,meba->ab', t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('me,mabe->ab',
t1_1_a,
eris_ovvv,
optimize=True)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('me,mbea->ab',
t1_1_a,
eris_ovvv,
optimize=True)
M_ia_jb_a -= lib.einsum('je,ieab->iajb',
t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a += lib.einsum('je,iaeb->iajb',
t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a -= lib.einsum('ie,jeba->iajb',
t1_1_a, eris_ovvv, optimize=True)
M_ia_jb_a += lib.einsum('ie,jbea->iajb',
t1_1_a, eris_ovvv, optimize=True)
del eris_ovvv
del t1_1_a
t1_1_b = t1[2][1][:]
if isinstance(eris.OVVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
a = 0
for a,b in lib.prange(0,nocc_b,chnk_size):
eris_OVVV = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.LVV, a, chnk_size).reshape(-1, nvir_b, nvir_b, nvir_b)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] += 2 * lib.einsum('me,meba->ab',
t1_1_b[a:b],
eris_OVVV,
optimize=True)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('me,mabe->ab',
t1_1_b[a:b],
eris_OVVV,
optimize=True)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('me,mbea->ab',
t1_1_b[a:b],
eris_OVVV,
optimize=True)
M_ia_jb_b[a:b] -= lib.einsum('je,ieab->iajb',
t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b[a:b] += lib.einsum('je,iaeb->iajb',
t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b[:,
:,
a:b] -= lib.einsum('ie,jeba->iajb',
t1_1_b,
eris_OVVV,
optimize=True)
M_ia_jb_b[:,
:,
a:b] += lib.einsum('ie,jbea->iajb',
t1_1_b,
eris_OVVV,
optimize=True)
del eris_OVVV
else:
eris_OVVV = uadc_ao2mo.unpack_eri_1(eris.OVVV, nvir_b)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] += 2 * \
lib.einsum('me,meba->ab', t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('me,mabe->ab',
t1_1_b,
eris_OVVV,
optimize=True)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('me,mbea->ab',
t1_1_b,
eris_OVVV,
optimize=True)
M_ia_jb_b -= lib.einsum('je,ieab->iajb',
t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b += lib.einsum('je,iaeb->iajb',
t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b -= lib.einsum('ie,jeba->iajb',
t1_1_b, eris_OVVV, optimize=True)
M_ia_jb_b += lib.einsum('ie,jbea->iajb',
t1_1_b, eris_OVVV, optimize=True)
del eris_OVVV
del t1_1_b
t1_1_a = t1[2][0][:]
t1_1_b = t1[2][1][:]
if isinstance(eris.OVvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
eris_OVvv = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.Lvv, a, chnk_size).reshape(-1, nvir_b, nvir_a, nvir_a)
M_ia_jb_a[occ_list_a,
:,
occ_list_a,
:] += 2 * lib.einsum('me,meba->ab',
t1_1_b[a:b],
eris_OVvv,
optimize=True)
M_aabb[:,
:,
a:b] += lib.einsum('ie,jbea->iajb',
t1_1_a,
eris_OVvv,
optimize=True)
del eris_OVvv
else:
eris_OVvv = uadc_ao2mo.unpack_eri_1(eris.OVvv, nvir_a)
M_ia_jb_a[occ_list_a, :, occ_list_a, :] += 2 * \
lib.einsum('me,meba->ab', t1_1_b, eris_OVvv, optimize=True)
M_aabb += lib.einsum('ie,jbea->iajb', t1_1_a,
eris_OVvv, optimize=True)
del eris_OVvv
del t1_1_a
del t1_1_b
t1_1_a = t1[2][0][:]
t1_1_b = t1[2][1][:]
if isinstance(eris.ovVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
eris_ovVV = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.LVV, a, chnk_size).reshape(-1, nvir_a, nvir_b, nvir_b)
M_ia_jb_b[occ_list_b,
:,
occ_list_b,
:] += 2 * lib.einsum('me,meba->ab',
t1_1_a[a:b],
eris_ovVV,
optimize=True)
M_aabb[a:b] += lib.einsum('je,iaeb->iajb',
t1_1_b, eris_ovVV, optimize=True)
del eris_ovVV
else:
eris_ovVV = uadc_ao2mo.unpack_eri_1(eris.ovVV, nvir_b)
M_ia_jb_b[occ_list_b, :, occ_list_b, :] += 2 * \
lib.einsum('me,meba->ab', t1_1_a, eris_ovVV, optimize=True)
M_aabb += lib.einsum('je,iaeb->iajb', t1_1_b,
eris_ovVV, optimize=True)
del eris_ovVV
del t1_1_a
del t1_1_b
if (method == "adc(3)"):
t1 = adc.t1
t2 = adc.t2
if adc.f_ov is None:
h_ce_aa = np.zeros((nocc_a, nvir_a))
h_ce_bb = np.zeros((nocc_b, nvir_b))
t1_ce_aa = np.zeros((nocc_a, nvir_a))
t1_ce_bb = np.zeros((nocc_b, nvir_b))
else:
h_ce_aa, h_ce_bb = adc.f_ov
t1_ce_aa = t1[2][0][:]
t1_ce_bb = t1[2][1][:]
einsum_type = True
v_cccc_aaaa = eris.oooo
v_cccc_bbbb = eris.OOOO
v_cccc_aabb = eris.ooOO
v_ceec_aaaa = eris.ovvo
v_ceec_bbbb = eris.OVVO
v_ceec_aabb = eris.ovVO
v_ceec_bbaa = eris.OVvo
v_ccee_aaaa = eris.oovv
v_ccee_bbbb = eris.OOVV
v_ccee_aabb = eris.ooVV
v_ccee_bbaa = eris.OOvv
v_cecc_aaaa = eris.ovoo
v_cecc_bbbb = eris.OVOO
v_cecc_aabb = eris.ovOO
v_cecc_bbaa = eris.OVoo
t2_ce_aa = t1[0][0][:]
t2_ce_bb = t1[0][1][:]
t1_ccee_aaaa = t2[0][0][:].copy()
t1_ccee_abab = t2[0][1][:].copy()
t1_ccee_bbbb = t2[0][2][:].copy()
t2_ccee_aaaa = t2[1][0][:].copy()
t2_ccee_abab = t2[1][1][:].copy()
t2_ccee_bbbb = t2[1][2][:].copy()
e_core_a = adc.mo_energy_a[:nocc_a].copy()
e_extern_a = adc.mo_energy_a[nocc_a:].copy()
e_core_b = adc.mo_energy_b[:nocc_b].copy()
e_extern_b = adc.mo_energy_b[nocc_b:].copy()
M_030_aa, M_030_bb, M_030_aabb = 3 * (None,)
# In-core V^4 contribution
if isinstance(eris.vvvv_p, np.ndarray):
v_eeee_aaaa = radc_ao2mo.unpack_eri_2(eris.vvvv_p, nvir_a)
M_030_aa = -lib.einsum('AaDb,Ia,Lb->IDLA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('AaDb,Iiac,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('AaDb,Iiac,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib. einsum(
'Aabc,IiDa,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib. einsum(
'Dabc,LiAa,Iibc->IDLA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 4 * lib.einsum('abcd,Iiab,Licd->IL',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('Aabc,ijDa,ijbc->DA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('Dabc,ijAa,ijbc->DA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb = 1 / 2 * lib.einsum(
'Dbcd,ilba,Iicd->IDla',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
del v_eeee_aaaa
v_eeee_bbbb = radc_ao2mo.unpack_eri_2(eris.VVVV_p, nvir_b)
M_030_bb = -lib.einsum('abdc,ib,lc->idla',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('abdc,ijbe,ljce->idla',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('abdc,jieb,jlec->idla',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum(
'abce,ijdb,ljce->idla',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum(
'dbce,ljab,ijce->idla',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 4 * lib.einsum('bcef,ijbc,ljef->il',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('abdc,jb,jc->da',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('abdc,jkeb,jkec->da',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('abdc,jkbe,jkce->da',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('abce,jkdb,jkce->da',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('dbce,jkab,jkce->da',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'abcd,IiDb,licd->IDla',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
del v_eeee_bbbb
# Out-of-core V^4 contribution
elif isinstance(eris.vvvv_p, list):
t_v_con = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
a = 0
temp_1 = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
interm = adc.imds.t2_1_vvvv[0][:]
interm = 2.0 * interm
t_v_con[occ_list_a,
:,
occ_list_a,
:] = -1 / 4 * lib.einsum('ijDa,ijAa->DA',
t1_ccee_aaaa,
interm,
optimize=einsum_type)
t_v_con[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('ijAa,ijDa->DA',
t1_ccee_aaaa,
interm,
optimize=einsum_type)
t_v_con += 1 / 2 * \
lib. einsum('LiAa,IiDa->IDLA', t1_ccee_aaaa, interm, optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('IiDa,LiAa->IDLA', t1_ccee_aaaa, interm, optimize=einsum_type)
t_v_con[:, vir_list_a, :, vir_list_a] += -1 / 4 * \
lib.einsum('Iiab,Liab->IL', t1_ccee_aaaa, interm, optimize=einsum_type)
for dataset in eris.vvvv_p:
k = dataset.shape[0]
vvvv = dataset[:]
v_eeee_aaaa = np.zeros((k, nvir_a, nvir_a, nvir_a))
v_eeee_aaaa[:, :, ab_ind_a[0], ab_ind_a[1]] = vvvv
v_eeee_aaaa[:, :, ab_ind_a[1], ab_ind_a[0]] = -vvvv
temp_1[:,
:,
:,
a:a + k] += -lib.einsum('AaDb,Ia,Lb->IDLA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
temp_1[:,
:,
:,
a:a + k] -= lib.einsum('AaDb,Iiac,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
temp_1[:,
:,
:,
a:a + k] -= lib.einsum('AaDb,Iiac,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:a + k] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:a + k] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:a + k] += lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
del v_eeee_aaaa
a += k
M_030_aa = temp_1
M_030_aa += t_v_con
del t_v_con
del temp_1
del interm
t_v_con = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
a = 0
interm = adc.imds.t2_1_vvvv[2][:]
interm = 2.0 * interm
t_v_con[occ_list_b,
:,
occ_list_b,
:] = -1 / 4 * lib.einsum('jkdb,jkab->da',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('jkab,jkdb->da',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('ijdb,ljab->idla', t1_ccee_bbbb, interm, optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('ljab,ijdb->idla', t1_ccee_bbbb, interm, optimize=einsum_type)
t_v_con[:, vir_list_b, :, vir_list_b] += -1 / 4 * \
lib.einsum('ijbc,ljbc->il', t1_ccee_bbbb, interm, optimize=einsum_type)
temp_2 = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
for dataset in eris.VVVV_p:
k = dataset.shape[0]
VVVV = dataset[:]
v_eeee_bbbb = np.zeros((k, nvir_b, nvir_b, nvir_b))
v_eeee_bbbb[:, :, ab_ind_b[0], ab_ind_b[1]] = VVVV
v_eeee_bbbb[:, :, ab_ind_b[1], ab_ind_b[0]] = -VVVV
temp_2[:,
:,
:,
a:a + k] -= lib.einsum('abdc,ib,lc->idla',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
temp_2[:,
:,
:,
a:a + k] -= lib.einsum('abdc,ijbe,ljce->idla',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
temp_2[:,
:,
:,
a:a + k] -= lib.einsum('abdc,jieb,jlec->idla',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:a + k] += lib.einsum('abdc,jb,jc->da',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:a + k] += lib.einsum('abdc,jkeb,jkec->da',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:a + k] += 1 / 2 * lib.einsum('abdc,jkbe,jkce->da',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
del v_eeee_bbbb
a += k
M_030_bb = temp_2
M_030_bb += t_v_con
del t_v_con
del temp_2
del interm
interm = 2.0 * adc.imds.t2_1_vvvv[0][:]
t_v_con = 1 / 2 * \
lib.einsum('ilba,IiDb->IDla', t1_ccee_abab, interm, optimize=einsum_type)
M_030_aabb = t_v_con
del t_v_con
del interm
interm = 2.0 * adc.imds.t2_1_vvvv[2][:]
t_v_con = 1 / 2 * \
lib.einsum('IiDb,liab->IDla', t1_ccee_abab, interm, optimize=einsum_type)
M_030_aabb += t_v_con
del t_v_con
del interm
# Density fitting V^4 contribution
else:
t_v_con = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
interm = 2.0 * adc.imds.t2_1_vvvv[0][:]
t_v_con[occ_list_a,
:,
occ_list_a,
:] = -1 / 4 * lib.einsum('ijDa,ijAa->DA',
t1_ccee_aaaa,
interm,
optimize=einsum_type)
t_v_con[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('ijAa,ijDa->DA',
t1_ccee_aaaa,
interm,
optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('IiDa,LiAa->IDLA', t1_ccee_aaaa, interm, optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('LiAa,IiDa->IDLA', t1_ccee_aaaa, interm, optimize=einsum_type)
t_v_con[:, vir_list_a, :, vir_list_a] += -1 / 4 * \
lib.einsum('Iiab,Liab->IL', t1_ccee_aaaa, interm, optimize=einsum_type)
temp_1 = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_a,chnk_size):
v_eeee_aaaa = dfadc.get_vvvv_antisym_df(
adc, eris.Lvv, a, chnk_size, pack=False)
temp_1[:,
:,
:,
a:b] -= lib.einsum('AaDb,Iiac,Libc->IDLA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:b] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:b] += lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
temp_1[:,
:,
:,
a:b] += -lib.einsum('AaDb,Ia,Lb->IDLA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
temp_1[occ_list_a,
:,
occ_list_a,
a:b] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
del v_eeee_aaaa
M_030_aa = temp_1
M_030_aa += t_v_con
del t_v_con
del temp_1
del interm
t_v_con = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
interm = 2.0 * adc.imds.t2_1_vvvv[2][:]
t_v_con[occ_list_b,
:,
occ_list_b,
:] = -1 / 4 * lib.einsum('jkdb,jkab->da',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('jkab,jkdb->da',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('ijdb,ljab->idla', t1_ccee_bbbb, interm, optimize=einsum_type)
t_v_con += 1 / 2 * \
lib.einsum('ljab,ijdb->idla', t1_ccee_bbbb, interm, optimize=einsum_type)
t_v_con[:, vir_list_b, :, vir_list_b] += -1 / 4 * \
lib.einsum('ijbc,ljbc->il', t1_ccee_bbbb, interm, optimize=einsum_type)
temp_2 = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_b,chnk_size):
v_eeee_bbbb = dfadc.get_vvvv_antisym_df(
adc, eris.LVV, a, chnk_size, pack=False)
temp_2[:,
:,
:,
a:b] -= lib.einsum('abdc,ijbe,ljce->idla',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
temp_2[:,
:,
:,
a:b] -= lib.einsum('abdc,jieb,jlec->idla',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:b] += lib.einsum('abdc,jkeb,jkec->da',
v_eeee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:b] += 1 / 2 * lib.einsum('abdc,jkbe,jkce->da',
v_eeee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
temp_2[:,
:,
:,
a:b] -= lib.einsum('abdc,ib,lc->idla',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
temp_2[occ_list_b,
:,
occ_list_b,
a:b] += lib.einsum('abdc,jb,jc->da',
v_eeee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
del v_eeee_bbbb
M_030_bb = temp_2
M_030_bb += t_v_con
del t_v_con
del temp_2
del interm
interm = 2.0 * adc.imds.t2_1_vvvv[0][:]
t_v_con = 1 / 2 * \
lib.einsum('ilba,IiDb->IDla', t1_ccee_abab, interm, optimize=einsum_type)
M_030_aabb = t_v_con
del t_v_con
del interm
interm = 2.0 * adc.imds.t2_1_vvvv[2][:]
t_v_con = 1 / 2 * \
lib.einsum('IiDb,liab->IDla', t1_ccee_abab, interm, optimize=einsum_type)
M_030_aabb += t_v_con
del t_v_con
del interm
# In-core V^4 contribution
if isinstance(eris.vVvV_p, np.ndarray):
v_eeee_abab = eris.vVvV_p
v_eeee_abab = v_eeee_abab.reshape(nvir_a, nvir_b, nvir_a, nvir_b)
M_030_aa -= lib.einsum('AaDb,Iica,Licb->IDLA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Aabc,IiDa,Libc->IDLA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Dabc,LiAa,Iibc->IDLA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('abcd,Iiab,Licd->IL',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('AaDb,ijca,ijcb->DA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('Aabc,ijDa,ijbc->DA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('Dabc,ijAa,ijbc->DA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('bacd,jibe,jlce->idla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('bace,jibd,jlce->idla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('bcef,jibc,jlef->il',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jb,jc->da',
v_eeee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('bace,jkbd,jkce->da',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('bdce,jkba,jkce->da',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('bdce,jlba,jice->idla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Dbca,lb,Ic->IDla',
v_eeee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += lib.einsum('Dbca,libd,Iicd->IDla',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Dbca,ildb,Iicd->IDla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('Dbcd,liab,Iicd->IDla',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('bacd,IiDb,ilcd->IDla',
v_eeee_abab,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
del v_eeee_abab
# Out-of-core V^4 contribution
elif isinstance(eris.vVvV_p, list):
t_v_con_a = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
t_v_con_b = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
t_v_con_ab = np.zeros((nocc_a, nvir_a, nocc_b, nvir_b))
interm = adc.imds.t2_1_vvvv[1][:]
t_v_con_a[occ_list_a,
:,
occ_list_a,
:] = -lib.einsum('ijDa,ijAa->DA',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAa,ijDa->DA',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_a += lib.einsum('IiDa,LiAa->IDLA',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_a += lib.einsum('LiAa,IiDa->IDLA',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_a[:,
vir_list_a,
:,
vir_list_a] += -lib.einsum('Iiab,Liab->IL',
t1_ccee_abab,
interm,
optimize=einsum_type)
M_030_aa += t_v_con_a
del t_v_con_a
t_v_con_b = lib.einsum(
'jlba,jibd->idla',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkbd,jkba->da',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkba,jkbd->da',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jibc,jlbc->il',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b += lib.einsum('jibd,jlba->idla',
t1_ccee_abab, interm, optimize=einsum_type)
M_030_bb += t_v_con_b
del t_v_con_b
t_v_con_ab = lib.einsum(
'liab,IiDb->IDla',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con_ab += lib.einsum('IiDb,ilba->IDla',
t1_ccee_aaaa, interm, optimize=einsum_type)
M_030_aabb += t_v_con_ab
del t_v_con_ab
del interm
a = 0
temp_a = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
temp_b = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
temp_aabb = np.zeros((nocc_a, nvir_a, nocc_b, nvir_b))
for dataset in eris.vVvV_p:
k = dataset.shape[0]
v_eeee_abab = dataset[:].reshape(-1, nvir_b, nvir_a, nvir_b)
temp_a[:,
:,
:,
a:a + k] -= lib.einsum('AaDb,Iica,Licb->IDLA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_a[occ_list_a,
:,
occ_list_a,
a:a + k] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
temp_a[occ_list_a,
:,
occ_list_a,
a:a + k] += lib.einsum('AaDb,ijca,ijcb->DA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_a[occ_list_a,
:,
occ_list_a,
a:a + k] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
temp_b += -lib.einsum('bacd,jibe,jlce->idla',
v_eeee_abab,
t1_ccee_abab[:,
:,
a:a + k,
:],
t1_ccee_abab,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_aaaa[:,
:,
a:a + k,
:],
t1_ccee_aaaa,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jb,jc->da',
v_eeee_abab,
t1_ce_aa[:,
a:a + k],
t1_ce_aa,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_abab[:,
:,
a:a + k,
:],
t1_ccee_abab,
optimize=einsum_type)
temp_aabb[:,
a:a + k,
:,
:] += lib.einsum('Dbca,lb,Ic->IDla',
v_eeee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
temp_aabb[:,
a:a + k,
:,
:] += lib.einsum('Dbca,libd,Iicd->IDla',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
temp_aabb[:,
a:a + k,
:,
:] += lib.einsum('Dbca,ildb,Iicd->IDla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
del v_eeee_abab
a += k
M_030_aa += temp_a
M_030_bb += temp_b
M_030_aabb += temp_aabb
del temp_a
del temp_b
del temp_aabb
# Density fitting V^4 contribution
else:
t_v_con_a = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
t_v_con_b = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
t_v_con_ab = np.zeros((nocc_a, nvir_a, nocc_b, nvir_b))
interm = adc.imds.t2_1_vvvv[1][:]
t_v_con_a[occ_list_a,
:,
occ_list_a,
:] = -lib.einsum('ijDa,ijAa->DA',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_a[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAa,ijDa->DA',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_a += lib.einsum('IiDa,LiAa->IDLA',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_a += lib.einsum('LiAa,IiDa->IDLA',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_a[:,
vir_list_a,
:,
vir_list_a] += -lib.einsum('Iiab,Liab->IL',
t1_ccee_abab,
interm,
optimize=einsum_type)
M_030_aa += t_v_con_a
del t_v_con_a
t_v_con_b[occ_list_b,
:,
occ_list_b,
:] = -lib.einsum('jkbd,jkba->da',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkba,jkbd->da',
t1_ccee_abab,
interm,
optimize=einsum_type)
t_v_con_b += lib.einsum('jlba,jibd->idla',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_b += lib.einsum('jibd,jlba->idla',
t1_ccee_abab, interm, optimize=einsum_type)
t_v_con_b[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jibc,jlbc->il',
t1_ccee_abab,
interm,
optimize=einsum_type)
M_030_bb += t_v_con_b
del t_v_con_b
t_v_con_ab = lib.einsum(
'liab,IiDb->IDla',
t1_ccee_bbbb,
interm,
optimize=einsum_type)
t_v_con_ab += lib.einsum('IiDb,ilba->IDla',
t1_ccee_aaaa, interm, optimize=einsum_type)
M_030_aabb += t_v_con_ab
del t_v_con_ab
del interm
temp_a = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
temp_b = np.zeros((nocc_b, nvir_b, nocc_b, nvir_b))
temp_aabb = np.zeros((nocc_a, nvir_a, nocc_b, nvir_b))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_a,chnk_size):
vVvV = dfadc.get_vVvV_df(adc, eris.Lvv, eris.LVV, a, chnk_size)
v_eeee_abab = vVvV
temp_a[occ_list_a,
:,
occ_list_a,
a:b] += lib.einsum('AaDb,ijca,ijcb->DA',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_a[occ_list_a,
:,
occ_list_a,
a:b] += 1 / 2 * lib.einsum('AaDb,ijac,ijbc->DA',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
temp_b += -lib.einsum('bacd,jibe,jlce->idla',
v_eeee_abab,
t1_ccee_abab[:,
:,
a:b,
:],
t1_ccee_abab,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_aaaa[:,
:,
a:b,
:],
t1_ccee_aaaa,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jkbe,jkce->da',
v_eeee_abab,
t1_ccee_abab[:,
:,
a:b,
:],
t1_ccee_abab,
optimize=einsum_type)
temp_aabb[:,
a:b,
:,
:] += lib.einsum('Dbca,libd,Iicd->IDla',
v_eeee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
temp_aabb[:,
a:b,
:,
:] += lib.einsum('Dbca,ildb,Iicd->IDla',
v_eeee_abab,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
temp_a[occ_list_a,
:,
occ_list_a,
a:b] += lib.einsum('AaDb,ia,ib->DA',
v_eeee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
temp_b[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('bacd,jb,jc->da',
v_eeee_abab,
t1_ce_aa[:,
a:b],
t1_ce_aa,
optimize=einsum_type)
temp_aabb[:,
a:b,
:,
:] += lib.einsum('Dbca,lb,Ic->IDla',
v_eeee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
del v_eeee_abab
M_030_aa += temp_a
M_030_bb += temp_b
M_030_aabb += temp_aabb
del temp_a
del temp_b
del temp_aabb
if isinstance(eris.ovvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
v_ceee_aaaa = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.Lvv, a, chnk_size).reshape(-1, nvir_a, nvir_a, nvir_a)
M_030_aa[:,
:,
a:b,
:] -= lib.einsum('Ia,LaDA->IDLA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] += lib.einsum('Ia,LADa->IDLA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] -= lib.einsum('La,IaAD->IDLA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] += lib.einsum('La,IDAa->IDLA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaAD->DA',
t2_ce_aa[a:b,
:],
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ia,iADa->DA',
t2_ce_aa[a:b,
:],
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaDA->DA',
t2_ce_aa[a:b,
:],
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ia,iDAa->DA',
t2_ce_aa[a:b,
:],
v_ceee_aaaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_aa[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('IaAD,Liab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('IaAD,Liab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('iaAD,Liab,Ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('LaDA,Iiab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('LaDA,Iiab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('iaDA,Iiab,Lb->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('LADa,Iiab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('LADa,Iiab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] += lib.einsum('LAab,IiDb,ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iADa,Iiab,Lb->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iAab,IiDb,La->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('IDAa,Liab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('IDAa,Liab,ib->IDLA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('IaAb,Liba,iD->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iDAa,Liab,Ib->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] -= lib.einsum('LabA,ib,IiDa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabA,Lb,IiDa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] += lib.einsum('IDab,LiAb,ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iDab,LiAb,Ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('LaDb,Iiba,iA->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] -= lib.einsum('IabD,ib,LiAa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabD,Ib,LiAa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[a:b,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabc,Liac,ib->IL',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
a:b,
vir_list_a] -= lib.einsum('Labc,Iiac,ib->IL',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('iabc,Iiac,Lb->IL',
v_ceee_aaaa,
t1_ccee_aaaa[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Ib,Lica->IL',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iADa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iADa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAab,ijDb,ja->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iDAa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iDAa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAb,ijba,jD->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabA,jb,ijDa->DA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDab,ijAb,ja->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDb,ijba,jA->DA',
v_ceee_aaaa,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabD,jb,ijAa->DA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_aabb -= lib.einsum('iDbc,ilca,Ib->IDla',
v_ceee_aaaa,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcD,Ic,ilba->IDla',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] += lib.einsum('IDbc,ilca,ib->IDla',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] -= lib.einsum('IbcD,ic,ilba->IDla',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
del v_ceee_aaaa
else:
v_ceee_aaaa = uadc_ao2mo.unpack_eri_1(eris.ovvv, nvir_a)
M_030_aa -= lib.einsum('Ia,LaDA->IDLA',
t2_ce_aa, v_ceee_aaaa, optimize=einsum_type)
M_030_aa += lib.einsum('Ia,LADa->IDLA',
t2_ce_aa, v_ceee_aaaa, optimize=einsum_type)
M_030_aa -= lib.einsum('La,IaAD->IDLA',
t2_ce_aa, v_ceee_aaaa, optimize=einsum_type)
M_030_aa += lib.einsum('La,IDAa->IDLA',
t2_ce_aa, v_ceee_aaaa, optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaAD->DA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ia,iADa->DA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaDA->DA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ia,iDAa->DA',
t2_ce_aa,
v_ceee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IaAD,Liab,ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IaAD,Liab,ib->IDLA', v_ceee_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iaAD,Liab,Ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LaDA,Iiab,ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LaDA,Iiab,ib->IDLA', v_ceee_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iaDA,Iiab,Lb->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('LADa,Iiab,ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('LADa,Iiab,ib->IDLA', v_ceee_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa += lib.einsum('LAab,IiDb,ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iADa,Iiab,Lb->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('iAab,IiDb,La->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('IDAa,Liab,ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('IDAa,Liab,ib->IDLA', v_ceee_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IaAb,Liba,iD->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iDAa,Liab,Ib->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('LabA,ib,IiDa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabA,Lb,IiDa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('IDab,LiAb,ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iDab,LiAb,Ia->IDLA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LaDb,Iiba,iA->IDLA', v_ceee_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('IabD,ib,LiAa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabD,Ib,LiAa->IDLA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabc,Liac,ib->IL',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labc,Iiac,ib->IL',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('iabc,Iiac,Lb->IL',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Ib,Lica->IL',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iADa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iADa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAab,ijDb,ja->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iDAa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iDAa,ijab,jb->DA',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAb,ijba,jD->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabA,jb,ijDa->DA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDab,ijAb,ja->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDb,ijba,jA->DA',
v_ceee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabD,jb,ijAa->DA',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('IDbc,ilca,ib->IDla',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('iDbc,ilca,Ib->IDla',
v_ceee_aaaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('IbcD,ic,ilba->IDla',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcD,Ic,ilba->IDla',
v_ceee_aaaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
del v_ceee_aaaa
if isinstance(eris.OVVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
v_ceee_bbbb = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.LVV, a, chnk_size).reshape(-1, nvir_b, nvir_b, nvir_b)
M_030_bb[:,
:,
a:b,
:] -= lib.einsum('ib,lbda->idla',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] += lib.einsum('ib,ladb->idla',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] -= lib.einsum('lb,ibad->idla',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] += lib.einsum('lb,idab->idla',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jb,jbad->da',
t2_ce_bb[a:b,
:],
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jb,jadb->da',
t2_ce_bb[a:b,
:],
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jb,jbda->da',
t2_ce_bb[a:b,
:],
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jb,jdab->da',
t2_ce_bb[a:b,
:],
v_ceee_bbbb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_bb[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('ibad,ljbc,jc->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('ibad,jlcb,jc->idla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('jbad,ljbc,ic->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('lbda,ijbc,jc->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('lbda,jicb,jc->idla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('jbda,ijbc,lc->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('ladb,ijbc,jc->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('ladb,jicb,jc->idla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] += lib.einsum('labc,ijdc,jb->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jadb,ijbc,lc->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('jabc,ijdc,lb->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('idab,ljbc,jc->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('idab,jlcb,jc->idla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('ibac,ljcb,jd->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jdab,ljbc,ic->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] -= lib.einsum('lbca,jc,ijdb->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbca,lc,ijdb->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] += lib.einsum('idbc,ljac,jb->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('jdbc,ljac,ib->idla',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('lbdc,ijcb,ja->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] -= lib.einsum('ibcd,jc,ljab->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbcd,ic,ljab->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_bb[a:b,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibce,ljbe,jc->il',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
a:b,
vir_list_b] -= lib.einsum('lbce,ijbe,jc->il',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jbce,ijbe,lc->il',
v_ceee_bbbb,
t1_ccee_bbbb[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,ic,ljeb->il',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jadb,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jadb,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabc,jkdc,kb->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jdab,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jdab,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbac,jkcb,kd->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbca,kc,jkdb->da',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbc,jkac,kb->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbdc,jkcb,ka->da',
v_ceee_bbbb,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbcd,kc,jkab->da',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] += lib.einsum('labc,IiDc,ib->IDla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('iabc,IiDc,lb->IDla',
v_ceee_bbbb,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] -= lib.einsum('lbca,ic,IiDb->IDla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibca,lc,IiDb->IDla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
del v_ceee_bbbb
else:
v_ceee_bbbb = uadc_ao2mo.unpack_eri_1(eris.OVVV, nvir_b)
M_030_bb -= lib.einsum('ib,lbda->idla',
t2_ce_bb, v_ceee_bbbb, optimize=einsum_type)
M_030_bb += lib.einsum('ib,ladb->idla',
t2_ce_bb, v_ceee_bbbb, optimize=einsum_type)
M_030_bb -= lib.einsum('lb,ibad->idla',
t2_ce_bb, v_ceee_bbbb, optimize=einsum_type)
M_030_bb += lib.einsum('lb,idab->idla',
t2_ce_bb, v_ceee_bbbb, optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbad->da',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jb,jadb->da',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbda->da',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jb,jdab->da',
t2_ce_bb,
v_ceee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('ibad,ljbc,jc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('ibad,jlcb,jc->idla', v_ceee_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jbad,ljbc,ic->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('lbda,ijbc,jc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('lbda,jicb,jc->idla', v_ceee_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jbda,ijbc,lc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('ladb,ijbc,jc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('ladb,jicb,jc->idla', v_ceee_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb += lib.einsum('labc,ijdc,jb->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jadb,ijbc,lc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('jabc,ijdc,lb->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('idab,ljbc,jc->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('idab,jlcb,jc->idla', v_ceee_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('ibac,ljcb,jd->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jdab,ljbc,ic->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('lbca,jc,ijdb->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbca,lc,ijdb->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('idbc,ljac,jb->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('jdbc,ljac,ib->idla',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('lbdc,ijcb,ja->idla', v_ceee_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('ibcd,jc,ljab->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbcd,ic,ljab->idla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibce,ljbe,jc->il',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbce,ijbe,jc->il',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jbce,ijbe,lc->il',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,ic,ljeb->il',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jadb,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jadb,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabc,jkdc,kb->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jdab,jkbc,kc->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jdab,kjcb,kc->da',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbac,jkcb,kd->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbca,kc,jkdb->da',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbc,jkac,kb->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbdc,jkcb,ka->da',
v_ceee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbcd,kc,jkab->da',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('labc,IiDc,ib->IDla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('iabc,IiDc,lb->IDla',
v_ceee_bbbb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('lbca,ic,IiDb->IDla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibca,lc,IiDb->IDla',
v_ceee_bbbb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
del v_ceee_bbbb
if isinstance(eris.OVvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
v_ceee_bbaa = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.Lvv, a, chnk_size).reshape(-1, nvir_b, nvir_a, nvir_a)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaAD->DA',
t2_ce_bb[a:b,
:],
v_ceee_bbaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaDA->DA',
t2_ce_bb[a:b,
:],
v_ceee_bbaa,
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] += lib.einsum('Ib,laDb->IDla',
t2_ce_aa,
v_ceee_bbaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_aa -= 1 / 2 * lib.einsum('iaAD,Liba,Ib->IDLA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iaDA,Iiba,Lb->IDLA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabA,Lb,IiDa->IDLA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa += lib.einsum('iabD,Ib,LiAa->IDLA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Ib,Lica->IL',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Iica,Lb->IL',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_bbaa,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,jiba,jb->DA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_bbaa,
t1_ccee_bbbb[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,jiba,jb->DA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iaAb,jiba,jD->DA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabA,jb,jiDa->DA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iaDb,jiba,jA->DA',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabD,jb,jiAa->DA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_bb[:,
:,
a:b,
:] += lib.einsum('labc,jicd,jb->idla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[a:b,
:,
:,
:] += lib.einsum('idbc,jlca,jb->idla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[a:b,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibce,jleb,jc->il',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
a:b,
vir_list_b] -= lib.einsum('lbce,jieb,jc->il',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabc,kjcd,kb->da',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbc,kjca,kb->da',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('laDb,Iibc,ic->IDla',
v_ceee_bbaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] += 1 / 2 * lib.einsum('laDb,Iibc,ic->IDla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] -= 1 / 2 * lib.einsum('lbDc,Iicb,ia->IDla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('iaDb,Iibc,lc->IDla',
v_ceee_bbaa,
t1_ccee_abab[:,
a:b,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcD,Ic,liab->IDla',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_bbbb[:,
a:b,
:,
:],
optimize=einsum_type)
M_030_aabb[:,
:,
a:b,
:] += lib.einsum('labc,IiDc,ib->IDla',
v_ceee_bbaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
del v_ceee_bbaa
else:
v_ceee_bbaa = uadc_ao2mo.unpack_eri_1(eris.OVvv, nvir_a)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaAD->DA',
t2_ce_bb,
v_ceee_bbaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ia,iaDA->DA',
t2_ce_bb,
v_ceee_bbaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iaAD,Liba,Ib->IDLA', v_ceee_bbaa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iaDA,Iiba,Lb->IDLA', v_ceee_bbaa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aa += lib.einsum('iabA,Lb,IiDa->IDLA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('iabD,Ib,LiAa->IDLA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Ib,Lica->IL',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabc,Iica,Lb->IL',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,ijab,jb->DA',
v_ceee_bbaa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaAD,jiba,jb->DA',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,ijab,jb->DA',
v_ceee_bbaa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iaDA,jiba,jb->DA',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iaAb,jiba,jD->DA',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabA,jb,jiDa->DA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iaDb,jiba,jA->DA',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabD,jb,jiAa->DA',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('labc,jicd,jb->idla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb += lib.einsum('idbc,jlca,jb->idla',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibce,jleb,jc->il',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbce,jieb,jc->il',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabc,kjcd,kb->da',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbc,kjca,kb->da',
v_ceee_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += lib.einsum('Ib,laDb->IDla',
t2_ce_aa,
v_ceee_bbaa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('laDb,Iibc,ic->IDla', v_ceee_bbaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('laDb,Iibc,ic->IDla', v_ceee_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('lbDc,Iicb,ia->IDla', v_ceee_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('iaDb,Iibc,lc->IDla', v_ceee_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb += lib.einsum('ibcD,Ic,liab->IDla',
v_ceee_bbaa,
t1_ce_aa,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('labc,IiDc,ib->IDla',
v_ceee_bbaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
del v_ceee_bbaa
if isinstance(eris.ovVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
v_ceee_aabb = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.LVV, a, chnk_size).reshape(-1, nvir_a, nvir_b, nvir_b)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbad->da',
t2_ce_aa[a:b,
:],
v_ceee_aabb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbda->da',
t2_ce_aa[a:b,
:],
v_ceee_aabb,
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] += lib.einsum('lb,IDab->IDla',
t2_ce_bb,
v_ceee_aabb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_aa[:,
:,
a:b,
:] += lib.einsum('LAab,IiDb,ia->IDLA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[a:b,
:,
:,
:] += lib.einsum('IDab,LiAb,ia->IDLA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[a:b,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabc,Liac,ib->IL',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
a:b,
vir_list_a] -= lib.einsum('Labc,Iiac,ib->IL',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAab,ijDb,ja->DA',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDab,ijAb,ja->DA',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jbad,jlbc,ic->idla',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jbda,jibc,lc->idla',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbca,lc,jibd->idla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb += lib.einsum('jbcd,ic,jlba->idla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,ic,jlbe->il',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,lc,jibe->il',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_aaaa[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jbac,jkbc,kd->da',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbca,kc,jkbd->da',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jbdc,jkbc,ka->da',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbcd,kc,jkba->da',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab[a:b,
:,
:,
:],
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('IDab,libc,ic->IDla',
v_ceee_aabb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] += 1 / 2 * lib.einsum('IDab,ilcb,ic->IDla',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] += lib.einsum('IDbc,liac,ib->IDla',
v_ceee_aabb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('iDab,ilcb,Ic->IDla',
v_ceee_aabb,
t1_ccee_abab[a:b,
:,
:,
:],
t1_ce_aa,
optimize=einsum_type)
M_030_aabb[a:b,
:,
:,
:] -= 1 / 2 * lib.einsum('Ibac,ilbc,iD->IDla',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibca,lc,IiDb->IDla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_aaaa[:,
a:b,
:,
:],
optimize=einsum_type)
del v_ceee_aabb
else:
v_ceee_aabb = uadc_ao2mo.unpack_eri_1(eris.ovVV, nvir_b)
M_030_aa += lib.einsum('LAab,IiDb,ia->IDLA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa += lib.einsum('IDab,LiAb,ia->IDLA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabc,Liac,ib->IL',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labc,Iiac,ib->IL',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAab,ijDb,ja->DA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDab,ijAb,ja->DA',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbad->da',
t2_ce_aa,
v_ceee_aabb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] += lib.einsum('jb,jbda->da',
t2_ce_aa,
v_ceee_aabb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jbad,jlbc,ic->idla', v_ceee_aabb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jbda,jibc,lc->idla', v_ceee_aabb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_bb += lib.einsum('jbca,lc,jibd->idla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jbcd,ic,jlba->idla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,ic,jlbe->il',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbce,lc,jibe->il',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbad,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jbda,jkbc,kc->da',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jbac,jkbc,kd->da',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbca,kc,jkbd->da',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jbdc,jkbc,ka->da',
v_ceee_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbcd,kc,jkba->da',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('lb,IDab->IDla',
t2_ce_bb,
v_ceee_aabb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('IDab,libc,ic->IDla', v_ceee_aabb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('IDab,ilcb,ic->IDla', v_ceee_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb += lib.einsum('IDbc,liac,ib->IDla',
v_ceee_aabb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('iDab,ilcb,Ic->IDla', v_ceee_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('Ibac,ilbc,iD->IDla', v_ceee_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb += lib.einsum('ibca,lc,IiDb->IDla',
v_ceee_aabb,
t1_ce_bb,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iA,IDiL->IDLA', t2_ce_aa,
v_cecc_aaaa, optimize=einsum_type)
M_030_aa += lib.einsum('iA,iDIL->IDLA', t2_ce_aa,
v_cecc_aaaa, optimize=einsum_type)
M_030_aa -= lib.einsum('iD,LAiI->IDLA', t2_ce_aa,
v_cecc_aaaa, optimize=einsum_type)
M_030_aa += lib.einsum('iD,iALI->IDLA', t2_ce_aa,
v_cecc_aaaa, optimize=einsum_type)
M_030_aa += lib.einsum('IiDa,LAai->IDLA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('IiDa,iAaL->IDLA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('IiDa,LAai->IDLA',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa += lib.einsum('LiAa,IDai->IDLA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('LiAa,iDaI->IDLA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('LiAa,IDai->IDLA',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('A,IiDa,LiAa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('A,IiDa,LiAa->IDLA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('A,LiAa,IiDa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('A,LiAa,IiDa->IDLA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('D,IiDa,LiAa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('D,IiDa,LiAa->IDLA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('D,LiAa,IiDa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('D,LiAa,IiDa->IDLA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('I,IiDa,LiAa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('I,IiDa,LiAa->IDLA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('I,LiAa,IiDa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('I,LiAa,IiDa->IDLA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('L,IiDa,LiAa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('L,IiDa,LiAa->IDLA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('L,LiAa,IiDa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('L,LiAa,IiDa->IDLA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('i,IiDa,LiAa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('i,LiAa,IiDa->IDLA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('a,IiDa,LiAa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('a,LiAa,IiDa->IDLA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('i,IiDa,LiAa->IDLA',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('i,LiAa,IiDa->IDLA',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('a,IiDa,LiAa->IDLA',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('a,LiAa,IiDa->IDLA',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iA,iD->DA',
h_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iD,iA->DA',
h_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Ia,La->IL',
h_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('La,Ia->IL',
h_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iiab,Labi->IL',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iiab,Labi->IL',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Liab,Iabi->IL',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Liab,Iabi->IL',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ia,iaIL->IL',
t2_ce_aa,
v_cecc_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ia,LaiI->IL',
t2_ce_aa,
v_cecc_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ia,iaLI->IL',
t2_ce_aa,
v_cecc_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ia,IaiL->IL',
t2_ce_aa,
v_cecc_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ia,iaIL->IL',
t2_ce_bb,
v_cecc_bbaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ia,iaLI->IL',
t2_ce_bb,
v_cecc_bbaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAa,iDaj->DA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijDa,iAaj->DA',
t2_ccee_aaaa,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAa,iDaj->DA',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijDa,iAaj->DA',
t2_ccee_abab,
v_ceec_aabb,
optimize=einsum_type)
M_030_aa += 1 / 4 * lib.einsum('IiAD,ijab,Ljab->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('IiAD,ijab,Ljab->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 4 * lib.einsum('iLAD,ijab,Ijab->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('iLAD,ijab,Ijab->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('ijAD,Liab,Ijab->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('ijAD,Liab,Ijab->IDLA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 4 * lib.einsum('LAaI,ijab,ijDb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('LAaI,ijab,ijDb->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 4 * lib.einsum('LADi,ijab,Ijab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('LADi,ijab,Ijab->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('LAai,ijab,IjDb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('LAai,ijab,IjDb->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('LAai,ijab,IjDb->IDLA',
v_ceec_aabb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('LAai,jiba,IjDb->IDLA',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 4 * lib.einsum('iADI,ijab,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iADI,ijab,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('iAaI,ijDb,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iAaI,ijDb,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iADj,Iiab,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iAaj,IiDb,Ljab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iAaj,IiDb,Ljba->IDLA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 4 * lib.einsum('ILAa,ijab,ijDb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('ILAa,ijab,ijDb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('IiAa,Ljab,ijDb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('IiAa,Ljab,ijDb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iLAa,ijab,IjDb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iLAa,ijab,IjDb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijAa,Liab,IjDb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijAa,Liab,IjDb->IDLA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 4 * lib.einsum('IDaL,ijab,ijAb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('IDaL,ijab,ijAb->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('IDai,ijab,LjAb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('IDai,ijab,LjAb->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('IDai,ijab,LjAb->IDLA',
v_ceec_aabb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('IDai,jiba,LjAb->IDLA',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iDaL,ijAb,Ijab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iDaL,ijAb,Ijab->IDLA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('iDaj,LiAb,Ijab->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('iDaj,LiAb,Ijba->IDLA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 4 * lib.einsum('LIDa,ijab,ijAb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * lib.einsum('LIDa,ijab,ijAb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('LiDa,Ijab,ijAb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('LiDa,Ijab,ijAb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iIDa,ijab,LjAb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * lib.einsum('iIDa,ijab,LjAb->IDLA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijDa,Iiab,LjAb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijDa,Iiab,LjAb->IDLA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ILij,ikAa,jkDa->IDLA',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('ILij,ikAa,jkDa->IDLA',
v_cccc_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ILij,kiAa,kjDa->IDLA',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('IijL,ikDa,jkAa->IDLA',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('IijL,ikDa,jkAa->IDLA',
v_cccc_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Iijk,ikDa,LjAa->IDLA',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('Iiab,ijDa,LjAb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('Iijk,ikDa,LjAa->IDLA',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('Iiab,ijDa,LjAb->IDLA',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Iabi,LjAa,ijDb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('Iabi,LjAa,jiDb->IDLA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Lijk,ikAa,IjDa->IDLA',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('Liab,ijAa,IjDb->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('Lijk,ikAa,IjDa->IDLA',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('Liab,ijAa,IjDb->IDLA',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Labi,IjDa,ijAb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('Labi,IjDa,jiAb->IDLA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijab,IiDb,LjAa->IDLA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabj,IiDa,LjAb->IDLA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabj,IiDa,LjAb->IDLA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= lib.einsum('ijab,IiDb,LjAa->IDLA',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('iabj,IiDa,LjAb->IDLA',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += lib.einsum('iabj,IiDa,LjAb->IDLA',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('A,ijAa,ijDa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('A,ijDa,ijAa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('A,ijAa,ijDa->DA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('A,ijDa,ijAa->DA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('D,ijAa,ijDa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 4 * lib.einsum('D,ijDa,ijAa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('D,ijAa,ijDa->DA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('D,ijDa,ijAa->DA',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 4 * lib.einsum('I,Iiab,Liab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('I,Iiab,Liab->IL',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 4 * lib.einsum('I,Liab,Iiab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('I,Liab,Iiab->IL',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 4 * lib.einsum('L,Iiab,Liab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('L,Iiab,Liab->IL',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 4 * lib.einsum('L,Liab,Iiab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('L,Liab,Iiab->IL',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('i,Iiab,Liab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('i,Liab,Iiab->IL',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,ijAa,ijDa->DA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,ijDa,ijAa->DA',
e_core_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,ijAa,ijDa->DA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,ijDa,ijAa->DA',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Iiab,Liab->IL',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Iiab,Liab->IL',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Liab,Iiab->IL',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Liab,Iiab->IL',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('a,ijAa,ijDa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('a,ijDa,ijAa->DA',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('i,Iiab,Liab->IL',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('i,Liab,Iiab->IL',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,jiAa,jiDa->DA',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,jiDa,jiAa->DA',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Iiba,Liba->IL',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Liba,Iiba->IL',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('a,ijAa,ijDa->DA',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('a,ijDa,ijAa->DA',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('ILij,ikab,jkab->IL',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ILij,ikab,jkab->IL',
v_cccc_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('ILab,ijac,ijbc->IL',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ILab,ijac,ijbc->IL',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('ILij,ikab,jkab->IL',
v_cccc_aabb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ILij,kiab,kjab->IL',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ILab,ijca,ijcb->IL',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('ILab,ijac,ijbc->IL',
v_ccee_aabb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('IijL,ikab,jkab->IL',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('IijL,ikab,jkab->IL',
v_cccc_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('Iijk,ikab,Ljab->IL',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iiab,ijac,Ljbc->IL',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iiab,ijac,Ljbc->IL',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iijk,ikab,Ljab->IL',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iiab,ijca,Ljcb->IL',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('IabL,ijac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('IabL,ijac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,Ljac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,Ljac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,Ljac,jicb->IL',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,Ljac,ijbc->IL',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('Lijk,ikab,Ijab->IL',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Liab,ijac,Ijbc->IL',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Liab,ijac,Ijbc->IL',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Lijk,ikab,Ijab->IL',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Liab,ijca,Ijcb->IL',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ijac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ijac,ijbc->IL',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ijac,jicb->IL',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ijac,ijbc->IL',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ijab,Iibc,Ljac->IL',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabj,Iiac,Ljbc->IL',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('iabj,Iiac,Ljcb->IL',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ijab,Iibc,Ljac->IL',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ijab,Iicb,Ljca->IL',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('iabj,Iica,Ljbc->IL',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('iabj,Iica,Ljcb->IL',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('ijAD,ikab,jkab->DA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAD,ikab,jkab->DA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('ijAD,ikab,jkab->DA',
v_ccee_bbaa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAD,kiab,kjab->DA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('iADj,ikab,jkab->DA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iADj,ikab,jkab->DA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,ikDb,jkab->DA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,ikDb,jkab->DA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,ikDb,kjba->DA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,ikDb,jkab->DA',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijAa,ikab,jkDb->DA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijAa,ikab,jkDb->DA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijAa,kiab,kjDb->DA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,ikAb,jkab->DA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,ikAb,jkab->DA',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,ikAb,kjba->DA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,ikAb,jkab->DA',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijDa,ikab,jkAb->DA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijDa,ikab,jkAb->DA',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijDa,kiab,kjAb->DA',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('ijkl,ikAa,jlDa->DA',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijab,ikAb,jkDa->DA',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijkl,ikAa,jlDa->DA',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijab,ikAb,jkDa->DA',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabj,ikAa,jkDb->DA',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabj,ikAa,kjDb->DA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iabj,ikDa,kjAb->DA',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijab,kiAb,kjDa->DA',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iabj,kiAa,kjDb->DA',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_aa -= 1 / 2 * \
lib.einsum('iA,IiDa,La->IDLA', h_ce_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iD,LiAa,Ia->IDLA', h_ce_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('Ia,LiAa,iD->IDLA', h_ce_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('La,IiDa,iA->IDLA', h_ce_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('IiAD,ia,La->IDLA', v_ccee_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iLAD,ia,Ia->IDLA', v_ccee_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LAiI,ijDa,ja->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LAiI,ijDa,ja->IDLA', v_cecc_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LAaI,ia,iD->IDLA', v_ceec_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('LADi,ia,Ia->IDLA', v_ceec_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('LAij,ja,IiDa->IDLA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('LAai,Ia,iD->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('LAij,ja,IiDa->IDLA',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iADI,ia,La->IDLA', v_ceec_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iALI,ijDa,ja->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iALI,ijDa,ja->IDLA', v_cecc_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('jAiI,jiDa,La->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += lib.einsum('iAaI,iD,La->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += lib.einsum('jALi,IjDa,ia->IDLA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += lib.einsum('iAaL,iD,Ia->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('ILAa,ia,iD->IDLA', v_ccee_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('IiAa,La,iD->IDLA',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IDiL,ijAa,ja->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IDiL,ijAa,ja->IDLA', v_cecc_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('IDaL,ia,iA->IDLA', v_ceec_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('IDij,ja,LiAa->IDLA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('IDai,La,iA->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('IDij,ja,LiAa->IDLA',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iDIL,ijAa,ja->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iDIL,ijAa,ja->IDLA', v_cecc_aaaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('jDiL,jiAa,Ia->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += lib.einsum('iDaL,iA,Ia->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += lib.einsum('jDIi,LjAa,ia->IDLA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += lib.einsum('iDaI,iA,La->IDLA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('LIDa,ia,iA->IDLA', v_ccee_aaaa, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('LiDa,Ia,iA->IDLA',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('ILij,iA,jD->IDLA',
v_cccc_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iaIL,ijAa,jD->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= 1 / 2 * \
lib.einsum('iaLI,ijDa,jA->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iaIL,jiAa,jD->IDLA', v_cecc_bbaa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('iaLI,jiDa,jA->IDLA', v_cecc_bbaa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aa += lib.einsum('IijL,iD,jA->IDLA',
v_cccc_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('jaIi,iD,LjAa->IDLA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('LaiI,ijDa,jA->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa -= lib.einsum('jaIi,iD,LjAa->IDLA',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += 1 / 2 * \
lib.einsum('IaiL,ijAa,jD->IDLA', v_cecc_aaaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aa += lib.einsum('Iaij,LiAa,jD->IDLA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= lib.einsum('jaLi,iA,IjDa->IDLA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= lib.einsum('jaLi,iA,IjDa->IDLA',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa += lib.einsum('Laij,IiDa,jA->IDLA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('A,iA,iD->DA',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('A,iD,iA->DA',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('D,iA,iD->DA',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('D,iD,iA->DA',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('I,Ia,La->IL',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('I,La,Ia->IL',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('L,Ia,La->IL',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('L,La,Ia->IL',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,iA,iD->DA',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('i,iD,iA->DA',
e_core_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,Ia,La->IL',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('a,La,Ia->IL',
e_extern_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
M_030_aa -= 0.166666667 * lib.einsum(
'A,iA,IiDa,La->IDLA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 0.333333334 * lib.einsum(
'A,iD,Ia,LiAa->IDLA',
e_extern_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa -= 0.333333334 * lib.einsum(
'D,iA,IiDa,La->IDLA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 0.166666667 * lib.einsum(
'D,iD,Ia,LiAa->IDLA',
e_extern_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 0.333333334 * lib.einsum(
'I,iA,IiDa,La->IDLA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 0.166666667 * lib.einsum(
'I,iD,Ia,LiAa->IDLA',
e_core_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 0.166666667 * lib.einsum(
'L,iA,IiDa,La->IDLA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 0.333333334 * lib.einsum(
'L,iD,Ia,LiAa->IDLA',
e_core_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa += 0.500000001 * lib.einsum(
'i,iD,LiAa,Ia->IDLA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa += 0.500000001 * lib.einsum(
'i,IiDa,iA,La->IDLA',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 0.500000001 * lib.einsum(
'a,La,IiDa,iA->IDLA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa -= 0.500000001 * lib.einsum(
'a,LiAa,Ia,iD->IDLA',
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iA,ijDa,ja->DA',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iA,ijDa,ja->DA',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iD,ijAa,ja->DA',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('iD,ijAa,ja->DA',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('Ia,Liab,ib->IL',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('Ia,Liab,ib->IL',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('La,Iiab,ib->IL',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('La,Iiab,ib->IL',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('ia,Iiab,Lb->IL',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('ia,Liab,Ib->IL',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('ia,ijAa,jD->DA',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 1 / 2 * lib.einsum('ia,ijDa,jA->DA',
h_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('ia,Iiba,Lb->IL',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('ia,Liba,Ib->IL',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('ia,jiAa,jD->DA',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 1 / 2 * lib.einsum('ia,jiDa,jA->DA',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ILij,ia,ja->IL',
v_cccc_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaIL,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaIL,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaLI,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaLI,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ILab,ia,ib->IL',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('ILij,ia,ja->IL',
v_cccc_aabb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaIL,ijab,jb->IL',
v_cecc_bbaa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaIL,jiba,jb->IL',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaLI,ijab,jb->IL',
v_cecc_bbaa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('iaLI,jiba,jb->IL',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('ILab,ia,ib->IL',
v_ccee_aabb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('IijL,ia,ja->IL',
v_cccc_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('jaIi,ib,Ljab->IL',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('LaiI,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('LaiI,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('jaiI,ijab,Lb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iiab,ia,Lb->IL',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('jaIi,ib,Ljba->IL',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('jaiI,ijba,Lb->IL',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('IaiL,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('IaiL,ijab,jb->IL',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iaij,Liab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,La,ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iabi,ia,Lb->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('IabL,ia,ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,La,ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Iaij,Liab,jb->IL',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,La,ib->IL',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Iabi,La,ib->IL',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('jaLi,ib,Ijab->IL',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 1 / 2 * lib.einsum('jaiL,ijab,Ib->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Liab,ia,Ib->IL',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('jaLi,ib,Ijba->IL',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 1 / 2 * lib.einsum('jaiL,ijba,Ib->IL',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Laij,Iiab,jb->IL',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ia,ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Labi,ia,Ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ia,ib->IL',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += lib.einsum('Laij,Iiab,jb->IL',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ia,ib->IL',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= lib.einsum('Labi,Ia,ib->IL',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAD,ia,ja->DA',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('ijAD,ia,ja->DA',
v_ccee_bbaa,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iADj,ia,ja->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kAij,kiDa,ja->DA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,iD,ja->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,iD,ja->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iAaj,ia,jD->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kAij,kiDa,ja->DA',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,iD,ja->DA',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iAaj,iD,ja->DA',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijAa,ia,jD->DA',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kDij,kiAa,ja->DA',
v_cecc_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,iA,ja->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,iA,ja->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('iDaj,ia,jA->DA',
v_ceec_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kDij,kiAa,ja->DA',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,iA,ja->DA',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= lib.einsum('iDaj,iA,ja->DA',
v_ceec_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('ijDa,ia,jA->DA',
v_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kaij,jA,ikDa->DA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kaij,jD,ikAa->DA',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kaij,jA,ikDa->DA',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += lib.einsum('kaij,jD,ikAa->DA',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('A,iA,ijDa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('A,iA,ijDa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('A,iD,ijAa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('A,iD,ijAa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('D,iA,ijDa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('D,iA,ijDa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('D,iD,ijAa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('D,iD,ijAa,ja->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('I,Iiab,La,ib->IL',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('I,Ia,Liab,ib->IL',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('I,Ia,Liab,ib->IL',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('I,Iiab,La,ib->IL',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('L,Iiab,La,ib->IL',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('L,Ia,Liab,ib->IL',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('L,Ia,Liab,ib->IL',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('L,Iiab,La,ib->IL',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.333333334 * lib.einsum('i,Iiab,ia,Lb->IL',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.333333334 * lib.einsum('i,Liab,ia,Ib->IL',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.166666667 * lib.einsum('i,ia,Iiab,Lb->IL',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.166666667 * lib.einsum('i,ia,Liab,Ib->IL',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('i,iD,ijAa,ja->DA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('i,iD,ijAa,ja->DA',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('i,ijAa,ia,jD->DA',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('i,ijDa,iA,ja->DA',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.333333334 * lib.einsum('i,ijDa,ia,jA->DA',
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('i,ia,ijAa,jD->DA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.166666667 * lib.einsum('i,ia,ijDa,jA->DA',
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('i,ijDa,iA,ja->DA',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,La,Iiab,ib->IL',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,La,Iiab,ib->IL',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,Liab,Ia,ib->IL',
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.500000001 * lib.einsum('a,Liab,ia,Ib->IL',
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,Liab,Ia,ib->IL',
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.500000001 * lib.einsum('a,ia,Iiab,Lb->IL',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('a,ia,ijDa,jA->DA',
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.500000001 * lib.einsum('a,ijAa,ia,jD->DA',
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('i,Iiab,ib,La->IL',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.333333334 * lib.einsum('i,Liab,ib,Ia->IL',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('i,ia,Iiba,Lb->IL',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] += 0.166666667 * lib.einsum('i,ia,Liba,Ib->IL',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.166666667 * lib.einsum('i,ia,jiAa,jD->DA',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.166666667 * lib.einsum('i,ia,jiDa,jA->DA',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.333333334 * lib.einsum('i,jiAa,ia,jD->DA',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] += 0.333333334 * lib.einsum('i,jiDa,ia,jA->DA',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,Liba,ia,Ib->IL',
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[:,
vir_list_a,
:,
vir_list_a] -= 0.500000001 * lib.einsum('a,ia,Iiba,Lb->IL',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.500000001 * lib.einsum('a,ia,jiDa,jA->DA',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aa[occ_list_a,
:,
occ_list_a,
:] -= 0.500000001 * lib.einsum('a,ijAa,ja,iD->DA',
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
##########################################################################
M_030_bb -= lib.einsum('ja,idjl->idla', t2_ce_bb,
v_cecc_bbbb, optimize=einsum_type)
M_030_bb += lib.einsum('ja,jdil->idla', t2_ce_bb,
v_cecc_bbbb, optimize=einsum_type)
M_030_bb -= lib.einsum('jd,laji->idla', t2_ce_bb,
v_cecc_bbbb, optimize=einsum_type)
M_030_bb += lib.einsum('jd,jali->idla', t2_ce_bb,
v_cecc_bbbb, optimize=einsum_type)
M_030_bb += lib.einsum('ijdb,labj->idla',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ijdb,jabl->idla',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('ljab,idbj->idla',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ljab,jdbi->idla',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jibd,labj->idla',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb += lib.einsum('jlba,idbj->idla',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('a,ijdb,ljab->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('a,ljab,ijdb->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('a,jibd,jlba->idla',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('a,jlba,jibd->idla',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('d,ijdb,ljab->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('d,ljab,ijdb->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('d,jibd,jlba->idla',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('d,jlba,jibd->idla',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('i,ijdb,ljab->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('i,ljab,ijdb->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('i,jibd,jlba->idla',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('i,jlba,jibd->idla',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('l,ijdb,ljab->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('l,ljab,ijdb->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('l,jibd,jlba->idla',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('l,jlba,jibd->idla',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('j,jibd,jlba->idla',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('j,jlba,jibd->idla',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('b,jibd,jlba->idla',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('b,jlba,jibd->idla',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('j,ijdb,ljab->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('j,ljab,ijdb->idla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('b,ijdb,ljab->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('b,ljab,ijdb->idla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('ja,jd->da',
h_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jd,ja->da',
h_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ib,lb->il',
h_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lb,ib->il',
h_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ijbc,lbcj->il',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ljbc,ibcj->il',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jibc,lcbj->il',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jlbc,icbj->il',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jb,jbil->il',
t2_ce_aa,
v_cecc_aabb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jb,jbli->il',
t2_ce_aa,
v_cecc_aabb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jb,jbil->il',
t2_ce_bb,
v_cecc_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jb,lbji->il',
t2_ce_bb,
v_cecc_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jb,jbli->il',
t2_ce_bb,
v_cecc_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jb,ibjl->il',
t2_ce_bb,
v_cecc_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jkba,kdbj->da',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jkbd,kabj->da',
t2_ccee_abab,
v_ceec_bbaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jkab,jdbk->da',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b] -= lib.einsum('jkdb,jabk->da',
t2_ccee_bbbb,
v_ceec_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 4 * lib.einsum('ijad,jkbc,lkbc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('ijad,kjbc,klbc->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jkad,jlbc,kibc->idla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 4 * lib.einsum('jlad,jkbc,ikbc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('jlad,kjbc,kibc->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('jkad,ljbc,ikbc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('labi,jkcb,jkcd->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 4 * lib.einsum('labi,jkbc,jkdc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('labj,jkbc,kicd->idla',
v_ceec_bbaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('labj,jkbc,ikdc->idla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 4 * lib.einsum('ladj,jkbc,ikbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('ladj,kjbc,kibc->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('labj,jkbc,ikdc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('labj,kjcb,kicd->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 4 * lib.einsum('jadi,jkbc,lkbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jadi,kjbc,klbc->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jabi,jkdc,lkbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jabi,kjcd,klcb->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jabk,ijdc,klbc->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jadk,ijbc,lkbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jabk,ijdc,lkbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('ilab,jkcb,jkcd->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 4 * lib.einsum('ilab,jkbc,jkdc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ijab,lkbc,jkdc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ijab,klcb,kjcd->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkab,jlcb,kicd->idla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jlab,jkbc,ikdc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jlab,kjcb,kicd->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkab,ljbc,ikdc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('idbl,jkcb,jkca->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 4 * lib.einsum('idbl,jkbc,jkac->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('idbj,jkbc,klca->idla',
v_ceec_bbaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('idbj,jkbc,lkac->idla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('idbj,jkbc,lkac->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('idbj,kjcb,klca->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jdbl,jkac,ikbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jdbl,kjca,kicb->idla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jdbk,ljac,kibc->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jdbk,ljac,ikbc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * lib.einsum('lidb,jkcb,jkca->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += 1 / 4 * lib.einsum('lidb,jkbc,jkac->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ljdb,ikbc,jkac->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ljdb,kicb,kjca->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkdb,jicb,klca->idla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jidb,jkbc,lkac->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * lib.einsum('jidb,kjcb,klca->idla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkdb,ijbc,lkac->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('iljk,jmab,kmdb->idla',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('iljk,mjba,mkbd->idla',
v_cccc_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('kmij,mjbd,klba->idla',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('ijbc,kjbd,klca->idla',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('ijkl,jmdb,kmab->idla',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('ijkl,mjbd,mkba->idla',
v_cccc_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('ijkm,jmdb,lkab->idla',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ijbc,jkdb,lkac->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ibcj,lkab,jkcd->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('ibcj,lkab,jkdc->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('kmlj,mjba,kibd->idla',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('ljbc,kjba,kicd->idla',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('ljkm,jmab,ikdb->idla',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('ljbc,jkab,ikdc->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('lbcj,ikdb,jkca->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('lbcj,ikdb,jkac->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkbc,jicd,klba->idla',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jbck,jibd,klca->idla',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('jkbc,ijdc,lkab->idla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('jbck,ijdb,klca->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jbck,ljab,kicd->idla',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('jbck,ijdb,lkac->idla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('a,jkba,jkbd->da',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('a,jkbd,jkba->da',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('a,jkab,jkdb->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('a,jkdb,jkab->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('d,jkba,jkbd->da',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('d,jkbd,jkba->da',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('d,jkab,jkdb->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 4 * lib.einsum('d,jkdb,jkab->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 4 * lib.einsum('i,ijbc,ljbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 4 * lib.einsum('i,ljbc,ijbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('i,jibc,jlbc->il',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('i,jlbc,jibc->il',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 4 * lib.einsum('l,ijbc,ljbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 4 * lib.einsum('l,ljbc,ijbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('l,jibc,jlbc->il',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('l,jlbc,jibc->il',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('j,jibc,jlbc->il',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('j,jlbc,jibc->il',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,jkba,jkbd->da',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,jkbd,jkba->da',
e_core_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,jibc,jlbc->il',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,jlbc,jibc->il',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('b,jkba,jkbd->da',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('b,jkbd,jkba->da',
e_extern_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('j,ijbc,ljbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('j,ljbc,ijbc->il',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,jkab,jkdb->da',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,jkdb,jkab->da',
e_core_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,kjba,kjbd->da',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,kjbd,kjba->da',
e_core_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,ijbc,ljbc->il',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,ljbc,ijbc->il',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,jicb,jlcb->il',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,jlcb,jicb->il',
e_extern_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('b,jkab,jkdb->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('b,jkdb,jkab->da',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('jkil,jmbc,kmbc->il',
v_cccc_aabb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jkil,jmbc,kmbc->il',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ilbc,jkbe,jkce->il',
v_ccee_bbaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ilbc,jkbe,jkce->il',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('iljk,jmbc,kmbc->il',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('iljk,mjbc,mkbc->il',
v_cccc_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ilbc,jkeb,jkec->il',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ilbc,jkbe,jkce->il',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('kmij,mjbc,klbc->il',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ijbc,kjbe,klce->il',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ijkl,jmbc,kmbc->il',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ijkl,mjbc,mkbc->il',
v_cccc_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ijkm,jmbc,lkbc->il',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ijbc,jkbe,lkce->il',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ijbc,kjeb,klec->il',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lkbe,jkce->il',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,kleb,jkce->il',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ibcl,jkeb,jkec->il',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('ibcl,jkbe,jkce->il',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lkbe,jkce->il',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,kleb,kjec->il',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('kmlj,mjbc,kibc->il',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ljbc,kjbe,kice->il',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ljkm,jmbc,ikbc->il',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ljbc,jkbe,ikce->il',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ljbc,kjeb,kiec->il',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ikbe,jkce->il',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,kieb,jkce->il',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ikbe,jkce->il',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,kieb,kjec->il',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jkbc,jice,klbe->il',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jkbc,jiec,kleb->il',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbck,jibe,klce->il',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jkbc,ijce,lkbe->il',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jbck,ijbe,klce->il',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jbck,ljbe,kice->il',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('jbck,ijbe,lkce->il',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jkad,jmbc,kmbc->da',
v_ccee_aabb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkad,jmbc,kmbc->da',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jkad,jmbc,kmbc->da',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkad,mjbc,mkbc->da',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jmdc,kmbc->da',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,mjcd,kmbc->da',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jadk,jmbc,kmbc->da',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jadk,mjbc,mkbc->da',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jmdc,kmbc->da',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,mjcd,mkcb->da',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkab,jmcb,kmcd->da',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkab,jmbc,kmdc->da',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkab,mjcb,mkcd->da',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,jmac,kmbc->da',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,mjca,kmbc->da',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,jmac,kmbc->da',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,mjca,mkcb->da',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkdb,jmcb,kmca->da',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkdb,jmbc,kmac->da',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkdb,mjcb,mkca->da',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkbc,jmca,kmbd->da',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkmn,jmba,knbd->da',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbck,jmba,kmcd->da',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkbc,mjca,mkbd->da',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jkmn,jmab,kndb->da',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkbc,jmac,kmdb->da',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbck,jmab,kmcd->da',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jbck,jmdb,kmca->da',
v_ceec_bbaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jbck,jmab,kmdc->da',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_bb -= 1 / 2 * \
lib.einsum('ja,ijdb,lb->idla', h_ce_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jd,ljab,ib->idla', h_ce_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('ib,ljab,jd->idla', h_ce_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('lb,ijdb,ja->idla', h_ce_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('ijad,jb,lb->idla', v_ccee_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jlad,jb,ib->idla', v_ccee_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('laji,jkdb,kb->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('laji,kjbd,kb->idla', v_cecc_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('labi,jb,jd->idla', v_ceec_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('lajk,kb,jibd->idla',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('ladj,jb,ib->idla', v_ceec_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('lajk,kb,ijdb->idla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('labj,ib,jd->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jadi,jb,lb->idla', v_ceec_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jali,jkdb,kb->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jali,kjbd,kb->idla', v_cecc_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('kaji,kjdb,lb->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += lib.einsum('jabi,jd,lb->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += lib.einsum('kalj,ikdb,jb->idla',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += lib.einsum('jabl,jd,ib->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('ilab,jb,jd->idla', v_ccee_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('ijab,lb,jd->idla',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('idjl,jkab,kb->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('idjl,kjba,kb->idla', v_cecc_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('idbl,jb,ja->idla', v_ceec_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('idjk,kb,jlba->idla',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('idjk,kb,ljab->idla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= lib.einsum('idbj,lb,ja->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jdil,jkab,kb->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jdil,kjba,kb->idla', v_cecc_bbbb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('kdjl,kjab,ib->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += lib.einsum('jdbl,ja,ib->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += lib.einsum('kdij,lkab,jb->idla',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += lib.einsum('jdbi,ja,lb->idla',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('lidb,jb,ja->idla', v_ccee_bbbb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('ljdb,ib,ja->idla',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jbil,jkba,kd->idla', v_cecc_aabb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('jbli,jkbd,ka->idla', v_cecc_aabb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('iljk,ja,kd->idla',
v_cccc_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jbil,jkab,kd->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= 1 / 2 * \
lib.einsum('jbli,jkdb,ka->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb -= lib.einsum('kbij,jd,klba->idla',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb += lib.einsum('ijkl,jd,ka->idla',
v_cccc_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('kbij,jd,lkab->idla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('lbji,jkdb,ka->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += 1 / 2 * \
lib.einsum('ibjl,jkab,kd->idla', v_cecc_bbbb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_bb += lib.einsum('ibjk,ljab,kd->idla',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= lib.einsum('kblj,ja,kibd->idla',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb -= lib.einsum('kblj,ja,ikdb->idla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += lib.einsum('lbjk,ijdb,ka->idla',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('a,ja,jd->da',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('a,jd,ja->da',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('d,ja,jd->da',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('d,jd,ja->da',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('i,ib,lb->il',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('i,lb,ib->il',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('l,ib,lb->il',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('l,lb,ib->il',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,ja,jd->da',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('j,jd,ja->da',
e_core_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,ib,lb->il',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('b,lb,ib->il',
e_extern_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
M_030_bb -= 0.166666667 * lib.einsum(
'a,ja,ijdb,lb->idla',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 0.333333334 * lib.einsum(
'a,jd,ib,ljab->idla',
e_extern_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb -= 0.333333334 * lib.einsum(
'd,ja,ijdb,lb->idla',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 0.166666667 * lib.einsum(
'd,jd,ib,ljab->idla',
e_extern_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 0.333333334 * lib.einsum(
'i,ja,ijdb,lb->idla',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 0.166666667 * lib.einsum(
'i,jd,ib,ljab->idla',
e_core_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 0.166666667 * lib.einsum(
'l,ja,ijdb,lb->idla',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 0.333333334 * lib.einsum(
'l,jd,ib,ljab->idla',
e_core_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb += 0.500000001 * lib.einsum(
'j,jd,ljab,ib->idla',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb += 0.500000001 * lib.einsum(
'j,ijdb,ja,lb->idla',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 0.500000001 * lib.einsum(
'b,lb,ijdb,ja->idla',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb -= 0.500000001 * lib.einsum(
'b,ljab,ib,jd->idla',
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('ja,jkdb,kb->da',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('ja,kjbd,kb->da',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jd,jkab,kb->da',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jd,kjba,kb->da',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ib,ljbc,jc->il',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('ib,jlcb,jc->il',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('lb,ijbc,jc->il',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('lb,jicb,jc->il',
h_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jb,jibc,lc->il',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jb,jlbc,ic->il',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jb,jkba,kd->da',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 1 / 2 * lib.einsum('jb,jkbd,ka->da',
h_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('jb,ijbc,lc->il',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('jb,ljbc,ic->il',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jb,jkab,kd->da',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 1 / 2 * lib.einsum('jb,jkdb,ka->da',
h_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('jkil,jb,kb->il',
v_cccc_aabb,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbil,jkbc,kc->il',
v_cecc_aabb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbil,jkbc,kc->il',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbli,jkbc,kc->il',
v_cecc_aabb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbli,jkbc,kc->il',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ilbc,jb,jc->il',
v_ccee_bbaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('iljk,jb,kb->il',
v_cccc_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbil,jkbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbil,kjcb,kc->il',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbli,jkbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('jbli,kjcb,kc->il',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ilbc,jb,jc->il',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('kbij,jc,klbc->il',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('kbji,kjbc,lc->il',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ijkl,jb,kb->il',
v_cccc_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('kbij,jc,lkbc->il',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('lbji,jkbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('lbji,kjcb,kc->il',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('kbji,jkbc,lc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ijbc,jb,lc->il',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ibjk,jlcb,kc->il',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lb,jc->il',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lb,jc->il',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('ibjl,jkbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('ibjl,kjcb,kc->il',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ibjk,ljbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lb,jc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ibcj,jb,lc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ibcl,jb,jc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('ibcj,lb,jc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('kblj,jc,kibc->il',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 1 / 2 * lib.einsum('kbjl,kjbc,ic->il',
v_cecc_aabb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('kblj,jc,ikbc->il',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 1 / 2 * lib.einsum('kbjl,jkbc,ic->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('ljbc,jb,ic->il',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('lbjk,jicb,kc->il',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ib,jc->il',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ib,jc->il',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('lbjk,ijbc,kc->il',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ib,jc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += lib.einsum('lbcj,jb,ic->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= lib.einsum('lbcj,ib,jc->il',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkad,jb,kb->da',
v_ccee_aabb,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jkad,jb,kb->da',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('majk,jmbd,kb->da',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jd,kb->da',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jd,kb->da',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jadk,jb,kb->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('majk,mjdb,kb->da',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jd,kb->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jabk,jd,kb->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jabk,jb,kd->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkab,jb,kd->da',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mdjk,jmba,kb->da',
v_cecc_bbaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,ja,kb->da',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,ja,kb->da',
v_ceec_bbaa,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mdjk,mjab,kb->da',
v_cecc_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,ja,kb->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= lib.einsum('jdbk,ja,kb->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jdbk,jb,ka->da',
v_ceec_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('jkdb,jb,ka->da',
v_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mbjk,ka,mjbd->da',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mbjk,kd,mjba->da',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mbjk,ka,jmdb->da',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += lib.einsum('mbjk,kd,jmab->da',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('a,ja,jkdb,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('a,ja,kjbd,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('a,jd,jkab,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('a,jd,kjba,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('d,ja,jkdb,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('d,ja,kjbd,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('d,jd,jkab,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('d,jd,kjba,kb->da',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('i,ijbc,lb,jc->il',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('i,ib,ljbc,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('i,ib,jlcb,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('i,lb,jicb,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('l,ijbc,lb,jc->il',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('l,ib,ljbc,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('l,ib,jlcb,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('l,lb,jicb,jc->il',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('j,jibc,jb,lc->il',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.333333334 * lib.einsum('j,jlbc,jb,ic->il',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('j,jb,jibc,lc->il',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.166666667 * lib.einsum('j,jb,jlbc,ic->il',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.166666667 * lib.einsum('j,jb,jkba,kd->da',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.166666667 * lib.einsum('j,jb,jkbd,ka->da',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.333333334 * lib.einsum('j,jkba,jb,kd->da',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.333333334 * lib.einsum('j,jkbd,jb,ka->da',
e_core_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,jb,jibc,lc->il',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,jlbc,jb,ic->il',
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.500000001 * lib.einsum('b,jb,jkbd,ka->da',
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.500000001 * lib.einsum('b,jkba,jb,kd->da',
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.333333334 * lib.einsum('j,ijbc,jb,lc->il',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.333333334 * lib.einsum('j,ljbc,jb,ic->il',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.166666667 * lib.einsum('j,jb,ijbc,lc->il',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.166666667 * lib.einsum('j,jb,ljbc,ic->il',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('j,jd,jkab,kb->da',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('j,jd,kjba,kb->da',
e_core_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('j,jkab,jb,kd->da',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('j,jkdb,ja,kb->da',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.333333334 * lib.einsum('j,jkdb,jb,ka->da',
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('j,jb,jkab,kd->da',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] -= 0.166666667 * lib.einsum('j,jb,jkdb,ka->da',
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('j,kjbd,ja,kb->da',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,lb,ijbc,jc->il',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,lb,jicb,jc->il',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,ljbc,ib,jc->il',
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.500000001 * lib.einsum('b,ljbc,jb,ic->il',
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] += 0.500000001 * lib.einsum('b,jb,ijbc,lc->il',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[:,
vir_list_b,
:,
vir_list_b] -= 0.500000001 * lib.einsum('b,jlcb,ib,jc->il',
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('b,jb,jkdb,ka->da',
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_030_bb[occ_list_b,
:,
occ_list_b,
:] += 0.500000001 * lib.einsum('b,jkab,jb,kd->da',
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('iD,laiI->IDla',
t2_ce_aa, v_cecc_bbaa, optimize=einsum_type)
M_030_aabb += lib.einsum('IiDb,labi->IDla',
t2_ccee_aaaa,
v_ceec_bbaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('IiDb,labi->IDla',
t2_ccee_abab,
v_ceec_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('IiDb,iabl->IDla',
t2_ccee_abab,
v_ceec_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ia,IDil->IDla',
t2_ce_bb, v_cecc_aabb, optimize=einsum_type)
M_030_aabb += lib.einsum('liab,IDbi->IDla',
t2_ccee_bbbb,
v_ceec_aabb,
optimize=einsum_type)
M_030_aabb += lib.einsum('ilba,IDbi->IDla',
t2_ccee_abab,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ilba,iDbI->IDla',
t2_ccee_abab,
v_ceec_aaaa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('D,IiDb,ilba->IDla',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('D,IiDb,liab->IDla',
e_extern_a,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('D,liab,IiDb->IDla',
e_extern_a,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('D,ilba,IiDb->IDla',
e_extern_a,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('I,IiDb,ilba->IDla',
e_core_a,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('I,IiDb,liab->IDla',
e_core_a,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('I,liab,IiDb->IDla',
e_core_a,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('I,ilba,IiDb->IDla',
e_core_a,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('a,IiDb,ilba->IDla',
e_extern_b,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('a,IiDb,liab->IDla',
e_extern_b,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('a,liab,IiDb->IDla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum('a,ilba,IiDb->IDla',
e_extern_b,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('l,IiDb,ilba->IDla',
e_core_b,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('l,IiDb,liab->IDla',
e_core_b,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('l,liab,IiDb->IDla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum('l,ilba,IiDb->IDla',
e_core_b,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('i,IiDb,ilba->IDla',
e_core_a,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('i,ilba,IiDb->IDla',
e_core_a,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('b,IiDb,ilba->IDla',
e_extern_a,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('b,ilba,IiDb->IDla',
e_extern_a,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('i,IiDb,liab->IDla',
e_core_b,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('i,liab,IiDb->IDla',
e_core_b,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('b,IiDb,liab->IDla',
e_extern_b,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('b,liab,IiDb->IDla',
e_extern_b,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'IDbl,ijcb,ijca->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 4 * lib.einsum(
'IDbl,ijbc,ijac->IDla',
v_ceec_aabb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'IDbi,ijbc,jlca->IDla',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'IDbi,ijbc,ljac->IDla',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 4 * lib.einsum(
'IDai,ijbc,ljbc->IDla',
v_ceec_aabb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'IDai,jibc,jlbc->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'IDbi,ijbc,ljac->IDla',
v_ceec_aabb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'IDbi,jicb,jlca->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 4 * lib.einsum(
'iDal,ijbc,Ijbc->IDla',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'iDal,ijbc,Ijbc->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('iDbj,ilca,Ijbc->IDla',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('iDaj,ilbc,Ijbc->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('liDb,Ijbc,jica->IDla',
v_ccee_bbaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('liDb,Ijbc,ijac->IDla',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'iIDb,ijbc,jlca->IDla',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'iIDb,ijbc,ljac->IDla',
v_ccee_aaaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijDb,Iibc,jlca->IDla',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijDb,Iibc,ljac->IDla',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('Iiab,ijDc,jlcb->IDla',
v_ccee_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('Iiab,ijDc,ljbc->IDla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('Iijk,ikDb,jlba->IDla',
v_cccc_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('Iibc,ijDb,jlca->IDla',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Iijl,ikDb,kjba->IDla',
v_cccc_aabb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Iijl,ikDb,jkab->IDla',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('Iijk,ikDb,ljab->IDla',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('Iibc,ijDb,ljac->IDla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= 1 / 4 * lib.einsum(
'Ibal,ijbc,ijDc->IDla',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'Ibal,ijbc,ijDc->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Ibai,jlbc,jiDc->IDla',
v_ceec_aabb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Ibci,jlba,ijDc->IDla',
v_ceec_aaaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'labi,ijbc,IjDc->IDla',
v_ceec_bbaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'labi,ijbc,IjDc->IDla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'labi,ijbc,IjDc->IDla',
v_ceec_bbbb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 1 / 2 * lib.einsum(
'labi,jicb,IjDc->IDla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('iabj,IiDc,jlbc->IDla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('iabj,IiDc,ljbc->IDla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijab,ilcb,IjDc->IDla',
v_ccee_aabb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'ilab,ijbc,IjDc->IDla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * lib.einsum(
'ilab,jicb,IjDc->IDla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijab,libc,IjDc->IDla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('jkli,kiba,IjDb->IDla',
v_cccc_aabb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('libc,jiba,IjDc->IDla',
v_ccee_bbaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb += lib.einsum('lijk,ikab,IjDb->IDla',
v_cccc_bbbb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('libc,ijab,IjDc->IDla',
v_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= lib.einsum('lbci,IjDb,ijca->IDla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('lbci,IjDb,ijac->IDla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijbc,IiDc,jlba->IDla',
v_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcj,IiDb,jlca->IDla',
v_ceec_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcj,IiDb,ljac->IDla',
v_ceec_aabb,
t1_ccee_aaaa,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('ijbc,IiDc,ljab->IDla',
v_ccee_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcj,IiDb,jlca->IDla',
v_ceec_bbaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('ibcj,IiDb,ljac->IDla',
v_ceec_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_030_aabb -= 1 / 2 * \
lib.einsum('iD,ilba,Ib->IDla', h_ce_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('Ib,ilba,iD->IDla', h_ce_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('ia,IiDb,lb->IDla', h_ce_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('lb,IiDb,ia->IDla', h_ce_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('IDil,ijab,jb->IDla', v_cecc_aabb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('IDil,jiba,jb->IDla', v_cecc_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('IDbl,ib,ia->IDla', v_ceec_aabb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= lib.einsum('IDij,jb,ilba->IDla',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('IDai,ib,lb->IDla', v_ceec_aabb, t1_ce_bb, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= lib.einsum('IDij,jb,liab->IDla',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('IDbi,lb,ia->IDla',
v_ceec_aabb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('iDal,ib,Ib->IDla', v_ceec_aabb, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('jDil,jiba,Ib->IDla', v_cecc_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb += lib.einsum('jDIi,jlba,ib->IDla',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('liDb,Ib,ia->IDla',
v_ccee_bbaa,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('laiI,ijDb,jb->IDla', v_cecc_bbaa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('laiI,ijDb,jb->IDla', v_cecc_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('jaiI,ijDb,lb->IDla', v_cecc_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= lib.einsum('Iiab,iD,lb->IDla',
v_ccee_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('jbIi,iD,jlba->IDla',
v_cecc_aaaa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('Iijl,iD,ja->IDla',
v_cccc_aabb,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('jbIi,iD,ljab->IDla',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_bbbb,
optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('lbiI,ijDb,ja->IDla', v_cecc_bbaa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
M_030_aabb -= 1 / 2 * \
lib.einsum('Ibal,ib,iD->IDla', v_ceec_aabb, t1_ce_aa, t1_ce_aa, optimize=einsum_type)
M_030_aabb += lib.einsum('Ibij,ilba,jD->IDla',
v_cecc_aaaa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += 1 / 2 * \
lib.einsum('Ibil,jiba,jD->IDla', v_cecc_aabb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
M_030_aabb -= lib.einsum('laij,jb,IiDb->IDla',
v_cecc_bbaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('labi,Ib,iD->IDla',
v_ceec_bbaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('laij,jb,IiDb->IDla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('jali,IjDb,ib->IDla',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= lib.einsum('jbli,ia,IjDb->IDla',
v_cecc_aabb,
t1_ce_bb,
t1_ccee_aaaa,
optimize=einsum_type)
M_030_aabb -= lib.einsum('jbli,ia,IjDb->IDla',
v_cecc_bbbb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += lib.einsum('lbij,IiDb,ja->IDla',
v_cecc_bbbb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 0.166666667 * lib.einsum(
'D,iD,Ib,ilba->IDla',
e_extern_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 0.333333334 * lib.einsum(
'D,IiDb,ia,lb->IDla',
e_extern_a,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb += 0.166666667 * lib.einsum(
'I,iD,Ib,ilba->IDla',
e_core_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 0.333333334 * lib.einsum(
'I,IiDb,ia,lb->IDla',
e_core_a,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 0.333333334 * lib.einsum(
'a,iD,Ib,ilba->IDla',
e_extern_b,
t1_ce_aa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb -= 0.166666667 * lib.einsum(
'a,IiDb,ia,lb->IDla',
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb += 0.333333334 * lib.einsum(
'l,iD,Ib,ilba->IDla',
e_core_b,
t1_ce_aa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_030_aabb += 0.166666667 * lib.einsum(
'l,IiDb,ia,lb->IDla',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb += 0.500000001 * lib.einsum(
'i,iD,ilba,Ib->IDla',
e_core_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb -= 0.500000001 * lib.einsum(
'b,ilba,Ib,iD->IDla',
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
M_030_aabb += 0.500000001 * lib.einsum(
'i,IiDb,ia,lb->IDla',
e_core_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
M_030_aabb -= 0.500000001 * lib.einsum(
'b,lb,IiDb,ia->IDla',
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_ia_jb_a += M_030_aa
M_ia_jb_b += M_030_bb
M_aabb += M_030_aabb
M_ia_jb_a = M_ia_jb_a.reshape(n_singles_a, n_singles_a)
M_ia_jb_b = M_ia_jb_b.reshape(n_singles_b, n_singles_b)
M_aabb = M_aabb.reshape(n_singles_a, n_singles_b)
M_ia_jb = (M_ia_jb_a, M_ia_jb_b, M_aabb)
cput0 = log.timer_debug1("Completed M_ia_jb ADC calculation", *cput0)
return M_ia_jb
[docs]
def get_diag(adc, M_ia_jb=None, eris=None):
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
ij_ind_a = np.tril_indices(nocc_a, k=-1)
ij_ind_b = np.tril_indices(nocc_b, k=-1)
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
n_singles_a = nocc_a * nvir_a
n_singles_b = nocc_b * nvir_b
n_doubles_aaaa = nocc_a * (nocc_a - 1) * nvir_a * (nvir_a - 1) // 4
n_doubles_abab = nocc_a * nocc_b * nvir_a * nvir_b
n_doubles_bbbb = nocc_b * (nocc_b - 1) * nvir_b * (nvir_b - 1) // 4
dim = n_singles_a + n_singles_b + n_doubles_aaaa + n_doubles_abab + n_doubles_bbbb
e_occ_a = adc.mo_energy_a[:nocc_a]
e_occ_b = adc.mo_energy_b[:nocc_b]
e_vir_a = adc.mo_energy_a[nocc_a:]
e_vir_b = adc.mo_energy_b[nocc_b:]
diag = np.zeros(dim)
s_a = 0
f_a = n_singles_a
s_b = f_a
f_b = s_b + n_singles_b
s_aaaa = f_b
f_aaaa = s_aaaa + n_doubles_aaaa
s_abab = f_aaaa
f_abab = s_abab + n_doubles_abab
s_bbbb = f_abab
f_bbbb = s_bbbb + n_doubles_bbbb
if eris is None:
eris = adc.transform_integrals()
d_ij_a = e_occ_a[:, None] + e_occ_a
d_ij_b = e_occ_b[:, None] + e_occ_b
d_ab_a = e_vir_a[:, None] + e_vir_a
d_ab_b = e_vir_b[:, None] + e_vir_b
D_ijab_a = (-d_ij_a.reshape(-1, 1) + d_ab_a.reshape(-1)).reshape((nocc_a,
nocc_a, nvir_a, nvir_a))[:, :, ab_ind_a[0],
ab_ind_a[1]]
diag[s_aaaa:f_aaaa] = D_ijab_a[ij_ind_a[0], ij_ind_a[1]].reshape(-1)
del D_ijab_a
D_ijab_b = (-d_ij_b.reshape(-1, 1) + d_ab_b.reshape(-1)).reshape((nocc_b,
nocc_b, nvir_b, nvir_b))[:, :, ab_ind_b[0],
ab_ind_b[1]]
diag[s_bbbb:f_bbbb] = D_ijab_b[ij_ind_b[0], ij_ind_b[1]].reshape(-1)
del D_ijab_b
d_ij_abab = e_occ_a[:, None] + e_occ_b
d_ab_abab = e_vir_a[:, None] + e_vir_b
diag[s_abab:f_abab] = (-d_ij_abab.reshape(-1, 1) + d_ab_abab.reshape(-1)).reshape(-1)
if M_ia_jb is None:
M_ia_jb = adc.get_imds()
M_ia_jb_a, M_ia_jb_b = M_ia_jb[0], M_ia_jb[1]
# Compute precond
diag[s_a:f_a] = np.diagonal(M_ia_jb_a)
diag[s_b:f_b] = np.diagonal(M_ia_jb_b)
return diag
[docs]
def matvec(adc, M_ia_jb=None, eris=None):
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
method = adc.method
if M_ia_jb is None:
M_ia_jb = adc.get_imds()
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
n_singles_a = nocc_a * nvir_a
n_singles_b = nocc_b * nvir_b
n_doubles_aaaa = nocc_a * (nocc_a - 1) * nvir_a * (nvir_a - 1) // 4
n_doubles_ab = nocc_a * nocc_b * nvir_a * nvir_b
n_doubles_bbbb = nocc_b * (nocc_b - 1) * nvir_b * (nvir_b - 1) // 4
dim = n_singles_a + n_singles_b + n_doubles_aaaa + n_doubles_ab + n_doubles_bbbb
e_occ_a = adc.mo_energy_a[:nocc_a]
e_occ_b = adc.mo_energy_b[:nocc_b]
e_vir_a = adc.mo_energy_a[nocc_a:]
e_vir_b = adc.mo_energy_b[nocc_b:]
ij_ind_a = np.tril_indices(nocc_a, k=-1)
ij_ind_b = np.tril_indices(nocc_b, k=-1)
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
s_a = 0
f_a = n_singles_a
s_b = f_a
f_b = s_b + n_singles_b
s_aaaa = f_b
f_aaaa = s_aaaa + n_doubles_aaaa
s_abab = f_aaaa
f_ab = s_abab + n_doubles_ab
s_bbbb = f_ab
f_bbbb = s_bbbb + n_doubles_bbbb
d_ij_a = e_occ_a[:, None] + e_occ_a
d_ij_b = e_occ_b[:, None] + e_occ_b
d_ab_a = e_vir_a[:, None] + e_vir_a
d_ab_b = e_vir_b[:, None] + e_vir_b
d_ij_abab = e_occ_a[:, None] + e_occ_b
d_ab_abab = e_vir_a[:, None] + e_vir_b
def sigma_(r):
r1_a = r[s_a:f_a]
r1_b = r[s_b:f_b]
r1_a_ov = r1_a.reshape(nocc_a, nvir_a)
r1_b_ov = r1_b.reshape(nocc_b, nvir_b)
r1_ab = r[s_abab:f_ab]
r_vv_u_a = np.zeros((int((nocc_a * (nocc_a - 1)) / 2), nvir_a, nvir_a))
r_vv_u_a[:, ab_ind_a[0], ab_ind_a[1]] = r[s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
r_vv_u_a[:, ab_ind_a[1], ab_ind_a[0]] = -r[s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
r2_a = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
r2_a[ij_ind_a[0], ij_ind_a[1], :, :] = r_vv_u_a
r2_a[ij_ind_a[1], ij_ind_a[0], :, :] = -r_vv_u_a
del r_vv_u_a
r_vv_u_b = np.zeros((int((nocc_b * (nocc_b - 1)) / 2), nvir_b, nvir_b))
r_vv_u_b[:, ab_ind_b[0], ab_ind_b[1]] = r[s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
r_vv_u_b[:, ab_ind_b[1], ab_ind_b[0]] = -r[s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
r2_b = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
r2_b[ij_ind_b[0], ij_ind_b[1], :, :] = r_vv_u_b
r2_b[ij_ind_b[1], ij_ind_b[0], :, :] = -r_vv_u_b
del r_vv_u_b
s = np.zeros(dim)
############## ADC(2) 1 block ############################
#
s[s_a:f_a] = lib.einsum('ab,b->a', M_ia_jb[0], r1_a, optimize=True)
s[s_b:f_b] = lib.einsum('ab,b->a', M_ia_jb[1], r1_b, optimize=True)
s[s_a:f_a] += lib.einsum('ab,b->a', M_ia_jb[2], r1_b, optimize=True)
s[s_b:f_b] += lib.einsum('ba,b->a', M_ia_jb[2], r1_a, optimize=True)
D_ijab_a = (-d_ij_a.reshape(-1,
1) + d_ab_a.reshape(-1)).reshape((nocc_a,
nocc_a,
nvir_a,
nvir_a))[:,
:,
ab_ind_a[0],
ab_ind_a[1]]
s[s_aaaa:f_aaaa] = (D_ijab_a[ij_ind_a[0],
ij_ind_a[1]].reshape(-1)) * r[s_aaaa:f_aaaa]
del D_ijab_a
D_ijab_b = (-d_ij_b.reshape(-1,
1) + d_ab_b.reshape(-1)).reshape((nocc_b,
nocc_b,
nvir_b,
nvir_b))[:,
:,
ab_ind_b[0],
ab_ind_b[1]]
s[s_bbbb:f_bbbb] = (D_ijab_b[ij_ind_b[0],
ij_ind_b[1]].reshape(-1)) * r[s_bbbb:f_bbbb]
del D_ijab_b
s[s_abab:f_ab] = ((-d_ij_abab.reshape(-1, 1) + d_ab_abab.reshape(-1)).reshape(-1)) * r1_ab
r1_ab = r1_ab.reshape(nocc_a, nocc_b, nvir_a, nvir_b)
# M^(1)_h0_h1
temp_a = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
if isinstance(eris.ovvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
eris_ovvv = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.Lvv, a, chnk_size).reshape(-1, nvir_a, nvir_a, nvir_a)
s[s_a:f_a] += 0.5 * lib.einsum('imef,mfea->ia',
r2_a[:,
a:b],
eris_ovvv,
optimize=True).reshape(-1)
s[s_a:f_a] -= 0.5 * lib.einsum('imef,mefa->ia',
r2_a[:,
a:b],
eris_ovvv,
optimize=True).reshape(-1)
temp_a[:, a:b] += - \
lib.einsum('ie,jabe->ijab', r1_a_ov, eris_ovvv, optimize=True)
temp_a[:,
a:b] += lib.einsum('ie,jbae->ijab',
r1_a_ov,
eris_ovvv,
optimize=True)
temp_a[a:b] += lib.einsum('je,iabe->ijab',
r1_a_ov, eris_ovvv, optimize=True)
temp_a[a:b] -= lib.einsum('je,ibae->ijab',
r1_a_ov, eris_ovvv, optimize=True)
del eris_ovvv
temp_a = temp_a[:, :, ab_ind_a[0], ab_ind_a[1]]
s[s_aaaa:f_aaaa] += temp_a[ij_ind_a[0],
ij_ind_a[1]].reshape(n_doubles_aaaa)
del temp_a
else:
eris_ovvv = uadc_ao2mo.unpack_eri_1(eris.ovvv, nvir_a)
s[s_a:f_a] += 0.5 * \
lib.einsum('imef,mfea->ia', r2_a, eris_ovvv, optimize=True).reshape(-1)
s[s_a:f_a] -= 0.5 * \
lib.einsum('imef,mefa->ia', r2_a, eris_ovvv, optimize=True).reshape(-1)
temp_a = -lib.einsum('ie,jabe->ijab', r1_a_ov,
eris_ovvv, optimize=True)
temp_a += lib.einsum('ie,jbae->ijab', r1_a_ov,
eris_ovvv, optimize=True)
temp_a += lib.einsum('je,iabe->ijab', r1_a_ov,
eris_ovvv, optimize=True)
temp_a -= lib.einsum('je,ibae->ijab', r1_a_ov,
eris_ovvv, optimize=True)
temp_a = temp_a[:, :, ab_ind_a[0], ab_ind_a[1]]
s[s_aaaa:f_aaaa] += temp_a[ij_ind_a[0],
ij_ind_a[1]].reshape(n_doubles_aaaa)
del temp_a
del eris_ovvv
temp_abab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
if isinstance(eris.OVvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
eris_OVvv = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.Lvv, a, chnk_size).reshape(-1, nvir_b, nvir_a, nvir_a)
s[s_a:f_a] += lib.einsum('imef,mfea->ia',
r1_ab[:,
a:b],
eris_OVvv,
optimize=True).reshape(-1)
temp_abab[:,
a:b] += lib.einsum('ie,jbae->ijab',
r1_a_ov,
eris_OVvv,
optimize=True)
del eris_OVvv
s[s_abab:f_ab] += temp_abab.reshape(-1)
del temp_abab
else:
eris_OVvv = uadc_ao2mo.unpack_eri_1(eris.OVvv, nvir_a)
s[s_a:f_a] += lib.einsum('imef,mfea->ia',
r1_ab,
eris_OVvv,
optimize=True).reshape(-1)
temp_abab = lib.einsum(
'ie,jbae->ijab',
r1_a_ov,
eris_OVvv,
optimize=True)
s[s_abab:f_ab] += temp_abab.reshape(-1)
del temp_abab
del eris_OVvv
temp_b = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
if isinstance(eris.OVVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
eris_OVVV = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.LVV, a, chnk_size).reshape(-1, nvir_b, nvir_b, nvir_b)
k = eris_OVVV.shape[0]
s[s_b:f_b] += 0.5 * lib.einsum('imef,mfea->ia',
r2_b[:,
a:b],
eris_OVVV,
optimize=True).reshape(-1)
s[s_b:f_b] -= 0.5 * lib.einsum('imef,mefa->ia',
r2_b[:,
a:b],
eris_OVVV,
optimize=True).reshape(-1)
temp_b[:, a:b] += - \
lib.einsum('ie,jabe->ijab', r1_b_ov, eris_OVVV, optimize=True)
temp_b[:,
a:b] += lib.einsum('ie,jbae->ijab',
r1_b_ov,
eris_OVVV,
optimize=True)
temp_b[a:b] += lib.einsum('je,iabe->ijab',
r1_b_ov, eris_OVVV, optimize=True)
temp_b[a:b] -= lib.einsum('je,ibae->ijab',
r1_b_ov, eris_OVVV, optimize=True)
del eris_OVVV
temp_b = temp_b[:, :, ab_ind_b[0], ab_ind_b[1]]
s[s_bbbb:f_bbbb] += temp_b[ij_ind_b[0],
ij_ind_b[1]].reshape(n_doubles_bbbb)
del temp_b
else:
eris_OVVV = uadc_ao2mo.unpack_eri_1(eris.OVVV, nvir_b)
s[s_b:f_b] += 0.5 * \
lib.einsum('imef,mfea->ia', r2_b, eris_OVVV, optimize=True).reshape(-1)
s[s_b:f_b] -= 0.5 * \
lib.einsum('imef,mefa->ia', r2_b, eris_OVVV, optimize=True).reshape(-1)
temp_b = -lib.einsum('ie,jabe->ijab', r1_b_ov,
eris_OVVV, optimize=True)
temp_b += lib.einsum('ie,jbae->ijab', r1_b_ov,
eris_OVVV, optimize=True)
temp_b += lib.einsum('je,iabe->ijab', r1_b_ov,
eris_OVVV, optimize=True)
temp_b -= lib.einsum('je,ibae->ijab', r1_b_ov,
eris_OVVV, optimize=True)
temp_b = temp_b[:, :, ab_ind_b[0], ab_ind_b[1]]
s[s_bbbb:f_bbbb] += temp_b[ij_ind_b[0],
ij_ind_b[1]].reshape(n_doubles_bbbb)
del temp_b
del eris_OVVV
temp_abab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
if isinstance(eris.ovVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
eris_ovVV = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.LVV, a, chnk_size).reshape(-1, nvir_a, nvir_b, nvir_b)
s[s_b:f_b] += lib.einsum('mife,mfea->ia',
r1_ab[a:b],
eris_ovVV,
optimize=True).reshape(-1)
temp_abab[a:b] += lib.einsum('je,iabe->ijab',
r1_b_ov, eris_ovVV, optimize=True)
del eris_ovVV
s[s_abab:f_ab] += temp_abab.reshape(-1)
del temp_abab
else:
eris_ovVV = uadc_ao2mo.unpack_eri_1(eris.ovVV, nvir_b)
s[s_b:f_b] += lib.einsum('mife,mfea->ia',
r1_ab,
eris_ovVV,
optimize=True).reshape(-1)
temp_abab = lib.einsum(
'je,iabe->ijab',
r1_b_ov,
eris_ovVV,
optimize=True)
s[s_abab:f_ab] += temp_abab.reshape(-1)
del temp_abab
del eris_ovVV
s[s_a:f_a] -= 0.5 * \
lib.einsum('mnae,neim->ia', r2_a, eris.ovoo, optimize=True).reshape(-1)
s[s_a:f_a] += 0.5 * \
lib.einsum('mnae,mein->ia', r2_a, eris.ovoo, optimize=True).reshape(-1)
s[s_a:f_a] -= lib.einsum('mnae,neim->ia', r1_ab,
eris.OVoo, optimize=True).reshape(-1)
s[s_b:f_b] -= 0.5 * \
lib.einsum('mnae,neim->ia', r2_b, eris.OVOO, optimize=True).reshape(-1)
s[s_b:f_b] += 0.5 * \
lib.einsum('mnae,mein->ia', r2_b, eris.OVOO, optimize=True).reshape(-1)
s[s_b:f_b] -= lib.einsum('mnea,mein->ia', r1_ab,
eris.ovOO, optimize=True).reshape(-1)
# # # M^(1)_h1_h0
temp_a = lib.einsum('ma,ibjm->ijab', r1_a_ov, eris.ovoo, optimize=True)
temp_a -= lib.einsum('ma,jbim->ijab', r1_a_ov,
eris.ovoo, optimize=True)
temp_a -= lib.einsum('mb,iajm->ijab', r1_a_ov,
eris.ovoo, optimize=True)
temp_a += lib.einsum('mb,jaim->ijab', r1_a_ov,
eris.ovoo, optimize=True)
temp_a = temp_a[:, :, ab_ind_a[0], ab_ind_a[1]]
s[s_aaaa:f_aaaa] += temp_a[ij_ind_a[0],
ij_ind_a[1]].reshape(n_doubles_aaaa)
del temp_a
temp_b = lib.einsum('ma,ibjm->ijab', r1_b_ov, eris.OVOO, optimize=True)
temp_b -= lib.einsum('ma,jbim->ijab', r1_b_ov,
eris.OVOO, optimize=True)
temp_b -= lib.einsum('mb,iajm->ijab', r1_b_ov,
eris.OVOO, optimize=True)
temp_b += lib.einsum('mb,jaim->ijab', r1_b_ov,
eris.OVOO, optimize=True)
temp_b = temp_b[:, :, ab_ind_b[0], ab_ind_b[1]]
s[s_bbbb:f_bbbb] += temp_b[ij_ind_b[0],
ij_ind_b[1]].reshape(n_doubles_bbbb)
del temp_b
s[s_abab:f_ab] -= lib.einsum('ma,jbim->ijab',
r1_a_ov, eris.OVoo, optimize=True).reshape(-1)
s[s_abab:f_ab] -= lib.einsum('mb,iajm->ijab',
r1_b_ov, eris.ovOO, optimize=True).reshape(-1)
if (method == "adc(2)"):
del r1_ab
del r2_a
del r2_b
if (method == "adc(2)-x") or (method == "adc(3)"):
ladder_int_a, ladder_int_b = None, None
if isinstance(eris.vvvv_p, np.ndarray):
interim = np.ascontiguousarray(
r2_a[:, :, ab_ind_a[0], ab_ind_a[1]]).reshape(nocc_a * nocc_a, -1)
s[s_aaaa:f_aaaa] += np.dot(interim, eris.vvvv_p.T).reshape(nocc_a, nocc_a, -1)[
ij_ind_a[0], ij_ind_a[1]].reshape(n_doubles_aaaa)
del interim
elif isinstance(eris.vvvv_p, list):
s[s_aaaa:f_aaaa] += uadc_amplitudes.contract_ladder_antisym(
adc, r2_a, eris.vvvv_p)[ij_ind_a[0], ij_ind_a[1]].reshape(n_doubles_aaaa)
# Save intermediate for DF-ADC(3)/ROHF
elif isinstance(adc._scf, scf.rohf.ROHF) and isinstance(eris.vvvv_p, type(None)) and method == "adc(3)":
ladder_int_a = uadc_amplitudes.contract_ladder(
adc, r2_a, (eris.Lvv, eris.Lvv), pack=False)
pack = ladder_int_a[:, :, ab_ind_a[0], ab_ind_a[1]]
pack = pack[ij_ind_a[0], ij_ind_a[1]].reshape(n_doubles_aaaa)
s[s_aaaa:f_aaaa] += pack
del pack
else:
s[s_aaaa:f_aaaa] += uadc_amplitudes.contract_ladder(adc, r2_a, (eris.Lvv, eris.Lvv), pack=True)[
ij_ind_a[0], ij_ind_a[1]].reshape(n_doubles_aaaa)
if isinstance(eris.vVvV_p, np.ndarray):
s[s_abab:f_ab] += np.dot(r1_ab.reshape(nocc_a * nocc_b,
nvir_a * nvir_b), eris.vVvV_p.T).reshape(-1)
elif isinstance(eris.vVvV_p, list):
s[s_abab:f_ab] += uadc_amplitudes.contract_ladder(
adc, r1_ab, eris.vVvV_p).reshape(-1)
else:
s[s_abab:f_ab] += uadc_amplitudes.contract_ladder(
adc, r1_ab, (eris.Lvv, eris.LVV)).reshape(-1)
if isinstance(eris.VVVV_p, np.ndarray):
interim = np.ascontiguousarray(
r2_b[:, :, ab_ind_b[0], ab_ind_b[1]]).reshape(nocc_b * nocc_b, -1)
s[s_bbbb:f_bbbb] += np.dot(interim, eris.VVVV_p.T).reshape(nocc_b, nocc_b, -1)[
ij_ind_b[0], ij_ind_b[1]].reshape(n_doubles_bbbb)
del interim
elif isinstance(eris.VVVV_p, list):
s[s_bbbb:f_bbbb] += uadc_amplitudes.contract_ladder_antisym(
adc, r2_b, eris.VVVV_p)[ij_ind_b[0], ij_ind_b[1]].reshape(n_doubles_bbbb)
# Save intermediate for DF-ADC(3)/ROHF
elif isinstance(adc._scf, scf.rohf.ROHF) and isinstance(eris.vvvv_p, type(None)) and method == "adc(3)":
ladder_int_b = uadc_amplitudes.contract_ladder(
adc, r2_b, (eris.LVV, eris.LVV), pack=False)
pack = ladder_int_b[:, :, ab_ind_b[0], ab_ind_b[1]]
pack = pack[ij_ind_b[0], ij_ind_b[1]].reshape(n_doubles_bbbb)
s[s_bbbb:f_bbbb] += pack
del pack
else:
s[s_bbbb:f_bbbb] += uadc_amplitudes.contract_ladder(adc, r2_b, (eris.LVV, eris.LVV), pack=True)[
ij_ind_b[0], ij_ind_b[1]].reshape(n_doubles_bbbb)
interim_a = lib.einsum(
'imae,jbem->ijab', r2_a, eris.ovvo, optimize=True)
interim_a -= lib.einsum('imae,mjbe->ijab',
r2_a, eris.oovv, optimize=True)
interim_a += lib.einsum('imae,jbem->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_a -= lib.einsum('jmae,ibem->ijab',
r2_a, eris.ovvo, optimize=True)
interim_a += lib.einsum('jmae,mibe->ijab',
r2_a, eris.oovv, optimize=True)
interim_a -= lib.einsum('jmae,ibem->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_a += 0.5 * \
lib.einsum('mnab,minj->ijab', r2_a, eris.oooo, optimize=True)
interim_a -= 0.5 * \
lib.einsum('mnab,mjni->ijab', r2_a, eris.oooo, optimize=True)
interim_a -= lib.einsum('imbe,jaem->ijab',
r2_a, eris.ovvo, optimize=True)
interim_a += lib.einsum('imbe,jmea->ijab',
r2_a, eris.oovv, optimize=True)
interim_a -= lib.einsum('imbe,jaem->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_a += lib.einsum('jmbe,iaem->ijab',
r2_a, eris.ovvo, optimize=True)
interim_a -= lib.einsum('jmbe,imea->ijab',
r2_a, eris.oovv, optimize=True)
interim_a += lib.einsum('jmbe,iaem->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_a = interim_a[:, :, ab_ind_a[0], ab_ind_a[1]]
s[s_aaaa:f_aaaa] += interim_a[ij_ind_a[0],
ij_ind_a[1]].reshape(n_doubles_aaaa)
del interim_a
interim_b = lib.einsum(
'imae,jbem->ijab', r2_b, eris.OVVO, optimize=True)
interim_b -= lib.einsum('imae,mjbe->ijab',
r2_b, eris.OOVV, optimize=True)
interim_b += lib.einsum('miea,mebj->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_b -= lib.einsum('jmae,ibem->ijab',
r2_b, eris.OVVO, optimize=True)
interim_b += lib.einsum('jmae,mibe->ijab',
r2_b, eris.OOVV, optimize=True)
interim_b -= lib.einsum('mjea,mebi->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_b += 0.5 * \
lib.einsum('mnab,minj->ijab', r2_b, eris.OOOO, optimize=True)
interim_b -= 0.5 * \
lib.einsum('mnab,mjni->ijab', r2_b, eris.OOOO, optimize=True)
interim_b -= lib.einsum('imbe,jaem->ijab',
r2_b, eris.OVVO, optimize=True)
interim_b += lib.einsum('imbe,jmea->ijab',
r2_b, eris.OOVV, optimize=True)
interim_b -= lib.einsum('mieb,meaj->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_b += lib.einsum('jmbe,iaem->ijab',
r2_b, eris.OVVO, optimize=True)
interim_b -= lib.einsum('jmbe,imea->ijab',
r2_b, eris.OOVV, optimize=True)
interim_b += lib.einsum('mjeb,meai->ijab',
r1_ab, eris.ovVO, optimize=True)
interim_b = interim_b[:, :, ab_ind_b[0], ab_ind_b[1]]
s[s_bbbb:f_bbbb] += interim_b[ij_ind_b[0],
ij_ind_b[1]].reshape(n_doubles_bbbb)
del interim_b
s[s_abab:f_ab] += lib.einsum('imae,jbem->ijab',
r1_ab, eris.OVVO, optimize=True).reshape(-1)
s[s_abab:f_ab] -= lib.einsum('imae,mjbe->ijab',
r1_ab, eris.OOVV, optimize=True).reshape(-1)
s[s_abab:f_ab] += lib.einsum('imae,mebj->ijab',
r2_a, eris.ovVO, optimize=True).reshape(-1)
s[s_abab:f_ab] -= lib.einsum('mjae,mibe->ijab',
r1_ab, eris.ooVV, optimize=True).reshape(-1)
s[s_abab:f_ab] += lib.einsum('mnab,minj->ijab',
r1_ab, eris.ooOO, optimize=True).reshape(-1)
s[s_abab:f_ab] -= lib.einsum('imeb,jmea->ijab',
r1_ab, eris.OOvv, optimize=True).reshape(-1)
s[s_abab:f_ab] += lib.einsum('mjeb,iaem->ijab',
r1_ab, eris.ovvo, optimize=True).reshape(-1)
s[s_abab:f_ab] -= lib.einsum('mjeb,imea->ijab',
r1_ab, eris.oovv, optimize=True).reshape(-1)
s[s_abab:f_ab] += lib.einsum('jmbe,iaem->ijab',
r2_b, eris.ovVO, optimize=True).reshape(-1)
if (method == "adc(3)"):
# M_Y120_aa
t1 = adc.t1
t2 = adc.t2
Y_aa = r1_a_ov.copy()
Y_bb = r1_b_ov.copy()
Y_aaaa = r2_a.copy()
Y_bbbb = r2_b.copy()
Y_abab = r1_ab.copy()
if adc.f_ov is None:
h_ce_aa = np.zeros((nocc_a, nvir_a))
h_ce_bb = np.zeros((nocc_b, nvir_b))
t1_ce_aa = np.zeros((nocc_a, nvir_a))
t1_ce_bb = np.zeros((nocc_b, nvir_b))
else:
h_ce_aa, h_ce_bb = adc.f_ov
t1_ce_aa = t1[2][0][:]
t1_ce_bb = t1[2][1][:]
t2_ce_aa = t1[0][0][:]
t2_ce_bb = t1[0][1][:]
t1_ccee_aaaa = t2[0][0][:].copy()
t1_ccee_abab = t2[0][1][:].copy()
t1_ccee_bbbb = t2[0][2][:].copy()
einsum_type = True
v_cccc_aaaa = eris.oooo
v_cccc_bbbb = eris.OOOO
v_cccc_aabb = eris.ooOO
v_ceec_aaaa = eris.ovvo
v_ceec_bbbb = eris.OVVO
v_ceec_aabb = eris.ovVO
v_ceec_bbaa = eris.OVvo
v_ccee_aaaa = eris.oovv
v_ccee_bbbb = eris.OOVV
v_ccee_aabb = eris.ooVV
v_ccee_bbaa = eris.OOvv
v_cecc_aaaa = eris.ovoo
v_cecc_bbbb = eris.OVOO
v_cecc_aabb = eris.ovOO
v_cecc_bbaa = eris.OVoo
e_core_a = adc.mo_energy_a[:nocc_a].copy()
e_extern_a = adc.mo_energy_a[nocc_a:].copy()
e_core_b = adc.mo_energy_b[:nocc_b].copy()
e_extern_b = adc.mo_energy_b[nocc_b:].copy()
######################more m_030 terms##########################
if isinstance(eris.vvvv_p, type(None)):
int_1 = lib.einsum(
"Iiac,Libc->ILab",
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
temp_1 = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
array_1 = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_a,chnk_size):
v_eeee_aaaa = dfadc.get_vVvV_df(
adc, eris.Lvv, eris.Lvv, a, chnk_size)
temp_1[:,
:,
:,
a:b] += -lib.einsum('AaDb,ILab->IDLA',
v_eeee_aaaa,
int_1,
optimize=einsum_type)
temp_1[:,
:,
:,
a:b] += lib.einsum('AabD,ILab->IDLA',
v_eeee_aaaa,
int_1,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
array_1[:,
:,
a:b,
:] += lib.einsum('Ia,Jb,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
array_1[:,
:,
a:b,
:] -= lib.einsum('Ja,Ib,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
array_1[:,
:,
a:b,
:] -= lib.einsum('Ia,Jb,CDba->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
array_1[:,
:,
a:b,
:] += lib.einsum('Ja,Ib,CDba->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
del v_eeee_aaaa
temp_1 = temp_1.reshape(n_singles_a, n_singles_a)
s[s_a:f_a] += lib.einsum('ab,b->a',
temp_1, r1_a, optimize=True)
del temp_1
del int_1
if isinstance(adc._scf, scf.rohf.ROHF):
M_12Y0_aa = array_1
M_02Y1_aa = lib.einsum(
'IiDc,ic->ID', ladder_int_a, t1_ce_aa, optimize=einsum_type)
del array_1
del ladder_int_a
if isinstance(eris.vvvv_p, type(None)):
temp_a = np.zeros((nocc_a, nvir_a, nocc_a, nvir_a))
int_1 = lib.einsum(
"Iica,Licb->ILab",
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_a,chnk_size):
vVvV = dfadc.get_vVvV_df(
adc, eris.Lvv, eris.LVV, a, chnk_size)
v_eeee_abab = vVvV
temp_a[:,
:,
:,
a:b] += -lib.einsum('AaDb,ILab->IDLA',
v_eeee_abab,
int_1,
optimize=einsum_type)
del v_eeee_abab
temp_a = temp_a.reshape(n_singles_a, n_singles_a)
s[s_a:f_a] += lib.einsum('ab,b->a',
temp_a, r1_a, optimize=True)
del temp_a
del int_1
int_1 = lib.einsum(
'ijAb,LA->ijLb',
t1_ccee_aaaa,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijDa,ijLb->LbDa',
t1_ccee_aaaa,
int_1,
optimize=einsum_type)
s[s_a:f_a] += 1 / 2 * lib.einsum('ILab,LbDa->ID',
v_ccee_aaaa,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'ijAb,LA->ijLb',
t1_ccee_abab,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijDa,ijLb->LbDa',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_a:f_a] += lib.einsum('ILab,LbDa->ID',
v_ccee_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'ijAa,LA->ijLa',
t1_ccee_aaaa,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijDb,ijLa->LaDb',
t1_ccee_aaaa,
int_1,
optimize=einsum_type)
s[s_a:f_a] -= 1 / 2 * lib.einsum('IabL,LaDb->ID',
v_ceec_aaaa,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jmba,la->jmlb',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'kmbd,jmlb->djlk',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_b:f_b] -= lib.einsum('jkil,djlk->id',
v_cccc_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jkca,la->jklc',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'jkbd,jklc->lcbd',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_b:f_b] += lib.einsum('ilbc,lcbd->id',
v_ccee_bbaa,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jkac,la->jklc',
t1_ccee_bbbb,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'jkdb,jklc->lcdb',
t1_ccee_bbbb,
int_1,
optimize=einsum_type)
s[s_b:f_b] += 1 / 2 * lib.einsum('ilbc,lcdb->id',
v_ccee_bbbb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jkab,la->jklb',
t1_ccee_bbbb,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'jkdc,jklb->lbdc',
t1_ccee_bbbb,
int_1,
optimize=einsum_type)
s[s_b:f_b] -= 1 / 2 * lib.einsum('ibcl,lbdc->id',
v_ceec_bbbb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
#########################################################M_030_aabb#######
int_1 = lib.einsum(
'ijca,la->ijlc',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'Ijcb,ijlc->biIl',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_a:f_a] += lib.einsum('iDbl,biIl->ID',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'Ijcb,ID->Djcb',
t1_ccee_abab,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijca,Djcb->iDab',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_b:f_b] += lib.einsum('iDbl,iDab->la',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'ilca,la->ic',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'Ijcb,ic->biIj',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_a:f_a] -= lib.einsum('iDbj,biIj->ID',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'iDbj,ID->Iibj',
v_ceec_aabb,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'Ijcb,Iibj->ic',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_b:f_b] -= lib.einsum('ilca,ic->la',
t1_ccee_abab,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'ijDc,ID->ijIc',
t1_ccee_abab,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijba,ijIc->baIc',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_b:f_b] += lib.einsum('Ibcl,baIc->la',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'ijba,la->ijlb',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'ijDc,ijlb->Dclb',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_a:f_a] += lib.einsum('Ibcl,Dclb->ID',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jlba,la->jb',
t1_ccee_abab,
r1_b_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'jiDc,jb->ibDc',
t1_ccee_abab,
int_1,
optimize=einsum_type)
s[s_a:f_a] -= lib.einsum('Ibci,ibDc->ID',
v_ceec_aabb,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
int_1 = lib.einsum(
'jiDc,ID->cIji',
t1_ccee_abab,
r1_a_ov,
optimize=einsum_type)
int_2 = lib.einsum(
'Ibci,cIji->jb',
v_ceec_aabb,
int_1,
optimize=einsum_type)
s[s_b:f_b] -= lib.einsum('jlba,jb->la',
t1_ccee_abab,
int_2,
optimize=einsum_type).reshape(-1)
del int_1
del int_2
##########################################################################
if isinstance(adc._scf, scf.rohf.ROHF):
if isinstance(eris.vvvv_p, np.ndarray):
v_eeee_aaaa = radc_ao2mo.unpack_eri_2(eris.vvvv_p, nvir_a)
M_12Y0_aa = lib.einsum(
'Ia,Jb,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,Ib,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
M_02Y1_aa = 1 / 2 * \
lib.einsum('Iiab,ic,Dcab->ID', Y_aaaa, t1_ce_aa, v_eeee_aaaa, optimize=einsum_type)
del v_eeee_aaaa
v_eeee_bbbb = radc_ao2mo.unpack_eri_2(eris.VVVV_p, nvir_b)
M_12Y0_bb = lib.einsum(
'ia,jb,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ib,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
M_02Y1_bb = 1 / 2 * \
lib.einsum('ijab,jc,dcab->id', Y_bbbb, t1_ce_bb, v_eeee_bbbb, optimize=einsum_type)
del v_eeee_bbbb
if isinstance(eris.vVvV_p, np.ndarray):
v_eeee_abab = eris.vVvV_p
v_eeee_abab = v_eeee_abab.reshape(
nvir_a, nvir_b, nvir_a, nvir_b)
M_12Y0_ab = lib.einsum(
'Ia,jb,Cdab->IjCd',
Y_aa,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,Ib,Cdba->IjCd',
Y_bb,
t1_ce_aa,
v_eeee_abab,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ic,Dcab->ID',
Y_abab,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,jc,cdab->id',
Y_abab,
t1_ce_aa,
v_eeee_abab,
optimize=einsum_type)
del v_eeee_abab
if isinstance(eris.vVvV_p, list):
a = 0
temp_ab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
temp_aa = np.zeros((nocc_a, nvir_a))
temp_bb = np.zeros((nocc_b, nvir_b))
for dataset in eris.vVvV_p:
k = dataset.shape[0]
v_eeee_abab = dataset[:].reshape(-1,
nvir_b, nvir_a, nvir_b)
temp_ab[:,
:,
a:a + k,
:] += lib.einsum('Ia,jb,Cdab->IjCd',
Y_aa,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
temp_ab[:,
:,
a:a + k,
:] += lib.einsum('ja,Ib,Cdba->IjCd',
Y_bb,
t1_ce_aa,
v_eeee_abab,
optimize=einsum_type)
temp_aa[:,
a:a + k] += lib.einsum('Iiab,ic,Dcab->ID',
Y_abab,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
temp_bb += lib.einsum('jiab,jc,cdab->id',
Y_abab,
t1_ce_aa[:,
a:a + k],
v_eeee_abab,
optimize=einsum_type)
del v_eeee_abab
a += k
M_02Y1_aa = temp_aa
M_02Y1_bb = temp_bb
M_12Y0_ab = temp_ab
if isinstance(eris.vvvv_p, type(None)):
temp_ab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
temp_aa = np.zeros((nocc_a, nvir_a))
temp_bb = np.zeros((nocc_b, nvir_b))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_a,chnk_size):
vVvV = dfadc.get_vVvV_df(
adc, eris.Lvv, eris.LVV, a, chnk_size)
v_eeee_abab = vVvV
temp_ab[:,
:,
a:b,
:] += lib.einsum('Ia,jb,Cdab->IjCd',
Y_aa,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
temp_ab[:,
:,
a:b,
:] += lib.einsum('ja,Ib,Cdba->IjCd',
Y_bb,
t1_ce_aa,
v_eeee_abab,
optimize=einsum_type)
temp_aa[:,
a:b] += lib.einsum('Iiab,ic,Dcab->ID',
Y_abab,
t1_ce_bb,
v_eeee_abab,
optimize=einsum_type)
temp_bb += lib.einsum('jiab,jc,cdab->id',
Y_abab,
t1_ce_aa[:,
a:b],
v_eeee_abab,
optimize=einsum_type)
del v_eeee_abab
M_02Y1_aa += temp_aa
M_02Y1_bb = temp_bb
M_12Y0_ab = temp_ab
if isinstance(eris.vvvv_p, list):
a = 0
temp_1 = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
temp_2 = np.zeros((nocc_a, nvir_a))
for dataset in eris.vvvv_p:
k = dataset.shape[0]
vvvv = dataset[:]
v_eeee_aaaa = np.zeros((k, nvir_a, nvir_a, nvir_a))
v_eeee_aaaa[:, :, ab_ind_a[0], ab_ind_a[1]] = vvvv
v_eeee_aaaa[:, :, ab_ind_a[1], ab_ind_a[0]] = -vvvv
temp_1[:,
:,
a:a + k,
:] += lib.einsum('Ia,Jb,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
temp_1[:,
:,
a:a + k,
:] -= lib.einsum('Ja,Ib,CDab->IJCD',
Y_aa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
temp_2[:,
a:a + k] += 1 / 2 * lib.einsum('Iiab,ic,Dcab->ID',
Y_aaaa,
t1_ce_aa,
v_eeee_aaaa,
optimize=einsum_type)
del v_eeee_aaaa
a += k
M_12Y0_aa = temp_1
M_02Y1_aa += temp_2
if isinstance(eris.VVVV_p, list):
a = 0
temp_3 = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
temp_4 = np.zeros((nocc_b, nvir_b))
for dataset in eris.VVVV_p:
k = dataset.shape[0]
VVVV = dataset[:]
v_eeee_bbbb = np.zeros((k, nvir_b, nvir_b, nvir_b))
v_eeee_bbbb[:, :, ab_ind_b[0], ab_ind_b[1]] = VVVV
v_eeee_bbbb[:, :, ab_ind_b[1], ab_ind_b[0]] = -VVVV
temp_3[:,
:,
a:a + k,
:] += lib.einsum('ia,jb,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
temp_3[:,
:,
a:a + k,
:] -= lib.einsum('ja,ib,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
temp_4[:,
a:a + k] += 1 / 2 * lib.einsum('ijab,jc,dcab->id',
Y_bbbb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
del v_eeee_bbbb
a += k
M_12Y0_bb = temp_3
M_02Y1_bb += temp_4
del temp_3
del temp_4
if isinstance(eris.vvvv_p, type(None)):
temp_3 = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nvir_b,chnk_size):
v_eeee_bbbb = dfadc.get_vVvV_df(
adc, eris.LVV, eris.LVV, a, chnk_size)
temp_3[:,
:,
a:b,
:] += lib.einsum('ia,jb,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
temp_3[:,
:,
a:b,
:] -= lib.einsum('ja,ib,cdab->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
temp_3[:,
:,
a:b,
:] -= lib.einsum('ia,jb,cdba->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
temp_3[:,
:,
a:b,
:] += lib.einsum('ja,ib,cdba->ijcd',
Y_bb,
t1_ce_bb,
v_eeee_bbbb,
optimize=einsum_type)
del v_eeee_bbbb
M_12Y0_bb = temp_3
M_02Y1_bb += lib.einsum('ijdc,jc->id',
ladder_int_b,
t1_ce_bb,
optimize=einsum_type)
del temp_3
del ladder_int_b
if not isinstance(adc._scf, scf.rohf.ROHF):
M_12Y0_aa = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
M_12Y0_ab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
M_02Y1_aa = np.zeros((nocc_a, nvir_a))
M_02Y1_bb = np.zeros((nocc_b, nvir_b))
M_12Y0_bb = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
if isinstance(eris.ovvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
v_ceee_aaaa = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.Lvv, a, chnk_size).reshape(-1, nvir_a, nvir_a, nvir_a)
M_12Y0_aa += -lib.einsum('Ia,JiCb,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiCb,iaDb->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiDb,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,JiDb,iaCb->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiCb,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiCb,iaDb->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiDb,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiDb,iaCb->IJCD',
Y_aa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,IJab,ibDa->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,IJab,ibCa->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJCb,ibDa->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJCb,iaDb->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJDb,ibCa->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJDb,iaCb->IJCD',
Y_aa[a:b],
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,ijbd,ibCa->IjCd',
Y_aa,
t1_ccee_abab[a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,ijbd,iaCb->IjCd',
Y_aa,
t1_ccee_abab[a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,Ijbd,ibCa->IjCd',
Y_aa[a:b],
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,Ijbd,iaCb->IjCd',
Y_aa[a:b],
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_aaaa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ijac,jcbD->ID',
Y_aaaa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ijac,jDbc->ID',
Y_aaaa,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,jicb,jcaD->ID',
Y_abab,
t1_ccee_abab[a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jicb,jDac->ID',
Y_abab,
t1_ccee_abab[a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,jkbc,kcab->id',
Y_abab,
t1_ccee_aaaa[:,
a:b],
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa[a:b] -= 1 / 2 * lib.einsum(
'ijDa,ijbc,Ibac->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa[a:b] += 1 / 2 * lib.einsum(
'ijab,ijac,IDbc->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa[a:b] -= 1 / 2 * lib.einsum(
'ijab,ijac,IcbD->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa[a:b] += lib.einsum(
'ijab,ijcb,IDac->ID', Y_abab, t1_ccee_abab, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa[a:b] -= lib.einsum(
'ijab,ijcb,IcaD->ID', Y_abab, t1_ccee_abab, v_ceee_aaaa, optimize=einsum_type)
del v_ceee_aaaa
else:
v_ceee_aaaa = uadc_ao2mo.unpack_eri_1(eris.ovvv, nvir_a)
M_12Y0_aa -= lib.einsum('Ia,JiCb,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiCb,iaDb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiDb,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,JiDb,iaCb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiCb,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiCb,iaDb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiDb,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiDb,iaCb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,IJab,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,IJab,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJCb,ibDa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJCb,iaDb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJDb,ibCa->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJDb,iaCb->IJCD',
Y_aa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,ijbd,ibCa->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,ijbd,iaCb->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,Ijbd,ibCa->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,Ijbd,iaCb->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_aaaa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ijac,jcbD->ID',
Y_aaaa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ijac,jDbc->ID',
Y_aaaa,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * \
lib.einsum('ijDa,ijbc,Ibac->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('ijab,ijac,IDbc->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * \
lib.einsum('ijab,ijac,IcbD->ID', Y_aaaa, t1_ccee_aaaa, v_ceee_aaaa, optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,jicb,jcaD->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jicb,jDac->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijab,ijcb,IDac->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijab,ijcb,IcaD->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aaaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,jkbc,kcab->id',
Y_abab,
t1_ccee_aaaa,
v_ceee_aaaa,
optimize=einsum_type)
del v_ceee_aaaa
if isinstance(eris.OVVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
v_ceee_bbbb = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.LVV, a, chnk_size).reshape(-1, nvir_b, nvir_b, nvir_b)
M_12Y0_bb += -lib.einsum('ia,jkcb,kbda->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,jkcb,kadb->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,jkdb,kbca->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,jkdb,kacb->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,ikcb,kbda->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ikcb,kadb->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ikdb,kbca->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,ikdb,kacb->ijcd',
Y_bb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ijab,kbda->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ijab,kbca->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijcb,kbda->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijcb,kadb->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijdb,kbca->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijdb,kacb->ijcd',
Y_bb[a:b],
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,IiCb,ibda->IjCd',
Y_bb,
t1_ccee_abab[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,IiCb,iadb->IjCd',
Y_bb,
t1_ccee_abab[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,IjCb,ibda->IjCd',
Y_bb[a:b],
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,IjCb,iadb->IjCd',
Y_bb[a:b],
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,jkbc,kcab->id',
Y_bbbb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijab,jkac,kcbd->id',
Y_bbbb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijab,jkac,kdbc->id',
Y_bbbb,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_abab,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,jkac,kcbd->id',
Y_abab,
t1_ccee_abab[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,jkac,kdbc->id',
Y_abab,
t1_ccee_abab[:,
a:b],
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb[a:b] -= 1 / 2 * lib.einsum(
'jkda,jkbc,ibac->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb[a:b] += 1 / 2 * lib.einsum(
'jkab,jkac,idbc->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb[a:b] -= 1 / 2 * lib.einsum(
'jkab,jkac,icbd->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb[a:b] += lib.einsum(
'jkab,jkac,idbc->id', Y_abab, t1_ccee_abab, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb[a:b] -= lib.einsum(
'jkab,jkac,icbd->id', Y_abab, t1_ccee_abab, v_ceee_bbbb, optimize=einsum_type)
del v_ceee_bbbb
else:
v_ceee_bbbb = uadc_ao2mo.unpack_eri_1(eris.OVVV, nvir_b)
M_12Y0_bb -= lib.einsum('ia,jkcb,kbda->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,jkcb,kadb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,jkdb,kbca->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,jkdb,kacb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,ikcb,kbda->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ikcb,kadb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ikdb,kbca->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,ikdb,kacb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ijab,kbda->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ijab,kbca->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijcb,kbda->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijcb,kadb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijdb,kbca->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijdb,kacb->ijcd',
Y_bb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,IiCb,ibda->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,IiCb,iadb->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,IjCb,ibda->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,IjCb,iadb->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,jkbc,kcab->id',
Y_bbbb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijab,jkac,kcbd->id',
Y_bbbb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijab,jkac,kdbc->id',
Y_bbbb,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * \
lib.einsum('jkda,jkbc,ibac->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('jkab,jkac,idbc->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * \
lib.einsum('jkab,jkac,icbd->id', Y_bbbb, t1_ccee_bbbb, v_ceee_bbbb, optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_abab,
t1_ccee_bbbb,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,jkac,kcbd->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,jkac,kdbc->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkab,jkac,idbc->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkab,jkac,icbd->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbbb,
optimize=einsum_type)
del v_ceee_bbbb
if isinstance(eris.ovVV, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_a,chnk_size):
v_ceee_aabb = dfadc.get_ovvv_spin_df(
adc, eris.Lov, eris.LVV, a, chnk_size).reshape(-1, nvir_a, nvir_b, nvir_b)
M_12Y0_bb -= lib.einsum('ia,kjbc,kbda->ijcd',
Y_bb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,kjbd,kbca->ijcd',
Y_bb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,kibc,kbda->ijcd',
Y_bb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,kibd,kbca->ijcd',
Y_bb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijcb,kadb->ijcd',
Y_aa[a:b],
t1_ccee_bbbb,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijdb,kacb->ijcd',
Y_aa[a:b],
t1_ccee_bbbb,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,ijCb,iadb->IjCd',
Y_aa,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,Ijab,iadb->IjCd',
Y_aa[a:b],
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,IjCb,iadb->IjCd',
Y_aa[a:b],
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,IiCb,ibda->IjCd',
Y_bb,
t1_ccee_aaaa[:,
a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kjbc,kbac->id',
Y_bbbb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijab,kjca,kcbd->id',
Y_bbbb,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jibc,jbac->ID',
Y_abab,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jiac,jDbc->ID',
Y_abab,
t1_ccee_abab[a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,jkac,kcbd->id',
Y_abab,
t1_ccee_aaaa[:,
a:b],
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa[a:b] += 1 / 2 * lib.einsum(
'ijab,ijac,IDbc->ID', Y_bbbb, t1_ccee_bbbb, v_ceee_aabb, optimize=einsum_type)
M_02Y1_aa[a:b] -= lib.einsum(
'ijDa,ijbc,Ibac->ID', Y_abab, t1_ccee_abab, v_ceee_aabb, optimize=einsum_type)
M_02Y1_aa[a:b] += lib.einsum(
'ijab,ijac,IDbc->ID', Y_abab, t1_ccee_abab, v_ceee_aabb, optimize=einsum_type)
del v_ceee_aabb
else:
v_ceee_aabb = uadc_ao2mo.unpack_eri_1(eris.ovVV, nvir_b)
M_12Y0_bb -= lib.einsum('ia,kjbc,kbda->ijcd',
Y_bb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,kjbd,kbca->ijcd',
Y_bb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,kibc,kbda->ijcd',
Y_bb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,kibd,kbca->ijcd',
Y_bb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ijcb,kadb->ijcd',
Y_aa,
t1_ccee_bbbb,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ijdb,kacb->ijcd',
Y_aa,
t1_ccee_bbbb,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,ijCb,iadb->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,Ijab,iadb->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,IjCb,iadb->IjCd',
Y_aa,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,IiCb,ibda->IjCd',
Y_bb,
t1_ccee_aaaa,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kjbc,kbac->id',
Y_bbbb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijab,kjca,kcbd->id',
Y_bbbb,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('ijab,ijac,IDbc->ID', Y_bbbb, t1_ccee_bbbb, v_ceee_aabb, optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jibc,jbac->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jiac,jDbc->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,ijbc,Ibac->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijab,ijac,IDbc->ID',
Y_abab,
t1_ccee_abab,
v_ceee_aabb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,jkac,kcbd->id',
Y_abab,
t1_ccee_aaaa,
v_ceee_aabb,
optimize=einsum_type)
del v_ceee_aabb
if isinstance(eris.OVvv, type(None)):
chnk_size = uadc_ao2mo.calculate_chunk_size(adc)
for a,b in lib.prange(0,nocc_b,chnk_size):
v_ceee_bbaa = dfadc.get_ovvv_spin_df(
adc, eris.LOV, eris.Lvv, a, chnk_size).reshape(-1, nvir_b, nvir_a, nvir_a)
M_12Y0_aa -= lib.einsum('Ia,JiCb,ibDa->IJCD',
Y_aa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiDb,ibCa->IJCD',
Y_aa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiCb,ibDa->IJCD',
Y_aa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiDb,ibCa->IJCD',
Y_aa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJCb,iaDb->IJCD',
Y_bb[a:b],
t1_ccee_aaaa,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJDb,iaCb->IJCD',
Y_bb[a:b],
t1_ccee_aaaa,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,jidb,ibCa->IjCd',
Y_aa,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,Iibd,iaCb->IjCd',
Y_bb,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,Ijab,ibCa->IjCd',
Y_bb[a:b],
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,Ijbd,iaCb->IjCd',
Y_bb[a:b],
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_aaaa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ijac,jcbD->ID',
Y_aaaa,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ijbc,jcaD->ID',
Y_abab,
t1_ccee_bbbb[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,jkbc,kcab->id',
Y_abab,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,jkcb,kdac->id',
Y_abab,
t1_ccee_abab[:,
a:b],
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb[a:b] += 1 / 2 * lib.einsum(
'jkab,jkac,idbc->id', Y_aaaa, t1_ccee_aaaa, v_ceee_bbaa, optimize=einsum_type)
M_02Y1_bb[a:b] -= lib.einsum(
'jkad,jkbc,icab->id', Y_abab, t1_ccee_abab, v_ceee_bbaa, optimize=einsum_type)
M_02Y1_bb[a:b] += lib.einsum(
'jkab,jkcb,idac->id', Y_abab, t1_ccee_abab, v_ceee_bbaa, optimize=einsum_type)
del v_ceee_bbaa
else:
v_ceee_bbaa = uadc_ao2mo.unpack_eri_1(eris.OVvv, nvir_a)
M_12Y0_aa -= lib.einsum('Ia,JiCb,ibDa->IJCD',
Y_aa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,JiDb,ibCa->IJCD',
Y_aa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,IiCb,ibDa->IJCD',
Y_aa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,IiDb,ibCa->IJCD',
Y_aa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IJCb,iaDb->IJCD',
Y_bb,
t1_ccee_aaaa,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IJDb,iaCb->IJCD',
Y_bb,
t1_ccee_aaaa,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,jidb,ibCa->IjCd',
Y_aa,
t1_ccee_bbbb,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,Iibd,iaCb->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,Ijab,ibCa->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,Ijbd,iaCb->IjCd',
Y_bb,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,ijbc,jcab->ID',
Y_aaaa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ijac,jcbD->ID',
Y_aaaa,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('jkab,jkac,idbc->id', Y_aaaa, t1_ccee_aaaa, v_ceee_bbaa, optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ijbc,jcaD->ID',
Y_abab,
t1_ccee_bbbb,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,jkbc,kcab->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,jkcb,kdac->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,jkbc,icab->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkab,jkcb,idac->id',
Y_abab,
t1_ccee_abab,
v_ceee_bbaa,
optimize=einsum_type)
del v_ceee_bbaa
M_12Y0_aa -= lib.einsum('Ia,ijCD,jaiJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,ijCD,jaiI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,IjDa,jaiJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,IjDa,iajJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,IjDa,jaiJ->IJCD',
Y_aa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,JjDa,jaiI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,JjDa,iajI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,JjDa,jaiI->IJCD',
Y_aa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,IjCa,jaiJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,IjCa,iajJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,IjCa,jaiJ->IJCD',
Y_aa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,JjCa,jaiI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,JjCa,iajI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,JjCa,jaiI->IJCD',
Y_aa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,IjCD,jaiJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IjCD,iajJ->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,JjCD,jaiI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,JjCD,iajI->IJCD',
Y_aa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_12Y0_aa += lib.einsum('Ia,ia,JiCD->IJCD',
Y_aa,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,ia,IiCD->IJCD',
Y_aa,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,ia,IJDa->IJCD',
Y_aa,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,ia,IJCa->IJCD',
Y_aa,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,iC,JDai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,iC,iJDa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,iD,JCai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,iD,iJCa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ia,ia,JCDi->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,ia,iCDJ->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,iC,IDai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,iC,iIDa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,iD,ICai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,iD,iICa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ja,ia,ICDi->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,ia,iCDI->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,jD,IiJj->IJCD',
Y_aa,
t1_ce_aa,
v_cccc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,jD,IjJi->IJCD',
Y_aa,
t1_ce_aa,
v_cccc_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,Ia,JDai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,Ia,iJDa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,Ja,IDai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,Ja,iIDa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,ia,IDaJ->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iC,ia,JDaI->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,jC,IiJj->IJCD',
Y_aa,
t1_ce_aa,
v_cccc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,jC,IjJi->IJCD',
Y_aa,
t1_ce_aa,
v_cccc_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,Ia,JCai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,Ia,iJCa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,Ja,ICai->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,Ja,iICa->IJCD',
Y_aa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,ia,ICaJ->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iD,ia,JCaI->IJCD',
Y_aa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'Ia,C,ia,JiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'Ia,D,ia,JiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'Ia,J,ia,JiCD->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'Ia,a,ia,JiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('Ia,i,ia,JiCD->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'Ja,C,ia,IiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'Ja,D,ia,IiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'Ja,I,ia,IiCD->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'Ja,a,ia,IiCD->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('Ja,i,ia,IiCD->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'iC,D,ia,IJDa->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'iC,I,ia,IJDa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'iC,J,ia,IJDa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'iC,i,ia,IJDa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('iC,a,ia,IJDa->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= 1 / 2 * lib.einsum(
'iD,C,ia,IJCa->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'iD,I,ia,IJCa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'iD,J,ia,IJCa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa += 1 / 2 * lib.einsum(
'iD,i,ia,IJCa->IJCD',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('iD,a,ia,IJCa->IJCD',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,klcd,lakj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,klcd,laki->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ilda,lakj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ilda,kalj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,jlda,laki->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,jlda,kali->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,liad,lakj->ijcd',
Y_bb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ljad,laki->ijcd',
Y_bb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ilca,lakj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,ilca,kalj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,jlca,laki->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,jlca,kali->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,liac,lakj->ijcd',
Y_bb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,ljac,laki->ijcd',
Y_bb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,ilcd,lakj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ilcd,kalj->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,jlcd,laki->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,jlcd,kali->ijcd',
Y_bb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ka,ilcd,kalj->ijcd',
Y_aa,
t1_ccee_bbbb,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ka,jlcd,kali->ijcd',
Y_aa,
t1_ccee_bbbb,
v_cecc_aabb,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_12Y0_bb += lib.einsum('ia,ka,jkcd->ijcd',
Y_bb,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ka,ikcd->ijcd',
Y_bb,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ka,ijda->ijcd',
Y_bb,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ka,ijca->ijcd',
Y_bb,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,kc,jdak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,kc,kjda->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,kd,jcak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,kd,kjca->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ia,ka,jcdk->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,ka,kcdj->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,kc,idak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,kc,kida->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,kd,icak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,kd,kica->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ja,ka,icdk->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,ka,kcdi->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ld,ikjl->ijcd',
Y_bb,
t1_ce_bb,
v_cccc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ld,iljk->ijcd',
Y_bb,
t1_ce_bb,
v_cccc_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ia,jdak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ia,kjda->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ja,idak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ja,kida->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,ka,idaj->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kc,ka,jdai->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,lc,ikjl->ijcd',
Y_bb,
t1_ce_bb,
v_cccc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,lc,iljk->ijcd',
Y_bb,
t1_ce_bb,
v_cccc_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,ia,jcak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ia,kjca->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ja,icak->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,ja,kica->ijcd',
Y_bb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,ka,icaj->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kd,ka,jcai->ijcd',
Y_bb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'ia,c,ka,jkcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'ia,d,ka,jkcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'ia,j,ka,jkcd->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'ia,a,ka,jkcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('ia,k,ka,jkcd->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'ja,c,ka,ikcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'ja,d,ka,ikcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'ja,i,ka,ikcd->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'ja,a,ka,ikcd->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('ja,k,ka,ikcd->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'kc,d,ka,ijda->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'kc,i,ka,ijda->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'kc,j,ka,ijda->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'kc,k,ka,ijda->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += lib.einsum('kc,a,ka,ijda->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= 1 / 2 * lib.einsum(
'kd,c,ka,ijca->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'kd,i,ka,ijca->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'kd,j,ka,ijca->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb += 1 / 2 * lib.einsum(
'kd,k,ka,ijca->ijcd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_bb -= lib.einsum('kd,a,ka,ijca->ijcd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_12Y0_aa -= lib.einsum('ia,IjCD,iajJ->IJCD',
Y_bb,
t1_ccee_aaaa,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_aa += lib.einsum('ia,JjCD,iajI->IJCD',
Y_bb,
t1_ccee_aaaa,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,ikCd,iakj->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('iC,Ikad,iakj->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,jkda,kaiI->IjCd',
Y_aa,
t1_ccee_bbbb,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,kjad,kaiI->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('iC,kjad,iakI->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,IkCd,iakj->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,kjCd,kaiI->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,kjCd,iakI->IjCd',
Y_aa,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,ia,IiCd->IjCd',
Y_bb,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,ia,IjCa->IjCd',
Y_bb,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,ikCd,kaiI->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,IkCa,kaij->IjCd',
Y_bb,
t1_ccee_aaaa,
v_cecc_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,IkCa,kaij->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('id,IkCa,iakj->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('id,kjCa,iakI->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ia,IkCd,kaij->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,IkCd,iakj->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ia,kjCd,iakI->IjCd',
Y_bb,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_12Y0_ab -= lib.einsum('Ia,ia,ijCd->IjCd',
Y_aa,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,ia,Ijad->IjCd',
Y_aa,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,iC,jdai->IjCd',
Y_aa,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,id,ijCa->IjCd',
Y_aa,
t1_ce_bb,
v_ccee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('Ia,ia,iCdj->IjCd',
Y_aa,
t1_ce_aa,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,Ia,jdai->IjCd',
Y_aa,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('iC,kd,Iijk->IjCd',
Y_aa,
t1_ce_bb,
v_cccc_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,ja,Iiad->IjCd',
Y_aa,
t1_ce_bb,
v_ccee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,ia,Iadj->IjCd',
Y_aa,
t1_ce_aa,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'Ia,C,ia,ijCd->IjCd',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'Ia,d,ia,ijCd->IjCd',
Y_aa,
e_extern_b,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'Ia,j,ia,ijCd->IjCd',
Y_aa,
e_core_b,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'Ia,a,ia,ijCd->IjCd',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('Ia,i,ia,ijCd->IjCd',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'iC,I,ia,Ijad->IjCd',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'iC,d,ia,Ijad->IjCd',
Y_aa,
e_extern_b,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'iC,j,ia,Ijad->IjCd',
Y_aa,
e_core_b,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'iC,i,ia,Ijad->IjCd',
Y_aa,
e_core_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('iC,a,ia,Ijad->IjCd',
Y_aa,
e_extern_a,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,iC,Iiad->IjCd',
Y_bb,
t1_ce_aa,
v_ccee_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,id,ICai->IjCd',
Y_bb,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('ja,ia,ICdi->IjCd',
Y_bb,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('id,kC,Ikji->IjCd',
Y_bb,
t1_ce_aa,
v_cccc_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,Ia,ijCa->IjCd',
Y_bb,
t1_ce_aa,
v_ccee_bbaa,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,ja,ICai->IjCd',
Y_bb,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,ia,ICaj->IjCd',
Y_bb,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'ja,C,ia,IiCd->IjCd',
Y_bb,
e_extern_a,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'ja,I,ia,IiCd->IjCd',
Y_bb,
e_core_a,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'ja,d,ia,IiCd->IjCd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'ja,a,ia,IiCd->IjCd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += lib.einsum('ja,i,ia,IiCd->IjCd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= 1 / 2 * lib.einsum(
'id,C,ia,IjCa->IjCd',
Y_bb,
e_extern_a,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'id,I,ia,IjCa->IjCd',
Y_bb,
e_core_a,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'id,j,ia,IjCa->IjCd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab += 1 / 2 * lib.einsum(
'id,i,ia,IjCa->IjCd',
Y_bb,
e_core_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_12Y0_ab -= lib.einsum('id,a,ia,IjCa->IjCd',
Y_bb,
e_extern_b,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,i,ia->ID',
Y_aaaa,
e_core_a,
t2_ce_aa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,a,ia->ID',
Y_aaaa,
e_extern_a,
t2_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jkab,kbji->ID',
Y_aaaa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jkab,kbji->ID',
Y_aaaa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('Iiab,jkab,jDki->ID', Y_aaaa, t1_ccee_aaaa, v_cecc_aaaa, optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ikab,kbIj->ID',
Y_aaaa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,ikab,Ibkj->ID',
Y_aaaa,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ikab,kbIj->ID',
Y_aaaa,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * \
lib.einsum('ijab,ikab,IDkj->ID', Y_aaaa, t1_ccee_aaaa, v_cecc_aaaa, optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('ijab,ikab,kDIj->ID', Y_aaaa, t1_ccee_aaaa, v_cecc_aaaa, optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_02Y1_aa += lib.einsum('IiDa,jb,ijab->ID',
Y_aaaa,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,ijab->ID',
Y_aaaa,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('Iiab,jD,ijab->ID', Y_aaaa, h_ce_aa, t1_ccee_aaaa, optimize=einsum_type)
M_02Y1_aa += 1 / 2 * \
lib.einsum('ijDa,Ib,ijab->ID', Y_aaaa, h_ce_aa, t1_ccee_aaaa, optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jb,ijba->ID',
Y_aaaa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jb,ibaj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_aaaa,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_aaaa,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,jD,iabj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,ja,ijDb->ID',
Y_aaaa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ja,jDbi->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,Ib,iabj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ib,Ijab->ID',
Y_aaaa,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,ib,Ibaj->ID',
Y_aaaa,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ka,Iikj->ID',
Y_aaaa,
t1_ce_aa,
v_cccc_aaaa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'IiDa,i,ijab,jb->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'IiDa,i,ijab,jb->ID',
Y_aaaa,
e_core_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'IiDa,a,ijab,jb->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'IiDa,a,ijab,jb->ID',
Y_aaaa,
e_extern_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,j,ijab,jb->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,b,ijab,jb->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,j,ijab,jb->ID',
Y_aaaa,
e_core_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,b,ijab,jb->ID',
Y_aaaa,
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa += 1 / 4 * lib.einsum(
'Iiab,D,ijab,jD->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 4 * lib.einsum(
'Iiab,i,ijab,jD->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'Iiab,b,ijab,jD->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'Iiab,j,ijab,jD->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 4 * lib.einsum(
'ijDa,I,ijab,Ib->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'ijDa,j,ijab,Ib->ID',
Y_aaaa,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 4 * lib.einsum(
'ijDa,a,ijab,Ib->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'ijDa,b,ijab,Ib->ID',
Y_aaaa,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,j,ja->id',
Y_bbbb,
e_core_b,
t2_ce_bb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,a,ja->id',
Y_bbbb,
e_extern_b,
t2_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,klba,kblj->id',
Y_bbbb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,klab,lbkj->id',
Y_bbbb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('ijab,klab,kdlj->id', Y_bbbb, t1_ccee_bbbb, v_cecc_bbbb, optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkda,jlab,lbik->id',
Y_bbbb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkda,jlab,iblk->id',
Y_bbbb,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkda,ljba,lbik->id',
Y_bbbb,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * \
lib.einsum('jkab,jlab,idlk->id', Y_bbbb, t1_ccee_bbbb, v_cecc_bbbb, optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('jkab,jlab,ldik->id', Y_bbbb, t1_ccee_bbbb, v_cecc_bbbb, optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * \
lib.einsum('jkab,jlab,idlk->id', Y_aaaa, t1_ccee_aaaa, v_cecc_bbaa, optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_02Y1_bb += lib.einsum('ijda,kb,kjba->id',
Y_bbbb,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kb,jkab->id',
Y_bbbb,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('ijab,kd,jkab->id', Y_bbbb, h_ce_bb, t1_ccee_bbbb, optimize=einsum_type)
M_02Y1_bb += 1 / 2 * \
lib.einsum('jkda,ib,jkab->id', Y_bbbb, h_ce_bb, t1_ccee_bbbb, optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kb,jabk->id',
Y_bbbb,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kb,jabk->id',
Y_bbbb,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kb,jabk->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,kb,jkba->id',
Y_bbbb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,kb,jabk->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,kb,jbak->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijab,kd,jabk->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijab,ka,jkdb->id',
Y_bbbb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijab,ka,kdbj->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkda,ib,jabk->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkda,jb,ikab->id',
Y_bbbb,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkda,jb,ibak->id',
Y_bbbb,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkda,la,ijlk->id',
Y_bbbb,
t1_ce_bb,
v_cccc_bbbb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'ijda,j,jkab,kb->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'ijda,j,kjba,kb->id',
Y_bbbb,
e_core_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'ijda,a,jkab,kb->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'ijda,a,kjba,kb->id',
Y_bbbb,
e_extern_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,k,kjba,kb->id',
Y_bbbb,
e_core_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,b,kjba,kb->id',
Y_bbbb,
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('ijda,k,jkab,kb->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('ijda,b,jkab,kb->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 4 * lib.einsum(
'ijab,d,jkab,kd->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 4 * lib.einsum(
'ijab,j,jkab,kd->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'ijab,b,jkab,kd->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'ijab,k,jkab,kd->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 4 * lib.einsum(
'jkda,i,jkab,ib->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jkda,k,jkab,ib->id',
Y_bbbb,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 4 * lib.einsum(
'jkda,a,jkab,ib->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jkda,b,jkab,ib->id',
Y_bbbb,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * \
lib.einsum('ijab,ikab,IDkj->ID', Y_bbbb, t1_ccee_bbbb, v_cecc_aabb, optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,i,ia->ID',
Y_abab,
e_core_b,
t2_ce_bb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,a,ia->ID',
Y_abab,
e_extern_b,
t2_ce_bb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,jiba->ID',
Y_abab,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,ijab->ID',
Y_abab,
h_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jD,jiab->ID',
Y_abab,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,Ib,ijba->ID',
Y_abab,
h_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jkba,jbki->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jkab,kbji->ID',
Y_abab,
t1_ccee_bbbb,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,jkab,jDki->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ikba,Ibkj->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,jkab,kbIi->ID',
Y_abab,
t1_ccee_bbbb,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,kjba,kbIi->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,kjba,Ibki->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijab,ikab,IDkj->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijab,kjab,IDki->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijab,kjab,kDIi->ID',
Y_abab,
t1_ccee_abab,
v_cecc_aaaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_02Y1_aa -= 1 / 2 * lib.einsum(
'IiDa,i,ijab,jb->ID',
Y_abab,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'IiDa,i,jiba,jb->ID',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'IiDa,a,ijab,jb->ID',
Y_abab,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'IiDa,a,jiba,jb->ID',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,j,jiba,jb->ID',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,b,jiba,jb->ID',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,j,ijab,jb->ID',
Y_abab,
e_core_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,b,ijab,jb->ID',
Y_abab,
e_extern_b,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'Iiab,D,jiab,jD->ID',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'Iiab,i,jiab,jD->ID',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'Iiab,a,jiab,jD->ID',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'Iiab,b,jiab,jD->ID',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('Iiab,j,jiab,jD->ID',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'ijDa,I,ijba,Ib->ID',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'ijDa,i,ijba,Ib->ID',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += 1 / 2 * lib.einsum(
'ijDa,j,ijba,Ib->ID',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= 1 / 2 * lib.einsum(
'ijDa,a,ijba,Ib->ID',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,b,ijba,Ib->ID',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_abab,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_abab,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_abab,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jb,ijba->ID',
Y_abab,
t1_ce_bb,
v_ccee_bbbb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('IiDa,jb,iabj->ID',
Y_abab,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('IiDa,jb,ibaj->ID',
Y_abab,
t1_ce_bb,
v_ceec_bbbb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jD,ibaj->ID',
Y_abab,
t1_ce_aa,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,ja,jDbi->ID',
Y_abab,
t1_ce_aa,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('Iiab,jb,ijDa->ID',
Y_abab,
t1_ce_bb,
v_ccee_bbaa,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,Ib,ibaj->ID',
Y_abab,
t1_ce_aa,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,ib,Ibaj->ID',
Y_abab,
t1_ce_aa,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_aa -= lib.einsum('ijDa,jb,Iiab->ID',
Y_abab,
t1_ce_bb,
v_ccee_aabb,
optimize=einsum_type)
M_02Y1_aa += lib.einsum('ijDa,ka,Iikj->ID',
Y_abab,
t1_ce_bb,
v_cccc_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,j,ja->id',
Y_abab,
e_core_a,
t2_ce_aa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,a,ja->id',
Y_abab,
e_extern_a,
t2_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,klab,lbkj->id',
Y_abab,
t1_ccee_aaaa,
v_cecc_aaaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,klab,lbkj->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,klab,ldkj->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,jlab,lbik->id',
Y_abab,
t1_ccee_aaaa,
v_cecc_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,jlab,lbik->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkad,jlab,iblk->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkad,lkab,iblj->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkab,jlab,idlk->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkab,jlab,ldik->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbbb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkab,lkab,idlj->id',
Y_abab,
t1_ccee_abab,
v_cecc_bbaa,
optimize=einsum_type)
if isinstance(adc._scf, scf.rohf.ROHF):
M_02Y1_bb += lib.einsum('jiad,kb,jkab->id',
Y_abab,
h_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,kb,jkab->id',
Y_abab,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,kd,jkab->id',
Y_abab,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,ib,jkab->id',
Y_abab,
h_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,kb,jabk->id',
Y_abab,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,kb,jkba->id',
Y_abab,
t1_ce_aa,
v_ccee_aaaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,kb,jabk->id',
Y_abab,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,kb,jbak->id',
Y_abab,
t1_ce_aa,
v_ceec_aaaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,kb,jabk->id',
Y_abab,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,kb,jabk->id',
Y_abab,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,kd,jabk->id',
Y_abab,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,ka,jkdb->id',
Y_abab,
t1_ce_aa,
v_ccee_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiab,kb,kdaj->id',
Y_abab,
t1_ce_bb,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,ib,jabk->id',
Y_abab,
t1_ce_bb,
v_ceec_aabb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,jb,ikab->id',
Y_abab,
t1_ce_aa,
v_ccee_bbaa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,kb,ibaj->id',
Y_abab,
t1_ce_bb,
v_ceec_bbaa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jkad,la,ljik->id',
Y_abab,
t1_ce_aa,
v_cccc_aabb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jiad,j,jkab,kb->id',
Y_abab,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jiad,j,jkab,kb->id',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jiad,a,jkab,kb->id',
Y_abab,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jiad,a,jkab,kb->id',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,k,jkab,kb->id',
Y_abab,
e_core_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,b,jkab,kb->id',
Y_abab,
e_extern_a,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jiad,k,jkab,kb->id',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiad,b,jkab,kb->id',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jiab,d,jkab,kd->id',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jiab,j,jkab,kd->id',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jiab,a,jkab,kd->id',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jiab,b,jkab,kd->id',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += lib.einsum('jiab,k,jkab,kd->id',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jkad,i,jkab,ib->id',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jkad,j,jkab,ib->id',
Y_abab,
e_core_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb += 1 / 2 * lib.einsum(
'jkad,k,jkab,ib->id',
Y_abab,
e_core_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= 1 / 2 * lib.einsum(
'jkad,a,jkab,ib->id',
Y_abab,
e_extern_a,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
M_02Y1_bb -= lib.einsum('jkad,b,jkab,ib->id',
Y_abab,
e_extern_b,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
s[s_a:f_a] += M_02Y1_aa.reshape(-1)
s[s_b:f_b] += M_02Y1_bb.reshape(-1)
s[s_abab:f_ab] += M_12Y0_ab.reshape(-1)
M_12Y0_aa = M_12Y0_aa[:, :, ab_ind_a[0], ab_ind_a[1]]
s[s_aaaa:f_aaaa] += M_12Y0_aa[ij_ind_a[0],
ij_ind_a[1]].reshape(n_doubles_aaaa)
M_12Y0_bb = M_12Y0_bb[:, :, ab_ind_b[0], ab_ind_b[1]]
s[s_bbbb:f_bbbb] += M_12Y0_bb[ij_ind_b[0],
ij_ind_b[1]].reshape(n_doubles_bbbb)
del r1_ab
del r2_a
del r2_b
# exit()
return s
return sigma_
[docs]
def make_rdm1(adc):
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
if adc.method == "adc(3)":
logger.warn(
adc,
"EE-ADC(3) RDMs include contributions up to ADC(2)-X only...")
method = adc.method
t1 = adc.t1
t2 = adc.t2
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
occ_list_a = range(nocc_a)
occ_list_b = range(nocc_b)
if adc.f_ov is None:
f_ov_a = np.zeros((nocc_a, nvir_a))
f_ov_b = np.zeros((nocc_b, nvir_b))
t1_ce_aa = np.zeros((nocc_a, nvir_a))
t1_ce_bb = np.zeros((nocc_b, nvir_b))
else:
f_ov_a, f_ov_b = adc.f_ov
t1_ce_aa = t1[2][0][:]
t1_ce_bb = t1[2][1][:]
if t1[0][0] is not None:
t2_ce_aa = t1[0][0][:]
t2_ce_bb = t1[0][1][:]
else:
t2_ce_aa = None
t2_ce_bb = None
t1_ccee_aaaa = t2[0][0][:]
t1_ccee_abab = t2[0][1][:]
t1_ccee_bbbb = t2[0][2][:]
nmo_a = nocc_a + nvir_a
nmo_b = nocc_b + nvir_b
temp_a = np.zeros((nmo_a, nmo_a))
temp_b = np.zeros((nmo_b, nmo_b))
n_singles_a = nocc_a * nvir_a
n_singles_b = nocc_b * nvir_b
n_doubles_aaaa = nocc_a * (nocc_a - 1) * nvir_a * (nvir_a - 1) // 4
n_doubles_ab = nocc_a * nocc_b * nvir_a * nvir_b
n_doubles_bbbb = nocc_b * (nocc_b - 1) * nvir_b * (nvir_b - 1) // 4
ij_ind_a = np.tril_indices(nocc_a, k=-1)
ij_ind_b = np.tril_indices(nocc_b, k=-1)
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
f_a = n_singles_a
s_b = f_a
f_b = s_b + n_singles_b
s_aaaa = f_b
f_aaaa = s_aaaa + n_doubles_aaaa
s_abab = f_aaaa
f_ab = s_abab + n_doubles_ab
s_bbbb = f_ab
f_bbbb = s_bbbb + n_doubles_bbbb
U = adc.U.T
nroots = U.shape[0]
opdm_a = np.array([])
opdm_b = np.array([])
for r in range(U.shape[0]):
Y_aa = U[r][:f_a].reshape(nocc_a, nvir_a)
Y_bb = U[r][f_a:f_b].reshape(nocc_b, nvir_b)
Y_abab = U[r][s_abab:f_ab].reshape(nocc_a, nocc_b, nvir_a, nvir_b)
Y_vv_u_a = np.zeros((int((nocc_a * (nocc_a - 1)) / 2), nvir_a, nvir_a))
Y_vv_u_a[:, ab_ind_a[0], ab_ind_a[1]] = U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y_vv_u_a[:, ab_ind_a[1], ab_ind_a[0]] = -U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y_aaaa = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
Y_aaaa[ij_ind_a[0], ij_ind_a[1], :, :] = Y_vv_u_a
Y_aaaa[ij_ind_a[1], ij_ind_a[0], :, :] = -Y_vv_u_a
del Y_vv_u_a
Y_vv_u_b = np.zeros((int((nocc_b * (nocc_b - 1)) / 2), nvir_b, nvir_b))
Y_vv_u_b[:, ab_ind_b[0], ab_ind_b[1]] = U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y_vv_u_b[:, ab_ind_b[1], ab_ind_b[0]] = -U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y_bbbb = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
Y_bbbb[ij_ind_b[0], ij_ind_b[1], :, :] = Y_vv_u_b
Y_bbbb[ij_ind_b[1], ij_ind_b[0], :, :] = -Y_vv_u_b
del Y_vv_u_b
# OPDM ADC(2)
temp_a[:nocc_a, :nocc_a] = - 1 / 2 * \
lib.einsum('Ijab,Ljab->IL', Y_aaaa, Y_aaaa, optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('Ia,La->IL',
Y_aa,
Y_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('Ijab,Ljab->IL',
Y_abab,
Y_abab,
optimize=True)
temp_a[occ_list_a, occ_list_a] += 1 / 4 * \
lib.einsum('jkab,jkab->', Y_aaaa, Y_aaaa, optimize=True)
temp_a[occ_list_a,
occ_list_a] += lib.einsum('ja,ja->',
Y_aa,
Y_aa,
optimize=True)
temp_a[occ_list_a,
occ_list_a] += lib.einsum('jkab,jkab->',
Y_abab,
Y_abab,
optimize=True)
temp_a[occ_list_a, occ_list_a] += 1 / 4 * \
lib.einsum('jkab,jkab->', Y_bbbb, Y_bbbb, optimize=True)
temp_a[occ_list_a,
occ_list_a] += lib.einsum('ja,ja->',
Y_bb,
Y_bb,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('Ia,Ljab,jb->IL',
t1_ce_aa,
Y_aaaa,
Y_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('Ia,Ljab,jb->IL',
t1_ce_aa,
Y_abab,
Y_bb,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('La,Ijab,jb->IL',
t1_ce_aa,
Y_aaaa,
Y_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('La,Ijab,jb->IL',
t1_ce_aa,
Y_abab,
Y_bb,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 4 * lib.einsum('Ia,ja,jkbc,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 2 * lib.einsum('Ia,ja,jb,Lb->IL',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 2 * lib.einsum('Ia,ja,jkbc,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,jb,Lkac,jkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,jb,Lkac,jkbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,jb,Lkac,kjcb->IL',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,jb,Lkac,jkbc->IL',
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 4 * lib.einsum('La,ja,jkbc,Ikbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 2 * lib.einsum('La,ja,jb,Ib->IL',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 2 * lib.einsum('La,ja,jkbc,Ikbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('La,jb,Ikac,jkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('La,jb,Ikac,jkbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('La,jb,Ikac,kjcb->IL',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('La,jb,Ikac,jkbc->IL',
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('ja,ja,Ikbc,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,ja,Ib,Lb->IL',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,ja,Ikbc,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,jb,Ia,Lb->IL',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,jb,Ikac,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,jb,Ikac,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += 1 / 2 * lib.einsum('ja,ka,Ijbc,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,kb,Ijac,Lkbc->IL',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,kb,Ijac,Lkcb->IL',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('ja,ja,Ikbc,Lkbc->IL',
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,ja,Ib,Lb->IL',
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,ja,Ikbc,Lkbc->IL',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,jb,Ikca,Lkcb->IL',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,kb,Ijca,Lkbc->IL',
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
temp_a[:nocc_a,
:nocc_a] += lib.einsum('ja,ka,Ijbc,Lkbc->IL',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[:nocc_a,
:nocc_a] -= lib.einsum('ja,kb,Ijca,Lkcb->IL',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:, nocc_a:] = lib.einsum(
'iA,iC->AC', Y_aa, Y_aa, optimize=True)
temp_a[nocc_a:, nocc_a:] += 1 / 2 * \
lib.einsum('ijAb,ijCb->AC', Y_aaaa, Y_aaaa, optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ijAb,ijCb->AC',
Y_abab,
Y_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('iA,ijCb,jb->AC',
t1_ce_aa,
Y_aaaa,
Y_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('iA,ijCb,jb->AC',
t1_ce_aa,
Y_abab,
Y_bb,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('iC,ijAb,jb->AC',
t1_ce_aa,
Y_aaaa,
Y_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('iC,ijAb,jb->AC',
t1_ce_aa,
Y_abab,
Y_bb,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 2 * lib.einsum('iA,ib,jb,jC->AC',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 4 * lib.einsum('iA,ib,jkbd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 2 * lib.einsum('iA,ib,jkbd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iA,jb,ikCd,jkbd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iA,jb,ikCd,jkbd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iA,jb,ikCd,kjdb->AC',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iA,jb,ikCd,jkbd->AC',
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 2 * lib.einsum('iC,ib,jb,jA->AC',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 4 * lib.einsum('iC,ib,jkbd,jkAd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 2 * lib.einsum('iC,ib,jkbd,jkAd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,jb,ikAd,jkbd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,jb,ikAd,jkbd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,jb,ikAd,kjdb->AC',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,jb,ikAd,jkbd->AC',
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,ib,jA,jC->AC',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('ib,ib,jkAd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,ib,jkAd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= 1 / 2 * lib.einsum('ib,id,jkAb,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jb,iA,jC->AC',
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jb,ikAd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jb,ikAd,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,jd,ikAb,jkCd->AC',
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jd,ikAb,kjCd->AC',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jd,ikCb,kjAd->AC',
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,ib,jA,jC->AC',
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_aa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('ib,ib,jkAd,jkCd->AC',
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,ib,jkAd,jkCd->AC',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,id,jkAb,jkCd->AC',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] -= lib.einsum('ib,jb,kiAd,kjCd->AC',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_a[nocc_a:,
nocc_a:] += lib.einsum('ib,jd,kiAb,kjCd->AC',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_IC = lib.einsum('IjCa,ja->IC', Y_aaaa, Y_aa, optimize=True)
temp_IC += lib.einsum('IjCa,ja->IC', Y_abab, Y_bb, optimize=True)
temp_IC += lib.einsum('IC,ja,ja->IC', t1_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC += lib.einsum('IC,ja,ja->IC', t1_ce_aa,
Y_bb, Y_bb, optimize=True)
temp_IC -= lib.einsum('jC,ja,Ia->IC', t1_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC += lib.einsum('IjCa,jkab,kb->IC',
t1_ccee_aaaa, Y_aaaa, Y_aa, optimize=True)
temp_IC += lib.einsum('IjCa,jkab,kb->IC',
t1_ccee_aaaa, Y_abab, Y_bb, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('Ijab,jkab,kC->IC', t1_ccee_aaaa, Y_aaaa, Y_aa, optimize=True)
temp_IC -= lib.einsum('Ia,ja,jC->IC', t1_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC += lib.einsum('IjCa,jkab,kb->IC',
t1_ccee_abab, Y_bbbb, Y_bb, optimize=True)
temp_IC += lib.einsum('IjCa,kjba,kb->IC',
t1_ccee_abab, Y_abab, Y_aa, optimize=True)
temp_IC -= lib.einsum('Ijab,kjab,kC->IC',
t1_ccee_abab, Y_abab, Y_aa, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('jkCa,jkab,Ib->IC', t1_ccee_aaaa, Y_aaaa, Y_aa, optimize=True)
temp_IC -= lib.einsum('jkCa,jkba,Ib->IC',
t1_ccee_abab, Y_abab, Y_aa, optimize=True)
if t2_ce_aa is not None:
temp_IC += lib.einsum('IC,ja,ja->IC', t2_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC += lib.einsum('IC,ja,ja->IC', t2_ce_aa,
Y_bb, Y_bb, optimize=True)
temp_IC -= lib.einsum('jC,ja,Ia->IC', t2_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC -= lib.einsum('Ia,ja,jC->IC', t2_ce_aa,
Y_aa, Y_aa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('Ia,ja,jkCb,kb->IC', Y_aa, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('Ia,ja,jkCb,kb->IC', Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('Ia,jb,ka,jkCb->IC', Y_aa, Y_aa, t1_ce_aa, t1_ccee_aaaa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('Ia,jb,ka,kjCb->IC', Y_aa, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('jC,ja,Ikab,kb->IC', Y_aa, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('jC,ja,Ikab,kb->IC', Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('jC,ka,jb,Ikab->IC', Y_aa, Y_aa, t1_ce_aa, t1_ccee_aaaa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('jC,ka,jb,Ikba->IC', Y_aa, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('ja,ja,IkCb,kb->IC', Y_aa, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('ja,ja,IkCb,kb->IC', Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('ja,jb,IkCa,kb->IC', Y_aa, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('ja,ka,IjCb,kb->IC', Y_aa, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('ja,ja,IkCb,kb->IC', Y_bb, Y_bb, t1_ccee_aaaa, t1_ce_aa, optimize=True)
temp_IC += 1 / 2 * \
lib.einsum('ja,ja,IkCb,kb->IC', Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('ja,jb,IkCa,kb->IC', Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('ja,ka,IjCb,kb->IC', Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=True)
temp_b[:nocc_b, :nocc_b] = - 1 / 2 * \
lib.einsum('ijab,ljab->il', Y_bbbb, Y_bbbb, optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ia,la->il',
Y_bb,
Y_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('jiab,jlab->il',
Y_abab,
Y_abab,
optimize=True)
temp_b[occ_list_b, occ_list_b] += 1 / 4 * \
lib.einsum('jkab,jkab->', Y_aaaa, Y_aaaa, optimize=True)
temp_b[occ_list_b,
occ_list_b] += lib.einsum('ja,ja->',
Y_aa,
Y_aa,
optimize=True)
temp_b[occ_list_b,
occ_list_b] += lib.einsum('jkab,jkab->',
Y_abab,
Y_abab,
optimize=True)
temp_b[occ_list_b, occ_list_b] += 1 / 4 * \
lib.einsum('jkab,jkab->', Y_bbbb, Y_bbbb, optimize=True)
temp_b[occ_list_b,
occ_list_b] += lib.einsum('ja,ja->',
Y_bb,
Y_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ia,ljab,jb->il',
t1_ce_bb,
Y_bbbb,
Y_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ia,jlba,jb->il',
t1_ce_bb,
Y_abab,
Y_aa,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('la,ijab,jb->il',
t1_ce_bb,
Y_bbbb,
Y_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('la,jiba,jb->il',
t1_ce_bb,
Y_abab,
Y_aa,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,lkac,jkbc->il',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,klca,jkbc->il',
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 4 * lib.einsum('ia,ja,jkbc,lkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 2 * lib.einsum('ia,ja,jb,lb->il',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 2 * lib.einsum('ia,ja,kjbc,klbc->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,lkac,jkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,klca,kjcb->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('la,jb,ikac,jkbc->il',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('la,jb,kica,jkbc->il',
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 4 * lib.einsum('la,ja,jkbc,ikbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 2 * lib.einsum('la,ja,jb,ib->il',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 2 * lib.einsum('la,ja,kjbc,kibc->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('la,jb,ikac,jkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('la,jb,kica,kjcb->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ja,ja,ikbc,lkbc->il',
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,ja,ib,lb->il',
Y_aa,
Y_aa,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,ja,kibc,klbc->il',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,jb,kiac,klbc->il',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,ka,jibc,klbc->il',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,kb,jiac,klbc->il',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ja,ja,ikbc,lkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,ja,ib,lb->il',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,ja,kibc,klbc->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,jb,ia,lb->il',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,jb,ikac,lkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,jb,kica,klcb->il',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,kb,ijac,klbc->il',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += lib.einsum('ja,kb,ljac,kibc->il',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[:nocc_b,
:nocc_b] += 1 / 2 * lib.einsum('ja,ka,ijbc,lkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,kb,ijac,lkbc->il',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:, nocc_b:] = lib.einsum(
'ijba,ijbc->ac', Y_abab, Y_abab, optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ia,ic->ac',
Y_bb,
Y_bb,
optimize=True)
temp_b[nocc_b:, nocc_b:] += 1 / 2 * \
lib.einsum('ijab,ijcb->ac', Y_bbbb, Y_bbbb, optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ia,ijcb,jb->ac',
t1_ce_bb,
Y_bbbb,
Y_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ia,jibc,jb->ac',
t1_ce_bb,
Y_abab,
Y_aa,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ic,ijab,jb->ac',
t1_ce_bb,
Y_bbbb,
Y_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ic,jiba,jb->ac',
t1_ce_bb,
Y_abab,
Y_aa,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,ib,ja,jc->ac',
Y_aa,
Y_aa,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,ib,jkda,jkdc->ac',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ib,ib,jkad,jkcd->ac',
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,id,jkba,jkdc->ac',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jb,ikda,jkdc->ac',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,jd,ikba,jkdc->ac',
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 2 * lib.einsum('ia,ib,jb,jc->ac',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 2 * lib.einsum('ia,ib,jkdb,jkdc->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 4 * lib.einsum('ia,ib,jkbd,jkcd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ia,jb,ikcd,jkbd->ac',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ia,jb,kidc,jkbd->ac',
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ia,jb,ikcd,jkbd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ia,jb,kidc,kjdb->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 2 * lib.einsum('ic,ib,jb,ja->ac',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 2 * lib.einsum('ic,ib,jkdb,jkda->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 4 * lib.einsum('ic,ib,jkbd,jkad->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,ikad,jkbd->ac',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,kida,jkbd->ac',
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,ikad,jkbd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,kida,kjdb->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,ib,ja,jc->ac',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,ib,jkda,jkdc->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ib,ib,jkad,jkcd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= 1 / 2 * lib.einsum('ib,id,jkab,jkcd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jd,ikab,jkdc->ac',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jd,ikcb,jkda->ac',
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jb,ia,jc->ac',
Y_bb,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jb,ikad,jkcd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jb,kida,kjdc->ac',
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
temp_b[nocc_b:,
nocc_b:] += lib.einsum('ib,jd,ikab,jkcd->ac',
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
temp_ic = lib.einsum('ijca,ja->ic', Y_bbbb, Y_bb, optimize=True)
temp_ic += lib.einsum('jiac,ja->ic', Y_abab, Y_aa, optimize=True)
temp_ic += lib.einsum('ic,ja,ja->ic', t1_ce_bb,
Y_aa, Y_aa, optimize=True)
temp_ic += lib.einsum('ic,ja,ja->ic', t1_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic -= lib.einsum('jc,ja,ia->ic', t1_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic += lib.einsum('ijca,jkab,kb->ic',
t1_ccee_bbbb, Y_bbbb, Y_bb, optimize=True)
temp_ic += lib.einsum('ijca,kjba,kb->ic',
t1_ccee_bbbb, Y_abab, Y_aa, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ijab,jkab,kc->ic', t1_ccee_bbbb, Y_bbbb, Y_bb, optimize=True)
temp_ic -= lib.einsum('ia,ja,jc->ic', t1_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic += lib.einsum('jiac,jkab,kb->ic',
t1_ccee_abab, Y_aaaa, Y_aa, optimize=True)
temp_ic += lib.einsum('jiac,jkab,kb->ic',
t1_ccee_abab, Y_abab, Y_bb, optimize=True)
temp_ic -= lib.einsum('jiab,jkab,kc->ic',
t1_ccee_abab, Y_abab, Y_bb, optimize=True)
temp_ic -= lib.einsum('jkac,jkab,ib->ic',
t1_ccee_abab, Y_abab, Y_bb, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('jkca,jkab,ib->ic', t1_ccee_bbbb, Y_bbbb, Y_bb, optimize=True)
if t2_ce_bb is not None:
temp_ic += lib.einsum('ic,ja,ja->ic', t2_ce_bb,
Y_aa, Y_aa, optimize=True)
temp_ic += lib.einsum('ic,ja,ja->ic', t2_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic -= lib.einsum('jc,ja,ia->ic', t2_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic -= lib.einsum('ia,ja,jc->ic', t2_ce_bb,
Y_bb, Y_bb, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ia,jb,ka,jkbc->ic', Y_bb, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ia,ja,jkcb,kb->ic', Y_bb, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ia,ja,kjbc,kb->ic', Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ia,jb,ka,jkcb->ic', Y_bb, Y_bb, t1_ce_bb, t1_ccee_bbbb, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ja,ja,ikcb,kb->ic', Y_aa, Y_aa, t1_ccee_bbbb, t1_ce_bb, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ja,ja,kibc,kb->ic', Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ja,jb,ka,kibc->ic', Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ja,ka,jibc,kb->ic', Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('jc,ja,ikab,kb->ic', Y_bb, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('jc,ja,kiba,kb->ic', Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('jc,ka,jb,kiab->ic', Y_bb, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('jc,ka,jb,ikab->ic', Y_bb, Y_bb, t1_ce_bb, t1_ccee_bbbb, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ja,ja,ikcb,kb->ic', Y_bb, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=True)
temp_ic += 1 / 2 * \
lib.einsum('ja,ja,kibc,kb->ic', Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ja,jb,ikca,kb->ic', Y_bb, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ja,ka,ijcb,kb->ic', Y_bb, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=True)
# OPDM ADC(2)-X
if (method == "adc(2)-x"):
temp_IC += 1 / 4 * \
lib.einsum('IC,jkab,jkab->IC', t1_ce_aa, Y_aaaa, Y_aaaa, optimize=True)
temp_IC += lib.einsum('IC,jkab,jkab->IC',
t1_ce_aa, Y_abab, Y_abab, optimize=True)
temp_IC += 1 / 4 * \
lib.einsum('IC,jkab,jkab->IC', t1_ce_aa, Y_bbbb, Y_bbbb, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('jC,jkab,Ikab->IC', t1_ce_aa, Y_aaaa, Y_aaaa, optimize=True)
temp_IC -= lib.einsum('jC,jkab,Ikab->IC',
t1_ce_aa, Y_abab, Y_abab, optimize=True)
temp_IC -= 1 / 2 * \
lib.einsum('Ia,jkab,jkCb->IC', t1_ce_aa, Y_aaaa, Y_aaaa, optimize=True)
temp_IC -= lib.einsum('Ia,jkab,jkCb->IC',
t1_ce_aa, Y_abab, Y_abab, optimize=True)
temp_ic += 1 / 4 * \
lib.einsum('ic,jkab,jkab->ic', t1_ce_bb, Y_aaaa, Y_aaaa, optimize=True)
temp_ic += lib.einsum('ic,jkab,jkab->ic',
t1_ce_bb, Y_abab, Y_abab, optimize=True)
temp_ic += 1 / 4 * \
lib.einsum('ic,jkab,jkab->ic', t1_ce_bb, Y_bbbb, Y_bbbb, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('jc,jkab,ikab->ic', t1_ce_bb, Y_bbbb, Y_bbbb, optimize=True)
temp_ic -= lib.einsum('jc,kjab,kiab->ic',
t1_ce_bb, Y_abab, Y_abab, optimize=True)
temp_ic -= lib.einsum('ia,jkba,jkbc->ic',
t1_ce_bb, Y_abab, Y_abab, optimize=True)
temp_ic -= 1 / 2 * \
lib.einsum('ia,jkab,jkcb->ic', t1_ce_bb, Y_bbbb, Y_bbbb, optimize=True)
temp_a[:nocc_a, nocc_a:] = temp_IC
temp_a[nocc_a:, :nocc_a] = temp_IC.T
temp_b[:nocc_b, nocc_b:] = temp_ic
temp_b[nocc_b:, :nocc_b] = temp_ic.T
opdm_a = np.append(opdm_a, temp_a)
opdm_b = np.append(opdm_b, temp_b)
opdm_a = opdm_a.reshape(nroots, nmo_a, nmo_a)
opdm_b = opdm_b.reshape(nroots, nmo_b, nmo_b)
opdm = (opdm_a, opdm_b)
return opdm
[docs]
def get_spin_square(adc):
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
method = adc.method
dm_a, dm_b = adc.make_rdm1()
if adc.method == "adc(3)":
logger.warn(
adc,
"EE-ADC(3) <S^2> includes contributions up to ADC(2)-X only...")
t1 = adc.t1
t2 = adc.t2
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
ovlp = adc._scf.get_ovlp(adc._scf.mol).copy()
delta = np.dot(adc.mo_coeff[0].transpose(), np.dot(ovlp, adc.mo_coeff[1]))
if adc.f_ov is None:
f_ov_a = np.zeros((nocc_a, nvir_a))
f_ov_b = np.zeros((nocc_b, nvir_b))
t1_ce_aa = np.zeros((nocc_a, nvir_a))
t1_ce_bb = np.zeros((nocc_b, nvir_b))
else:
f_ov_a, f_ov_b = adc.f_ov
t1_ce_aa = t1[2][0][:]
t1_ce_bb = t1[2][1][:]
if t1[0][0] is not None:
t2_ce_aa = t1[0][0][:]
t2_ce_bb = t1[0][1][:]
else:
t2_ce_aa = np.zeros((nocc_a, nvir_a))
t2_ce_bb = np.zeros((nocc_b, nvir_b))
t1_ccee_aaaa = t2[0][0][:]
t1_ccee_abab = t2[0][1][:]
t1_ccee_bbbb = t2[0][2][:]
if t2[1][0] is not None:
t2_ccee_aaaa = t2[1][0][:]
t2_ccee_abab = t2[1][1][:]
t2_ccee_bbbb = t2[1][2][:]
else:
t2_ccee_aaaa = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
t2_ccee_abab = np.zeros((nocc_a, nocc_b, nvir_a, nvir_b))
t2_ccee_bbbb = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
n_singles_a = nocc_a * nvir_a
n_singles_b = nocc_b * nvir_b
n_doubles_aaaa = nocc_a * (nocc_a - 1) * nvir_a * (nvir_a - 1) // 4
n_doubles_ab = nocc_a * nocc_b * nvir_a * nvir_b
n_doubles_bbbb = nocc_b * (nocc_b - 1) * nvir_b * (nvir_b - 1) // 4
ij_ind_a = np.tril_indices(nocc_a, k=-1)
ij_ind_b = np.tril_indices(nocc_b, k=-1)
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
f_a = n_singles_a
s_b = f_a
f_b = s_b + n_singles_b
s_aaaa = f_b
f_aaaa = s_aaaa + n_doubles_aaaa
s_abab = f_aaaa
f_ab = s_abab + n_doubles_ab
s_bbbb = f_ab
f_bbbb = s_bbbb + n_doubles_bbbb
U = adc.U.T
spin = np.array([])
trace_a = np.array([])
trace_b = np.array([])
S_oc_ab = delta[:nocc_a, :nocc_b].copy()
S_oo_ab = delta[:nocc_a, :nocc_b].copy()
S_vir_ab = delta[nocc_a:, nocc_b:].copy()
S_vv_ab = delta[nocc_a:, nocc_b:].copy()
S_ov_ab = delta[:nocc_a, nocc_b:].copy()
S_vo_ab = delta[nocc_a:, :nocc_b].copy()
for r in range(U.shape[0]):
Y_aa = U[r][:f_a].reshape(nocc_a, nvir_a)
Y_bb = U[r][f_a:f_b].reshape(nocc_b, nvir_b)
Y_abab = U[r][s_abab:f_ab].reshape(nocc_a, nocc_b, nvir_a, nvir_b)
Y_vv_u_a = np.zeros((int((nocc_a * (nocc_a - 1)) / 2), nvir_a, nvir_a))
Y_vv_u_a[:, ab_ind_a[0], ab_ind_a[1]] = U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y_vv_u_a[:, ab_ind_a[1], ab_ind_a[0]] = -U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y_aaaa = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
Y_aaaa[ij_ind_a[0], ij_ind_a[1], :, :] = Y_vv_u_a
Y_aaaa[ij_ind_a[1], ij_ind_a[0], :, :] = -Y_vv_u_a
del Y_vv_u_a
Y_vv_u_b = np.zeros((int((nocc_b * (nocc_b - 1)) / 2), nvir_b, nvir_b))
Y_vv_u_b[:, ab_ind_b[0], ab_ind_b[1]] = U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y_vv_u_b[:, ab_ind_b[1], ab_ind_b[0]] = -U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y_bbbb = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
Y_bbbb[ij_ind_b[0], ij_ind_b[1], :, :] = Y_vv_u_b
Y_bbbb[ij_ind_b[1], ij_ind_b[0], :, :] = -Y_vv_u_b
del Y_vv_u_b
# 2-RDM contributions to the S^2 values
IjKl = - 1 / 4 * \
lib.einsum('ij,ij,klab,klab', S_oc_ab, S_oc_ab, Y_aaaa, Y_aaaa, optimize=True)
IjKl -= lib.einsum('ij,ij,ka,ka', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, optimize=True)
IjKl -= lib.einsum('ij,ij,klab,klab', S_oc_ab,
S_oc_ab, Y_abab, Y_abab, optimize=True)
IjKl -= 1 / 4 * lib.einsum('ij,ij,klab,klab',
S_oc_ab,
S_oc_ab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjKl -= lib.einsum('ij,ij,ka,ka', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,ik,jlab,klab',
S_oc_ab,
S_oc_ab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjKl += lib.einsum('ij,ik,ja,ka', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, optimize=True)
IjKl += lib.einsum('ij,ik,ljab,lkab', S_oc_ab,
S_oc_ab, Y_abab, Y_abab, optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,kj,ilab,klab',
S_oc_ab,
S_oc_ab,
Y_aaaa,
Y_aaaa,
optimize=True)
IjKl += lib.einsum('ij,kj,ia,ka', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, optimize=True)
IjKl += lib.einsum('ij,kj,ilab,klab', S_oc_ab,
S_oc_ab, Y_abab, Y_abab, optimize=True)
IjKl -= lib.einsum('ij,kl,ilab,kjab', S_oc_ab,
S_oc_ab, Y_abab, Y_abab, optimize=True)
IjKl += 2 * lib.einsum('ia,ij,kj,klab,lb',
t1_ce_aa,
S_oc_ab,
S_oc_ab,
Y_aaaa,
Y_aa,
optimize=True)
IjKl += 2 * lib.einsum('ia,ij,kj,klab,lb',
t1_ce_aa,
S_oc_ab,
S_oc_ab,
Y_abab,
Y_bb,
optimize=True)
IjKl -= 2 * lib.einsum('ia,ij,kl,kjab,lb',
t1_ce_aa,
S_oc_ab,
S_oc_ab,
Y_abab,
Y_bb,
optimize=True)
IjKl += 2 * lib.einsum('ia,ji,jk,klab,lb',
t1_ce_bb,
S_oc_ab,
S_oc_ab,
Y_bbbb,
Y_bb,
optimize=True)
IjKl += 2 * lib.einsum('ia,ji,jk,lkba,lb',
t1_ce_bb,
S_oc_ab,
S_oc_ab,
Y_abab,
Y_aa,
optimize=True)
IjKl -= 2 * lib.einsum('ia,ji,kl,jlba,kb',
t1_ce_bb,
S_oc_ab,
S_oc_ab,
Y_abab,
Y_aa,
optimize=True)
IjKl += lib.einsum('ij,ik,ja,lb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,ik,ja,lb,mkca,lmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,ik,ja,la,kmbc,lmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl -= lib.einsum('ij,ik,ja,la,kb,lb', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IjKl -= lib.einsum('ij,ik,ja,la,mkbc,mlbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,ik,ja,lb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl += lib.einsum('ij,ik,ja,lb,mkca,mlcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,ik,la,la,jmbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl += lib.einsum('ij,ik,la,la,jb,kb', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_bb, optimize=True)
IjKl += lib.einsum('ij,ik,la,la,mjbc,mkbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,ik,la,lb,mjac,mkbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,ik,la,ma,ljbc,mkbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,ik,la,mb,ljac,mkbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,ik,la,la,jmbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl += lib.einsum('ij,ik,la,la,jb,kb', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IjKl += lib.einsum('ij,ik,la,la,mjbc,mkbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,ik,la,lb,ja,kb', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IjKl -= lib.einsum('ij,ik,la,lb,jmac,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl -= lib.einsum('ij,ik,la,lb,mjca,mkcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= 2 * lib.einsum('ij,ik,la,mb,jlac,mkbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,ik,la,ma,jlbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl += lib.einsum('ij,ik,la,mb,jlac,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,kj,ia,la,kmbc,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl -= lib.einsum('ij,kj,ia,la,kb,lb', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
IjKl -= lib.einsum('ij,kj,ia,la,kmbc,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kj,ia,lb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl += lib.einsum('ij,kj,ia,lb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kj,ia,lb,kmac,mlcb',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kj,ia,lb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,kj,la,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl += lib.einsum('ij,kj,la,la,ib,kb', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
IjKl += lib.einsum('ij,kj,la,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,kj,la,lb,ia,kb', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
IjKl -= lib.einsum('ij,kj,la,lb,imac,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl -= lib.einsum('ij,kj,la,lb,imac,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,kj,la,ma,ilbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl += lib.einsum('ij,kj,la,mb,ilac,kmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kj,la,mb,ilac,kmcb',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IjKl += 1 / 2 * lib.einsum('ij,kj,la,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl += lib.einsum('ij,kj,la,la,ib,kb', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_aa, optimize=True)
IjKl += lib.einsum('ij,kj,la,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,kj,la,lb,imca,kmcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,kj,la,ma,ilbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kj,la,mb,ilca,kmcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kl,ia,jb,ka,lb',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kl,ia,jb,kmac,mlcb',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kl,ia,jb,kmac,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,kl,ia,ka,jmbc,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IjKl -= lib.einsum('ij,kl,ia,ka,jb,lb', S_oc_ab, S_oc_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_bb, optimize=True)
IjKl -= lib.einsum('ij,kl,ia,ka,mjbc,mlbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kl,ia,kb,mjac,mlbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += 2 * lib.einsum('ij,kl,ia,ma,kjbc,mlbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kl,ia,mb,kjac,mlbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += 2 * lib.einsum('ij,kl,ia,mb,kjac,lmbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IjKl -= 1 / 2 * lib.einsum('ij,kl,ja,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IjKl -= lib.einsum('ij,kl,ja,la,ib,kb', S_oc_ab, S_oc_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_aa, optimize=True)
IjKl -= lib.einsum('ij,kl,ja,la,imbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kl,ja,lb,imca,kmcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += 2 * lib.einsum('ij,kl,ja,mb,ilca,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IjKl += 2 * lib.einsum('ij,kl,ja,ma,ilbc,kmbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= 2 * lib.einsum('ij,kl,ja,mb,ilca,kmcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,kl,ma,ma,ilbc,kjbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kl,ma,mb,ilac,kjbc',
S_oc_ab,
S_oc_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl -= lib.einsum('ij,kl,ma,ma,ilbc,kjbc',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjKl += lib.einsum('ij,kl,ma,mb,ilca,kjcb',
S_oc_ab,
S_oc_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd = - lib.einsum('ab,cd,ijad,ijcb', S_vir_ab,
S_vir_ab, Y_abab, Y_abab, optimize=True)
AbCd -= 2 * lib.einsum('ia,ab,cd,ijcb,jd',
t1_ce_aa,
S_vir_ab,
S_vir_ab,
Y_abab,
Y_bb,
optimize=True)
AbCd -= 2 * lib.einsum('ia,ba,cd,jibd,jc',
t1_ce_bb,
S_vir_ab,
S_vir_ab,
Y_abab,
Y_aa,
optimize=True)
AbCd -= lib.einsum('ab,cd,ia,ic,jb,jd',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ce_bb,
t1_ce_bb,
optimize=True)
AbCd -= lib.einsum('ab,cd,ia,ic,jkeb,jked',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= 1 / 2 * lib.einsum('ab,cd,ia,ic,jkbe,jkde',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
AbCd += 2 * lib.einsum('ab,cd,ia,ie,jkcb,jked',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd += lib.einsum('ab,cd,ia,jc,ikeb,jked',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= 2 * lib.einsum('ab,cd,ia,je,ikcb,jked',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= 2 * lib.einsum('ab,cd,ia,jb,ic,jd',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ce_aa,
t1_ce_bb,
optimize=True)
AbCd -= 2 * lib.einsum('ab,cd,ia,jb,ikce,kjed',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
AbCd -= 2 * lib.einsum('ab,cd,ia,jb,ikce,jkde',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
AbCd += 2 * lib.einsum('ab,cd,ia,je,ikcb,jkde',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
AbCd -= lib.einsum('ab,cd,ie,ie,jkad,jkcb',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd += lib.einsum('ab,cd,ie,je,ikad,jkcb',
S_vir_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= lib.einsum('ab,cd,ib,id,ja,jc',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_aa,
optimize=True)
AbCd -= 1 / 2 * lib.einsum('ab,cd,ib,id,jkae,jkce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AbCd -= lib.einsum('ab,cd,ib,id,jkae,jkce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd += 2 * lib.einsum('ab,cd,ib,ie,jkad,jkce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd += 2 * lib.einsum('ab,cd,ib,je,kiad,jkce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
AbCd += lib.einsum('ab,cd,ib,jd,kiae,kjce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= 2 * lib.einsum('ab,cd,ib,je,kiad,kjce',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd -= lib.einsum('ab,cd,ie,ie,jkad,jkcb',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AbCd += lib.einsum('ab,cd,ie,je,kiad,kjcb',
S_vir_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IjCd = - lib.einsum('ia,bj,ib,jkac,kc', S_ov_ab,
S_vo_ab, t1_ce_aa, Y_bbbb, Y_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,ib,kjca,kc', S_ov_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ijba,kc,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ijba,kc,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ijbc,ka,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ijca,kb,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ja,kc', S_ov_ab, S_vo_ab,
t1_ccee_aaaa, Y_bb, Y_aa, optimize=True)
IjCd += lib.einsum('ia,bj,ic,kjba,kc', S_ov_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_aa, optimize=True)
IjCd += lib.einsum('ia,bj,ikba,jc,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ja,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,ja,ikbc,kc', S_ov_ab, S_vo_ab,
t1_ce_bb, Y_aaaa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ja,ikbc,kc', S_ov_ab, S_vo_ab,
t1_ce_bb, Y_abab, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ka,ijbc,kc', S_ov_ab, S_vo_ab,
t1_ce_bb, Y_abab, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,kb,ijca,kc', S_ov_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,jkac,ib,kc', S_ov_ab, S_vo_ab,
t1_ccee_bbbb, Y_aa, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,jc,ikba,kc', S_ov_ab, S_vo_ab,
t1_ce_bb, Y_abab, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,kjba,ic,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,kjca,ib,kc', S_ov_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ijba,kc,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ijba,kc,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ijbc,ka,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ijca,kb,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ja,kc', S_ov_ab, S_vo_ab,
t2_ccee_aaaa, Y_bb, Y_aa, optimize=True)
IjCd += lib.einsum('ia,bj,ikba,jc,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ja,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_bb, Y_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,jkac,ib,kc', S_ov_ab, S_vo_ab,
t2_ccee_bbbb, Y_aa, Y_bb, optimize=True)
IjCd += lib.einsum('ia,bj,kjba,ic,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd -= lib.einsum('ia,bj,kjca,ib,kc', S_ov_ab, S_vo_ab,
t2_ccee_abab, Y_aa, Y_aa, optimize=True)
IjCd += lib.einsum('ia,bj,ib,kc,ka,jc', S_ov_ab, S_vo_ab,
Y_aa, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ic,kc,ja,kb', S_ov_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_aa, optimize=True)
IjCd += lib.einsum('ia,bj,ja,kc,ic,kb', S_ov_ab, S_vo_ab,
Y_bb, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
IjCd += lib.einsum('ia,bj,jc,kc,ib,ka', S_ov_ab, S_vo_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_bb, optimize=True)
IjCd += lib.einsum('ia,bj,kb,kc,ic,ja', S_ov_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,kc,kc,ib,ja', S_ov_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_bb, optimize=True)
IjCd += lib.einsum('ia,bj,ka,kc,ib,jc', S_ov_ab, S_vo_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_bb, optimize=True)
IjCd -= lib.einsum('ia,bj,kc,kc,ib,ja', S_ov_ab, S_vo_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_bb, optimize=True)
IaKd = - lib.einsum('ia,ib,jkca,jkcb', S_ov_ab,
S_ov_ab, Y_abab, Y_abab, optimize=True)
IaKd -= lib.einsum('ia,ib,ja,jb', S_ov_ab, S_ov_ab,
Y_bb, Y_bb, optimize=True)
IaKd -= 1 / 2 * lib.einsum('ia,ib,jkac,jkbc',
S_ov_ab,
S_ov_ab,
Y_bbbb,
Y_bbbb,
optimize=True)
IaKd += lib.einsum('ia,jb,ikca,jkcb', S_ov_ab,
S_ov_ab, Y_abab, Y_abab, optimize=True)
IaKd += 2 * lib.einsum('ia,ib,jc,jkac,kb',
t1_ce_aa,
S_ov_ab,
S_ov_ab,
Y_abab,
Y_bb,
optimize=True)
IaKd -= 2 * lib.einsum('ia,ja,jb,ikbc,kc',
t1_ce_bb,
S_ov_ab,
S_ov_ab,
Y_bbbb,
Y_bb,
optimize=True)
IaKd -= 2 * lib.einsum('ia,ja,jb,kicb,kc',
t1_ce_bb,
S_ov_ab,
S_ov_ab,
Y_abab,
Y_aa,
optimize=True)
IaKd += 2 * lib.einsum('ia,ja,kb,kicb,jc',
t1_ce_bb,
S_ov_ab,
S_ov_ab,
Y_abab,
Y_aa,
optimize=True)
IaKd -= lib.einsum('ia,ib,jc,jc,ka,kb', S_ov_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_bb, optimize=True)
IaKd -= lib.einsum('ia,ib,jc,jc,klda,kldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= 1 / 2 * lib.einsum('ia,ib,jc,jc,klad,klbd',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd += lib.einsum('ia,ib,jc,jd,klca,kldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += lib.einsum('ia,ib,jc,kc,jlda,kldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,ib,jc,kd,jlca,kldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += lib.einsum('ia,ib,ja,jc,kb,kc', S_ov_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IaKd += lib.einsum('ia,ib,ja,jc,kldb,kldc',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 1 / 2 * lib.einsum('ia,ib,ja,jc,klbd,klcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd -= lib.einsum('ia,ib,ja,kc,jlbd,klcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,ib,ja,kc,ljdb,klcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IaKd -= lib.einsum('ia,ib,ja,kc,jlbd,klcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd -= lib.einsum('ia,ib,ja,kc,ljdb,lkdc',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,ib,jc,jc,ka,kb', S_ov_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IaKd -= lib.einsum('ia,ib,jc,jc,klda,kldb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= 1 / 2 * lib.einsum('ia,ib,jc,jc,klad,klbd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd += 1 / 2 * lib.einsum('ia,ib,jc,jd,klac,klbd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd += 2 * lib.einsum('ia,ib,jc,kd,jlac,kldb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaKd += lib.einsum('ia,ib,jc,kc,ja,kb', S_ov_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_bb, t1_ce_bb, optimize=True)
IaKd += lib.einsum('ia,ib,jc,kc,jlad,klbd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd += lib.einsum('ia,ib,jc,kc,ljda,lkdb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,ib,jc,kd,jlac,klbd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd += lib.einsum('ia,jb,ic,jc,ka,kb', S_ov_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_bb, optimize=True)
IaKd += lib.einsum('ia,jb,ic,jc,klda,kldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 1 / 2 * lib.einsum('ia,jb,ic,jc,klad,klbd',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaKd -= lib.einsum('ia,jb,ic,jd,klda,klcb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= 2 * lib.einsum('ia,jb,ic,kc,klda,jldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 2 * lib.einsum('ia,jb,ic,kd,klda,jlcb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 2 * lib.einsum('ia,jb,ic,kb,ka,jc',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ce_bb,
t1_ce_aa,
optimize=True)
IaKd += 2 * lib.einsum('ia,jb,ic,kb,klad,jlcd',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaKd += 2 * lib.einsum('ia,jb,ic,kb,lkda,jlcd',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IaKd -= 2 * lib.einsum('ia,jb,ic,kd,klad,jlcb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaKd += lib.einsum('ia,jb,kc,kc,ilda,jldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,jb,kc,kd,ilca,jldb',
S_ov_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 1 / 2 * lib.einsum('ia,jb,ka,kb,ilcd,jlcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IaKd += lib.einsum('ia,jb,ka,kb,ic,jc', S_ov_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_aa, optimize=True)
IaKd += lib.einsum('ia,jb,ka,kb,ilcd,jlcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= 2 * lib.einsum('ia,jb,ka,kc,ildc,jldb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= 2 * lib.einsum('ia,jb,ka,lc,ilcd,jkdb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,jb,ka,lb,ilcd,jkcd',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += 2 * lib.einsum('ia,jb,ka,lc,ildc,jkdb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd += lib.einsum('ia,jb,kc,kc,ilda,jldb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaKd -= lib.einsum('ia,jb,kc,lc,ikda,jldb',
S_ov_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk = - lib.einsum('ai,bi,ja,jb', S_vo_ab, S_vo_ab,
Y_aa, Y_aa, optimize=True)
AiDk -= 1 / 2 * lib.einsum('ai,bi,jkac,jkbc',
S_vo_ab,
S_vo_ab,
Y_aaaa,
Y_aaaa,
optimize=True)
AiDk -= lib.einsum('ai,bi,jkac,jkbc', S_vo_ab,
S_vo_ab, Y_abab, Y_abab, optimize=True)
AiDk += lib.einsum('ai,bj,kiac,kjbc', S_vo_ab,
S_vo_ab, Y_abab, Y_abab, optimize=True)
AiDk -= 2 * lib.einsum('ia,aj,bj,ikbc,kc',
t1_ce_aa,
S_vo_ab,
S_vo_ab,
Y_aaaa,
Y_aa,
optimize=True)
AiDk -= 2 * lib.einsum('ia,aj,bj,ikbc,kc',
t1_ce_aa,
S_vo_ab,
S_vo_ab,
Y_abab,
Y_bb,
optimize=True)
AiDk += 2 * lib.einsum('ia,aj,bk,ikbc,jc',
t1_ce_aa,
S_vo_ab,
S_vo_ab,
Y_abab,
Y_bb,
optimize=True)
AiDk += 2 * lib.einsum('ia,bi,cj,kjca,kb',
t1_ce_bb,
S_vo_ab,
S_vo_ab,
Y_abab,
Y_aa,
optimize=True)
AiDk += lib.einsum('ai,bi,ja,jc,kb,kc', S_vo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
AiDk += 1 / 2 * lib.einsum('ai,bi,ja,jc,klbd,klcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk += lib.einsum('ai,bi,ja,jc,klbd,klcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,ja,kc,jlbd,klcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk -= lib.einsum('ai,bi,ja,kc,jlbd,klcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,ja,kc,jlbd,lkdc',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,ja,kc,jlbd,klcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,jc,ka,kb', S_vo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
AiDk -= 1 / 2 * lib.einsum('ai,bi,jc,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += 1 / 2 * lib.einsum('ai,bi,jc,jd,klac,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk += lib.einsum('ai,bi,jc,kc,ja,kb', S_vo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ce_aa, optimize=True)
AiDk += lib.einsum('ai,bi,jc,kc,jlad,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk += lib.einsum('ai,bi,jc,kc,jlad,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,kd,jlac,klbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk += 2 * lib.einsum('ai,bi,jc,kd,jlac,lkbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,jc,ka,kb', S_vo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_aa, optimize=True)
AiDk -= 1 / 2 * lib.einsum('ai,bi,jc,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += lib.einsum('ai,bi,jc,jd,klac,klbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += lib.einsum('ai,bi,jc,kc,ljad,lkbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bi,jc,kd,ljac,lkbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += lib.einsum('ai,bj,ic,jc,ka,kb', S_vo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ce_aa, optimize=True)
AiDk += 1 / 2 * lib.einsum('ai,bj,ic,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
AiDk += lib.einsum('ai,bj,ic,jc,klad,klbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bj,ic,jd,klad,klbc',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += 2 * lib.einsum('ai,bj,ic,kb,ka,jc',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ce_aa,
t1_ce_bb,
optimize=True)
AiDk += 2 * lib.einsum('ai,bj,ic,kb,klad,ljdc',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
AiDk += 2 * lib.einsum('ai,bj,ic,kb,klad,jlcd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
AiDk -= 2 * lib.einsum('ai,bj,ic,kd,klad,ljbc',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
AiDk -= 2 * lib.einsum('ai,bj,ic,kc,lkad,ljbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += 2 * lib.einsum('ai,bj,ic,kd,lkad,ljbc',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += 1 / 2 * lib.einsum('ai,bj,ka,kb,ilcd,jlcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
AiDk += lib.einsum('ai,bj,ka,kb,ic,jc', S_vo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ce_bb, optimize=True)
AiDk += lib.einsum('ai,bj,ka,kb,licd,ljcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= 2 * lib.einsum('ai,bj,ka,kc,licd,ljbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bj,ka,lb,licd,kjcd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += 2 * lib.einsum('ai,bj,ka,lc,licd,kjbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= 2 * lib.einsum('ai,bj,ka,lc,ilcd,kjbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
AiDk += lib.einsum('ai,bj,kc,kc,liad,ljbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bj,kc,lc,kiad,ljbd',
S_vo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk += lib.einsum('ai,bj,kc,kc,liad,ljbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
AiDk -= lib.einsum('ai,bj,kc,kd,liac,ljbd',
S_vo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk = - lib.einsum('ij,ab,ia,jb', S_oc_ab,
S_vir_ab, Y_aa, Y_bb, optimize=True)
IaDk -= lib.einsum('ij,ab,ikac,kjcb', S_oc_ab,
S_vir_ab, Y_aaaa, Y_abab, optimize=True)
IaDk -= lib.einsum('ij,ab,ikac,jkbc', S_oc_ab,
S_vir_ab, Y_abab, Y_bbbb, optimize=True)
IaDk -= lib.einsum('ij,ab,ia,jkbc,kc', S_oc_ab,
S_vir_ab, t1_ce_aa, Y_bbbb, Y_bb, optimize=True)
IaDk -= lib.einsum('ij,ab,ia,kjcb,kc', S_oc_ab,
S_vir_ab, t1_ce_aa, Y_abab, Y_aa, optimize=True)
IaDk += lib.einsum('ij,ab,ic,kjcb,ka', S_oc_ab,
S_vir_ab, t1_ce_aa, Y_abab, Y_aa, optimize=True)
IaDk -= lib.einsum('ij,ab,jb,ikac,kc', S_oc_ab,
S_vir_ab, t1_ce_bb, Y_aaaa, Y_aa, optimize=True)
IaDk -= lib.einsum('ij,ab,jb,ikac,kc', S_oc_ab,
S_vir_ab, t1_ce_bb, Y_abab, Y_bb, optimize=True)
IaDk += lib.einsum('ij,ab,jc,ikac,kb', S_oc_ab,
S_vir_ab, t1_ce_bb, Y_abab, Y_bb, optimize=True)
IaDk += lib.einsum('ij,ab,ka,ic,kjcb', S_oc_ab,
S_vir_ab, t1_ce_aa, Y_aa, Y_abab, optimize=True)
IaDk += lib.einsum('ij,ab,kb,ikac,jc', S_oc_ab,
S_vir_ab, t1_ce_bb, Y_abab, Y_bb, optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ia,jc,kb,kc',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ia,jc,kldb,kldc',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += 1 / 4 * lib.einsum('ij,ab,ia,jc,klbd,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,ia,kc,jlbd,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,ia,kc,ljdb,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IaDk += 1 / 4 * lib.einsum('ij,ab,ia,kb,jlcd,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ia,kb,jc,kc',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ce_bb,
t1_ce_bb,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ia,kb,ljcd,lkcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,ia,kc,jlbd,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,ia,kc,ljdb,lkdc',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ic,jb,ka,kc',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ce_aa,
t1_ce_aa,
optimize=True)
IaDk += 1 / 4 * lib.einsum('ij,ab,ic,jb,klad,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,ic,jb,klad,klcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,ic,jd,klad,klcb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,ic,kc,jb,ka',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ce_bb,
t1_ce_aa,
optimize=True)
IaDk += lib.einsum('ij,ab,ic,kc,jlbd,klad',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,ic,kc,ljdb,klad',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IaDk -= lib.einsum('ij,ab,ic,kd,ljcb,klad',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=True)
IaDk -= lib.einsum('ij,ab,ic,kb,ljcd,lkad',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,ic,kd,ljcb,lkad',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += 1 / 4 * lib.einsum('ij,ab,jb,ka,ilcd,klcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,jb,ka,ic,kc',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ce_aa,
t1_ce_aa,
optimize=True)
IaDk += 1 / 2 * lib.einsum('ij,ab,jb,ka,ilcd,klcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,jb,kc,ilad,klcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,jb,kc,ilad,klcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,jb,kc,ilad,lkdc',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= 1 / 2 * lib.einsum('ij,ab,jb,kc,ilad,klcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,jc,ka,ildc,kldb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,jc,kd,ilac,kldb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,jc,kc,ia,kb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IaDk += lib.einsum('ij,ab,jc,kc,ilad,lkdb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,jc,kc,ilad,klbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,jc,kd,ilac,klbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk += lib.einsum('ij,ab,ka,kc,ic,jb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IaDk += lib.einsum('ij,ab,ka,kc,ilcd,ljdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,ka,kc,ilcd,jlbd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,ka,lc,ilcd,kjdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,ka,lb,ilcd,kjcd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,ka,lc,ildc,kjdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ia,jb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ilad,ljdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ilad,jlbd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk += lib.einsum('ij,ab,kc,kd,ilac,ljdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,kc,lc,ikad,ljdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,ld,ikac,ljdb',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,ld,ikac,jlbd',
S_oc_ab,
S_vir_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ccee_bbbb,
optimize=True)
IaDk += lib.einsum('ij,ab,kb,kc,ia,jc',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IaDk += lib.einsum('ij,ab,kb,kc,ilad,ljdc',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,kb,kc,ilad,jlcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk += lib.einsum('ij,ab,kb,lc,ikad,ljcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kb,lc,ikad,jlcd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ia,jb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ce_aa,
t1_ce_bb,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ilad,ljdb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,kc,ilad,jlbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk += lib.einsum('ij,ab,kc,kd,ilac,jlbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,ld,ikac,ljdb',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=True)
IaDk += lib.einsum('ij,ab,kc,lc,ikad,jlbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
IaDk -= lib.einsum('ij,ab,kc,ld,ikac,jlbd',
S_oc_ab,
S_vir_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=True)
einsum = lib.einsum
einsum_type = True
IjdL = - einsum('ij,ia,jkab,kb', S_oo_ab, S_ov_ab,
Y_bbbb, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ia,kjba,kb', S_oo_ab, S_ov_ab,
Y_abab, Y_aa, optimize=einsum_type)
IjdL += einsum('ij,ka,ib,kjba', S_oo_ab, S_ov_ab,
Y_aa, Y_abab, optimize=einsum_type)
IjdL -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IjdL -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ia,jkab,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_bbbb, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ia,jkab,lkcb,lc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_abab, Y_aa, optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,jkbc,la,klbc',
S_oo_ab,
S_ov_ab,
t1_ccee_bbbb,
Y_bb,
Y_bbbb,
optimize=einsum_type)
IjdL += einsum('ij,ia,jb,ka,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ia,ka,jb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ia,kjba,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IjdL -= einsum('ij,ia,kjba,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ia,kjbc,la,klbc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
IjdL += einsum('ij,ia,klba,jc,klbc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,klab,jc,klbc',
S_oo_ab,
S_ov_ab,
t1_ccee_bbbb,
Y_bb,
Y_bbbb,
optimize=einsum_type)
IjdL += einsum('ij,ka,ja,ib,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IjdL += einsum('ij,ka,jlab,ilcb,kc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_abab, Y_aa, optimize=einsum_type)
IjdL += einsum('ij,ka,kjba,ilbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IjdL += einsum('ij,ka,kjba,ilbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ka,kjbc,ilbc,la', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,klbc,ilbc,ja',
S_oo_ab,
S_ov_ab,
t1_ccee_aaaa,
Y_aaaa,
Y_bb,
optimize=einsum_type)
IjdL += einsum('ij,ka,kb,ib,ja', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_aa, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ka,klba,ilbc,jc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ka,klbc,ilbc,ja', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IjdL -= einsum('ij,ka,ljba,ilbc,kc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IjdL -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IjdL -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ia,jb,ka,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ia,ka,jb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IjdL += einsum('ij,ka,ja,ib,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IjdL += einsum('ij,ka,kb,ib,ja', S_oo_ab, S_ov_ab,
t2_ce_aa, Y_aa, Y_bb, optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,jb,kc,klca,lb',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,jb,kb,klac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,jb,kb,lkca,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,jb,kc,klac,lb',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,kb,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,kb,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,kb,kc,ljba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,kb,lb,kjca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,ka,kb,jlbc,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,ka,kb,ljcb,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,ka,lb,ljbc,kc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,ka,lb,jlbc,kc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,kb,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ia,kb,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,kb,kc,jlab,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,kb,lb,jkac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,ib,ja,klbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,ib,ja,klbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ka,ib,jc,klba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,ib,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,ib,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ka,ib,kc,ljba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ka,ib,lb,kjca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjdL -= 1 / 2 * einsum('ij,ka,ib,la,kjbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjdL -= einsum('ij,ka,ja,lb,ic,klbc', S_oo_ab, S_ov_ab,
Y_bb, Y_aa, t1_ce_aa, t1_ccee_aaaa, optimize=einsum_type)
IjdL += einsum('ij,ka,ja,lb,ic,klcb', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL -= einsum('ij,ka,jb,lb,ic,klca', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL -= einsum('ij,ka,kb,lb,ic,ljca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL += einsum('ij,ka,kb,lc,ib,ljca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL += einsum('ij,ka,kb,lc,ib,jlac', S_oo_ab, S_ov_ab,
Y_aa, Y_bb, t1_ce_aa, t1_ccee_bbbb, optimize=einsum_type)
IjdL += einsum('ij,ka,lb,lb,ic,kjca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL -= einsum('ij,ka,lb,lc,ib,kjca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL -= einsum('ij,ka,la,lb,ic,kjcb', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjdL += einsum('ij,ka,lb,lb,ic,kjca', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IjlD = - einsum('ij,aj,ikab,kb', S_oo_ab, S_vo_ab,
Y_aaaa, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,aj,ikab,kb', S_oo_ab, S_vo_ab,
Y_abab, Y_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,ikab,jb', S_oo_ab, S_vo_ab,
Y_abab, Y_bb, optimize=einsum_type)
IjlD -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IjlD -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_aaaa, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_abab, Y_bb, optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,ikbc,la,klbc',
S_oo_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_aa,
Y_aaaa,
optimize=einsum_type)
IjlD += einsum('ij,aj,ib,ka,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
IjlD -= einsum('ij,aj,ikab,lkcb,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
IjlD += einsum('ij,aj,ikbc,la,lkbc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IjlD += einsum('ij,aj,ka,ib,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,klab,ic,klbc',
S_oo_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_aa,
Y_aaaa,
optimize=einsum_type)
IjlD += einsum('ij,aj,klab,ic,klcb', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IjlD += einsum('ij,ak,ia,jb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,ikab,jlbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,ikab,ljcb,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,ak,ikbc,ljbc,la', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
IjlD += einsum('ij,ak,ilab,ljbc,kc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_abab, Y_bb, optimize=einsum_type)
IjlD -= einsum('ij,ak,ilab,jlbc,kc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,klbc,ia,jlbc',
S_oo_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_aa,
Y_bbbb,
optimize=einsum_type)
IjlD += einsum('ij,ak,kb,ia,jb', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
IjlD -= einsum('ij,ak,lkab,ic,ljcb', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IjlD += einsum('ij,ak,lkbc,ia,ljbc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IjlD -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IjlD += einsum('ij,aj,ib,ka,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD += einsum('ij,aj,ka,ib,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
IjlD += einsum('ij,ak,ia,jb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,kb,ia,jb', S_oo_ab, S_vo_ab,
t2_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ib,kb,klac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ib,kb,klac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,ib,kc,klac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ib,kc,lkac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ka,kb,ilbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ka,kb,ilbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,ka,lb,ilbc,kc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ka,lb,ilcb,kc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,kb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,kb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,kb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,kb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,ia,jb,klbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,ia,jb,lkcb,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjlD += einsum('ij,ak,ia,lb,jc,lkbc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=einsum_type)
IjlD -= einsum('ij,ak,ia,lb,jc,klbc', S_oo_ab, S_vo_ab,
Y_aa, Y_bb, t1_ce_bb, t1_ccee_bbbb, optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,ak,ib,jc,lkac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjlD -= einsum('ij,ak,ib,lb,jc,lkac', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,jb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,jb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,ak,jb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,ak,jb,la,ikcb,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IjlD -= 1 / 2 * einsum('ij,ak,jb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IjlD += einsum('ij,ak,kb,lc,ilac,jb', S_oo_ab, S_vo_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_bb, optimize=einsum_type)
IjlD -= einsum('ij,ak,kb,lb,ilac,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,kb,lc,ilac,jb', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IjlD -= einsum('ij,ak,la,lb,ikbc,jc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,lb,lb,ikac,jc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IjlD += einsum('ij,ak,lb,lb,ikac,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IjlD -= einsum('ij,ak,lb,lc,ikab,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL = - einsum('ia,bc,ijba,jc', S_ov_ab, S_vv_ab,
Y_abab, Y_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ib,ja,jc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ijbd,ka,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_aaaa, Y_bb, Y_abab, optimize=einsum_type)
AbcL -= einsum('ia,bc,ijba,jkcd,kd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ijba,kjdc,kd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
AbcL += einsum('ia,bc,ijbd,ka,jkcd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_bbbb, optimize=einsum_type)
AbcL += einsum('ia,bc,ijda,kb,kjdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,ib,jc', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
AbcL += einsum('ia,bc,jkba,id,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AbcL -= einsum('ia,bc,jkda,ib,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,jkad,ib,jkcd',
S_ov_ab,
S_vv_ab,
t1_ccee_bbbb,
Y_aa,
Y_bbbb,
optimize=einsum_type)
AbcL -= einsum('ia,bc,ib,ja,jc', S_ov_ab, S_vv_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,ib,jc', S_ov_ab, S_vv_ab,
t2_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ib,jd,jkda,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,ib,jc,jkad,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,ib,jc,kjda,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AbcL += einsum('ia,bc,ib,jd,jkad,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
AbcL += einsum('ia,bc,id,jd,jkba,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL += 1 / 2 * einsum('ia,bc,id,jc,kjba,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AbcL += einsum('ia,bc,jb,jd,ikda,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL += 1 / 2 * einsum('ia,bc,jb,kc,ikda,jd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AbcL -= einsum('ia,bc,jd,jd,ikba,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,ja,jc,ikbd,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,ja,jc,ikbd,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AbcL += einsum('ia,bc,ja,jd,ikbd,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,kd,ikbd,jc', S_ov_ab, S_vv_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_bb, optimize=einsum_type)
AbcL += 1 / 2 * einsum('ia,bc,ja,kc,ikbd,jd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,kd,ikbd,jc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL += 1 / 2 * einsum('ia,bc,jc,jd,ikba,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AbcL -= einsum('ia,bc,jd,jd,ikba,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AbcL += einsum('ia,bc,jd,kd,ijba,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AblC = - einsum('ai,bc,jiac,jb', S_vo_ab, S_vv_ab,
Y_abab, Y_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ja,ic,jb', S_vo_ab, S_vv_ab,
t1_ce_aa, Y_bb, Y_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ic,ja,jb', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ijcd,ka,kjbd', S_vo_ab, S_vv_ab,
t1_ccee_bbbb, Y_aa, Y_abab, optimize=einsum_type)
AblC -= einsum('ai,bc,jiac,jkbd,kd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,jiac,jkbd,kd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
AblC += einsum('ai,bc,jiad,jkbd,kc', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
AblC += einsum('ai,bc,jidc,ka,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_aaaa, optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,jkad,ic,jkbd',
S_vo_ab,
S_vv_ab,
t1_ccee_aaaa,
Y_bb,
Y_aaaa,
optimize=einsum_type)
AblC += einsum('ai,bc,jkac,id,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
AblC -= einsum('ai,bc,jkad,ic,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
AblC -= einsum('ai,bc,ja,ic,jb', S_vo_ab, S_vv_ab,
t2_ce_aa, Y_bb, Y_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ic,ja,jb', S_vo_ab, S_vv_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,ic,jb,jkad,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,ic,jb,jkad,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AblC += einsum('ai,bc,ic,jd,jkad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ic,jd,kjad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC += 1 / 2 * einsum('ai,bc,id,jb,jkac,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AblC += einsum('ai,bc,id,jd,kjac,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,ja,jb,ikcd,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,ja,jb,kidc,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AblC += einsum('ai,bc,ja,jd,kidc,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC += 1 / 2 * einsum('ai,bc,ja,kb,kidc,jd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AblC -= einsum('ai,bc,ja,kd,kidc,jb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,ja,kd,ikcd,jb', S_vo_ab, S_vv_ab,
Y_aa, Y_bb, t1_ccee_bbbb, t1_ce_aa, optimize=einsum_type)
AblC += 1 / 2 * einsum('ai,bc,jb,jd,kiac,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AblC += 1 / 2 * einsum('ai,bc,jb,kc,jiad,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AblC -= einsum('ai,bc,jd,jd,kiac,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC += einsum('ai,bc,jd,kd,jiac,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC += einsum('ai,bc,jc,jd,kiad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AblC -= einsum('ai,bc,jd,jd,kiac,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC = - einsum('ai,bc,jiac,jb', S_vo_ab, S_vv_ab,
Y_abab, Y_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ja,ic,jb', S_vo_ab, S_vv_ab,
t1_ce_aa, Y_bb, Y_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ic,ja,jb', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ijcd,ka,kjbd', S_vo_ab, S_vv_ab,
t1_ccee_bbbb, Y_aa, Y_abab, optimize=einsum_type)
AjdC -= einsum('ai,bc,jiac,jkbd,kd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,jiac,jkbd,kd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
AjdC += einsum('ai,bc,jiad,jkbd,kc', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
AjdC += einsum('ai,bc,jidc,ka,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_aaaa, optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,jkad,ic,jkbd',
S_vo_ab,
S_vv_ab,
t1_ccee_aaaa,
Y_bb,
Y_aaaa,
optimize=einsum_type)
AjdC += einsum('ai,bc,jkac,id,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
AjdC -= einsum('ai,bc,jkad,ic,jkbd', S_vo_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
AjdC -= einsum('ai,bc,ja,ic,jb', S_vo_ab, S_vv_ab,
t2_ce_aa, Y_bb, Y_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ic,ja,jb', S_vo_ab, S_vv_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,ic,jb,jkad,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,ic,jb,jkad,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjdC += einsum('ai,bc,ic,jd,jkad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ic,jd,kjad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC += 1 / 2 * einsum('ai,bc,id,jb,jkac,kd',
S_vo_ab,
S_vv_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjdC += einsum('ai,bc,id,jd,kjac,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,ja,jb,ikcd,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,ja,jb,kidc,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjdC += einsum('ai,bc,ja,jd,kidc,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC += 1 / 2 * einsum('ai,bc,ja,kb,kidc,jd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjdC -= einsum('ai,bc,ja,kd,kidc,jb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,ja,kd,ikcd,jb', S_vo_ab, S_vv_ab,
Y_aa, Y_bb, t1_ccee_bbbb, t1_ce_aa, optimize=einsum_type)
AjdC += 1 / 2 * einsum('ai,bc,jb,jd,kiac,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjdC += 1 / 2 * einsum('ai,bc,jb,kc,jiad,kd',
S_vo_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjdC -= einsum('ai,bc,jd,jd,kiac,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC += einsum('ai,bc,jd,kd,jiac,kb', S_vo_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC += einsum('ai,bc,jc,jd,kiad,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjdC -= einsum('ai,bc,jd,jd,kiac,kb', S_vo_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_aa, optimize=einsum_type)
AjlK = - einsum('ij,aj,ikab,kb', S_oo_ab, S_vo_ab,
Y_aaaa, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,aj,ikab,kb', S_oo_ab, S_vo_ab,
Y_abab, Y_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,ikab,jb', S_oo_ab, S_vo_ab,
Y_abab, Y_bb, optimize=einsum_type)
AjlK -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AjlK -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_aaaa, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_abab, Y_bb, optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,ikbc,la,klbc',
S_oo_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_aa,
Y_aaaa,
optimize=einsum_type)
AjlK += einsum('ij,aj,ib,ka,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,aj,ikab,klbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
AjlK -= einsum('ij,aj,ikab,lkcb,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
AjlK += einsum('ij,aj,ikbc,la,lkbc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AjlK += einsum('ij,aj,ka,ib,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,klab,ic,klbc',
S_oo_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_aa,
Y_aaaa,
optimize=einsum_type)
AjlK += einsum('ij,aj,klab,ic,klcb', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AjlK += einsum('ij,ak,ia,jb,kb', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,ikab,jlbc,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,ikab,ljcb,lc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,ak,ikbc,ljbc,la', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
AjlK += einsum('ij,ak,ilab,ljbc,kc', S_oo_ab, S_vo_ab,
t1_ccee_aaaa, Y_abab, Y_bb, optimize=einsum_type)
AjlK -= einsum('ij,ak,ilab,jlbc,kc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,klbc,ia,jlbc',
S_oo_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_aa,
Y_bbbb,
optimize=einsum_type)
AjlK += einsum('ij,ak,kb,ia,jb', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
AjlK -= einsum('ij,ak,lkab,ic,ljcb', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AjlK += einsum('ij,ak,lkbc,ia,ljbc', S_oo_ab, S_vo_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
AjlK -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK -= einsum('ij,aj,ia,kb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AjlK += einsum('ij,aj,ib,ka,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK += einsum('ij,aj,ka,ib,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_aa, Y_aa, optimize=einsum_type)
AjlK += einsum('ij,ak,ia,jb,kb', S_oo_ab, S_vo_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,kb,ia,jb', S_oo_ab, S_vo_ab,
t2_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ib,kb,klac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ib,kb,klac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,ib,kc,klac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ib,kc,lkac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ka,kb,ilbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ka,kb,ilbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,ka,lb,ilbc,kc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ka,lb,ilcb,kc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,kb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,kb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,aj,kb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,kb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,kb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,ia,jb,klbc,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,ia,jb,lkcb,lc',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjlK += einsum('ij,ak,ia,lb,jc,lkbc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=einsum_type)
AjlK -= einsum('ij,ak,ia,lb,jc,klbc', S_oo_ab, S_vo_ab,
Y_aa, Y_bb, t1_ce_bb, t1_ccee_bbbb, optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,ak,ib,jc,lkac,lb',
S_oo_ab,
S_vo_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjlK -= einsum('ij,ak,ib,lb,jc,lkac', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ce_bb, t1_ccee_abab, optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,jb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,jb,kb,ilac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,ak,jb,kc,ilab,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,ak,jb,la,ikcb,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
AjlK -= 1 / 2 * einsum('ij,ak,jb,lb,ikac,lc',
S_oo_ab,
S_vo_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
AjlK += einsum('ij,ak,kb,lc,ilac,jb', S_oo_ab, S_vo_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_bb, optimize=einsum_type)
AjlK -= einsum('ij,ak,kb,lb,ilac,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,kb,lc,ilac,jb', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AjlK -= einsum('ij,ak,la,lb,ikbc,jc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,lb,lb,ikac,jc', S_oo_ab, S_vo_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AjlK += einsum('ij,ak,lb,lb,ikac,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
AjlK -= einsum('ij,ak,lb,lc,ikab,jc', S_oo_ab, S_vo_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC = - einsum('ia,bc,ijba,jc', S_ov_ab, S_vv_ab,
Y_abab, Y_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ib,ja,jc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ijbd,ka,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_aaaa, Y_bb, Y_abab, optimize=einsum_type)
IbdC -= einsum('ia,bc,ijba,jkcd,kd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_bbbb, Y_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ijba,kjdc,kd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_abab, Y_aa, optimize=einsum_type)
IbdC += einsum('ia,bc,ijbd,ka,jkcd', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_bb, Y_bbbb, optimize=einsum_type)
IbdC += einsum('ia,bc,ijda,kb,kjdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,ib,jc', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
IbdC += einsum('ia,bc,jkba,id,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IbdC -= einsum('ia,bc,jkda,ib,jkdc', S_ov_ab, S_vv_ab,
t1_ccee_abab, Y_aa, Y_abab, optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,jkad,ib,jkcd',
S_ov_ab,
S_vv_ab,
t1_ccee_bbbb,
Y_aa,
Y_bbbb,
optimize=einsum_type)
IbdC -= einsum('ia,bc,ib,ja,jc', S_ov_ab, S_vv_ab,
t2_ce_aa, Y_bb, Y_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,ib,jc', S_ov_ab, S_vv_ab,
t2_ce_bb, Y_aa, Y_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ib,jd,jkda,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,ib,jc,jkad,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,ib,jc,kjda,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IbdC += einsum('ia,bc,ib,jd,jkad,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_bb, t1_ccee_bbbb, t1_ce_bb, optimize=einsum_type)
IbdC += einsum('ia,bc,id,jd,jkba,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC += 1 / 2 * einsum('ia,bc,id,jc,kjba,kd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IbdC += einsum('ia,bc,jb,jd,ikda,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC += 1 / 2 * einsum('ia,bc,jb,kc,ikda,jd',
S_ov_ab,
S_vv_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IbdC -= einsum('ia,bc,jd,jd,ikba,kc', S_ov_ab, S_vv_ab,
Y_aa, Y_aa, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,ja,jc,ikbd,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,ja,jc,ikbd,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IbdC += einsum('ia,bc,ja,jd,ikbd,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,kd,ikbd,jc', S_ov_ab, S_vv_ab,
Y_bb, Y_aa, t1_ccee_aaaa, t1_ce_bb, optimize=einsum_type)
IbdC += 1 / 2 * einsum('ia,bc,ja,kc,ikbd,jd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,kd,ikbd,jc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC += 1 / 2 * einsum('ia,bc,jc,jd,ikba,kd',
S_ov_ab,
S_vv_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IbdC -= einsum('ia,bc,jd,jd,ikba,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IbdC += einsum('ia,bc,jd,kd,ijba,kc', S_ov_ab, S_vv_ab,
Y_bb, Y_bb, t1_ccee_abab, t1_ce_bb, optimize=einsum_type)
IblK = - einsum('ij,ia,jkab,kb', S_oo_ab, S_ov_ab,
Y_bbbb, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ia,kjba,kb', S_oo_ab, S_ov_ab,
Y_abab, Y_aa, optimize=einsum_type)
IblK += einsum('ij,ka,ib,kjba', S_oo_ab, S_ov_ab,
Y_aa, Y_abab, optimize=einsum_type)
IblK -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IblK -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ia,jkab,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_bbbb, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ia,jkab,lkcb,lc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_abab, Y_aa, optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,jkbc,la,klbc',
S_oo_ab,
S_ov_ab,
t1_ccee_bbbb,
Y_bb,
Y_bbbb,
optimize=einsum_type)
IblK += einsum('ij,ia,jb,ka,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ia,ka,jb,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ia,kjba,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IblK -= einsum('ij,ia,kjba,klbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ia,kjbc,la,klbc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
IblK += einsum('ij,ia,klba,jc,klbc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_bb, Y_abab, optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,klab,jc,klbc',
S_oo_ab,
S_ov_ab,
t1_ccee_bbbb,
Y_bb,
Y_bbbb,
optimize=einsum_type)
IblK += einsum('ij,ka,ja,ib,kb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IblK += einsum('ij,ka,jlab,ilcb,kc', S_oo_ab, S_ov_ab,
t1_ccee_bbbb, Y_abab, Y_aa, optimize=einsum_type)
IblK += einsum('ij,ka,kjba,ilbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IblK += einsum('ij,ka,kjba,ilbc,lc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ka,kjbc,ilbc,la', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,klbc,ilbc,ja',
S_oo_ab,
S_ov_ab,
t1_ccee_aaaa,
Y_aaaa,
Y_bb,
optimize=einsum_type)
IblK += einsum('ij,ka,kb,ib,ja', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_aa, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ka,klba,ilbc,jc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ka,klbc,ilbc,ja', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_abab, Y_bb, optimize=einsum_type)
IblK -= einsum('ij,ka,ljba,ilbc,kc', S_oo_ab, S_ov_ab,
t1_ccee_abab, Y_aaaa, Y_aa, optimize=einsum_type)
IblK -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IblK -= einsum('ij,ia,ja,kb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ia,jb,ka,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ia,ka,jb,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_bb, Y_bb, optimize=einsum_type)
IblK += einsum('ij,ka,ja,ib,kb', S_oo_ab, S_ov_ab,
t2_ce_bb, Y_aa, Y_aa, optimize=einsum_type)
IblK += einsum('ij,ka,kb,ib,ja', S_oo_ab, S_ov_ab,
t2_ce_aa, Y_aa, Y_bb, optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,jb,kc,klca,lb',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,jb,kb,klac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,jb,kb,lkca,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,jb,kc,klac,lb',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,kb,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,kb,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,kb,kc,ljba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,kb,lb,kjca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,ka,kb,jlbc,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,ka,kb,ljcb,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,ka,lb,ljbc,kc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,ka,lb,jlbc,kc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,kb,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ia,kb,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,kb,kc,jlab,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,kb,lb,jkac,lc',
S_oo_ab,
S_ov_ab,
Y_bb,
Y_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,ib,ja,klbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,ib,ja,klbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ka,ib,jc,klba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,ib,kb,jlac,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,ib,kb,ljca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ka,ib,kc,ljba,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ka,ib,lb,kjca,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
IblK -= 1 / 2 * einsum('ij,ka,ib,la,kjbc,lc',
S_oo_ab,
S_ov_ab,
Y_aa,
Y_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
IblK -= einsum('ij,ka,ja,lb,ic,klbc', S_oo_ab, S_ov_ab,
Y_bb, Y_aa, t1_ce_aa, t1_ccee_aaaa, optimize=einsum_type)
IblK += einsum('ij,ka,ja,lb,ic,klcb', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK -= einsum('ij,ka,jb,lb,ic,klca', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK -= einsum('ij,ka,kb,lb,ic,ljca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK += einsum('ij,ka,kb,lc,ib,ljca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK += einsum('ij,ka,kb,lc,ib,jlac', S_oo_ab, S_ov_ab,
Y_aa, Y_bb, t1_ce_aa, t1_ccee_bbbb, optimize=einsum_type)
IblK += einsum('ij,ka,lb,lb,ic,kjca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK -= einsum('ij,ka,lb,lc,ib,kjca', S_oo_ab, S_ov_ab,
Y_aa, Y_aa, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK -= einsum('ij,ka,la,lb,ic,kjcb', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
IblK += einsum('ij,ka,lb,lb,ic,kjca', S_oo_ab, S_ov_ab,
Y_bb, Y_bb, t1_ce_aa, t1_ccee_abab, optimize=einsum_type)
if (method == "adc(2)-x") or (method == "adc(3)"):
IjCd -= 1 / 4 * lib.einsum('ia,bj,ijba,klcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_aaaa,
Y_aaaa,
optimize=True)
IjCd -= lib.einsum('ia,bj,ijba,klcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= 1 / 4 * lib.einsum('ia,bj,ijba,klcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjCd += lib.einsum('ia,bj,ijbc,klda,kldc',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd += 1 / 2 * lib.einsum('ia,bj,ijbc,klad,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjCd += 1 / 2 * lib.einsum('ia,bj,ijca,klbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_aaaa,
Y_aaaa,
optimize=True)
IjCd += lib.einsum('ia,bj,ijca,klbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,ijcd,klba,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,jlad,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_bbbb,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ljda,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_abab,
Y_aaaa,
optimize=True)
IjCd -= 1 / 2 * lib.einsum('ia,bj,ikcd,ljba,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_abab,
Y_aaaa,
optimize=True)
IjCd += 1 / 2 * lib.einsum('ia,bj,ikba,jlcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjCd += lib.einsum('ia,bj,ikba,ljcd,lkcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,jlad,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_bbbb,
Y_bbbb,
optimize=True)
IjCd -= lib.einsum('ia,bj,ikbc,ljda,lkdc',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,ikca,ljbd,lkcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd += lib.einsum('ia,bj,ikcd,ljba,lkcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,jkac,ilbd,lkdc',
S_ov_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_aaaa,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,jkac,ilbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_abab,
Y_bbbb,
optimize=True)
IjCd -= 1 / 2 * lib.einsum('ia,bj,jkcd,ilba,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_abab,
Y_bbbb,
optimize=True)
IjCd += 1 / 2 * lib.einsum('ia,bj,kjba,ilcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_aaaa,
Y_aaaa,
optimize=True)
IjCd += lib.einsum('ia,bj,kjba,ilcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,kjbc,ilda,kldc',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= lib.einsum('ia,bj,kjca,ilbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_aaaa,
Y_aaaa,
optimize=True)
IjCd -= lib.einsum('ia,bj,kjca,ilbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd += lib.einsum('ia,bj,kjcd,ilba,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= 1 / 2 * lib.einsum('ia,bj,klbc,ijda,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_aaaa,
Y_abab,
Y_aaaa,
optimize=True)
IjCd -= lib.einsum('ia,bj,klba,ijcd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd += lib.einsum('ia,bj,klbc,ijda,kldc',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd += lib.einsum('ia,bj,klca,ijbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_abab,
Y_abab,
Y_abab,
optimize=True)
IjCd -= 1 / 2 * lib.einsum('ia,bj,klac,ijbd,klcd',
S_ov_ab,
S_vo_ab,
t1_ccee_bbbb,
Y_abab,
Y_bbbb,
optimize=True)
AbcL += - einsum('ia,bc,ib,jkda,jkdc',
S_ov_ab,
S_vv_ab,
t1_ce_aa,
Y_abab,
Y_abab,
optimize=einsum_type)
AbcL -= 1 / 2 * einsum('ia,bc,ib,jkad,jkcd',
S_ov_ab,
S_vv_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
AbcL += einsum('ia,bc,id,jkba,jkdc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,ikbd,kjdc', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_aaaa, Y_abab, optimize=einsum_type)
AbcL -= einsum('ia,bc,ja,ikbd,jkcd', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_bbbb, optimize=einsum_type)
AbcL += einsum('ia,bc,jb,ikda,jkdc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AblC += - einsum('ai,bc,ja,ikcd,jkbd',
S_vo_ab,
S_vv_ab,
t1_ce_aa,
Y_bbbb,
Y_abab,
optimize=einsum_type)
AblC -= einsum('ai,bc,ja,kidc,jkbd', S_vo_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_aaaa, optimize=einsum_type)
AblC -= 1 / 2 * einsum('ai,bc,ic,jkad,jkbd',
S_vo_ab,
S_vv_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
AblC -= einsum('ai,bc,ic,jkad,jkbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AblC += einsum('ai,bc,id,jkac,jkbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AblC += einsum('ai,bc,jc,kiad,kjbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AjdC += - einsum('ai,bc,ja,ikcd,jkbd',
S_vo_ab,
S_vv_ab,
t1_ce_aa,
Y_bbbb,
Y_abab,
optimize=einsum_type)
AjdC -= einsum('ai,bc,ja,kidc,jkbd', S_vo_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_aaaa, optimize=einsum_type)
AjdC -= 1 / 2 * einsum('ai,bc,ic,jkad,jkbd',
S_vo_ab,
S_vv_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
AjdC -= einsum('ai,bc,ic,jkad,jkbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AjdC += einsum('ai,bc,id,jkac,jkbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AjdC += einsum('ai,bc,jc,kiad,kjbd', S_vo_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
AjlK += - 1 / 4 * einsum('ij,aj,ia,klbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
AjlK -= einsum('ij,aj,ia,klbc,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK -= 1 / 4 * einsum('ij,aj,ia,klbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ib,klac,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
AjlK += einsum('ij,aj,ib,klac,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,aj,ka,ilbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
AjlK += einsum('ij,aj,ka,ilbc,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK += 1 / 2 * einsum('ij,ak,ia,jlbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
AjlK += einsum('ij,ak,ia,ljbc,lkbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK -= einsum('ij,ak,ib,ljbc,lkac', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK -= einsum('ij,ak,la,ikbc,ljbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
AjlK += einsum('ij,ak,kb,ilac,ljcb', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_aaaa, Y_abab, optimize=einsum_type)
AjlK += einsum('ij,ak,kb,ilac,jlbc', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_abab, Y_bbbb, optimize=einsum_type)
IbdC += - einsum('ia,bc,ib,jkda,jkdc',
S_ov_ab,
S_vv_ab,
t1_ce_aa,
Y_abab,
Y_abab,
optimize=einsum_type)
IbdC -= 1 / 2 * einsum('ia,bc,ib,jkad,jkcd',
S_ov_ab,
S_vv_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IbdC += einsum('ia,bc,id,jkba,jkdc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,ikbd,kjdc', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_aaaa, Y_abab, optimize=einsum_type)
IbdC -= einsum('ia,bc,ja,ikbd,jkcd', S_ov_ab, S_vv_ab,
t1_ce_bb, Y_abab, Y_bbbb, optimize=einsum_type)
IbdC += einsum('ia,bc,jb,ikda,jkdc', S_ov_ab, S_vv_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IblK += - 1 / 4 * einsum('ij,ia,ja,klbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IblK -= einsum('ij,ia,ja,klbc,klbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IblK -= 1 / 4 * einsum('ij,ia,ja,klbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IblK += einsum('ij,ia,jb,klca,klcb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,jb,klac,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ia,ka,jlbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IblK += einsum('ij,ia,ka,ljbc,lkbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IblK += 1 / 2 * einsum('ij,ka,ja,ilbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IblK += einsum('ij,ka,ja,ilbc,klbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IblK -= einsum('ij,ka,jb,ilcb,klca', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IblK += einsum('ij,ka,kb,ilbc,ljca', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_aaaa, Y_abab, optimize=einsum_type)
IblK += einsum('ij,ka,kb,ilbc,jlac', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_abab, Y_bbbb, optimize=einsum_type)
IblK -= einsum('ij,ka,la,ilbc,kjbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL += - 1 / 4 * einsum('ij,ia,ja,klbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IjdL -= einsum('ij,ia,ja,klbc,klbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL -= 1 / 4 * einsum('ij,ia,ja,klbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IjdL += einsum('ij,ia,jb,klca,klcb', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,jb,klac,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ia,ka,jlbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IjdL += einsum('ij,ia,ka,ljbc,lkbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL += 1 / 2 * einsum('ij,ka,ja,ilbc,klbc',
S_oo_ab,
S_ov_ab,
t1_ce_bb,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IjdL += einsum('ij,ka,ja,ilbc,klbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL -= einsum('ij,ka,jb,ilcb,klca', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjdL += einsum('ij,ka,kb,ilbc,ljca', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_aaaa, Y_abab, optimize=einsum_type)
IjdL += einsum('ij,ka,kb,ilbc,jlac', S_oo_ab, S_ov_ab,
t1_ce_aa, Y_abab, Y_bbbb, optimize=einsum_type)
IjdL -= einsum('ij,ka,la,ilbc,kjbc', S_oo_ab, S_ov_ab,
t1_ce_bb, Y_abab, Y_abab, optimize=einsum_type)
IjlD += - 1 / 4 * einsum('ij,aj,ia,klbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IjlD -= einsum('ij,aj,ia,klbc,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD -= 1 / 4 * einsum('ij,aj,ia,klbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ib,klac,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IjlD += einsum('ij,aj,ib,klac,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,aj,ka,ilbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_aaaa,
Y_aaaa,
optimize=einsum_type)
IjlD += einsum('ij,aj,ka,ilbc,klbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD += 1 / 2 * einsum('ij,ak,ia,jlbc,klbc',
S_oo_ab,
S_vo_ab,
t1_ce_aa,
Y_bbbb,
Y_bbbb,
optimize=einsum_type)
IjlD += einsum('ij,ak,ia,ljbc,lkbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD -= einsum('ij,ak,ib,ljbc,lkac', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD -= einsum('ij,ak,la,ikbc,ljbc', S_oo_ab, S_vo_ab,
t1_ce_aa, Y_abab, Y_abab, optimize=einsum_type)
IjlD += einsum('ij,ak,kb,ilac,ljcb', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_aaaa, Y_abab, optimize=einsum_type)
IjlD += einsum('ij,ak,kb,ilac,jlbc', S_oo_ab, S_vo_ab,
t1_ce_bb, Y_abab, Y_bbbb, optimize=einsum_type)
# 1-RDM contributions to the S^2 values
na = np.trace(dm_a[r])
nb = np.trace(dm_b[r])
spin_square = 0.25 * ((na - nb)**2) + 0.5 * (na + nb) + IjKl + AbCd + 2 * IjCd + \
IaKd + 2 * IaDk + AiDk + IjdL + IjlD + AbcL + AjdC + AblC + AjlK + IbdC + IblK
spin = np.append(spin, spin_square)
trace_a = np.append(trace_a, na)
trace_b = np.append(trace_b, nb)
return spin, (trace_a, trace_b)
[docs]
def get_trans_moments(adc):
if adc.method not in ("adc(2)", "adc(2)-x", "adc(3)"):
raise NotImplementedError(adc.method)
if adc.method == "adc(3)" and not adc.approx_trans_moments:
logger.warn(
adc,
"EE-ADC(3) oscillator strengths do not include"
+ " contributions from third-order amplitudes...")
method = adc.method
t1 = adc.t1
t2 = adc.t2
nocc_a = adc.nocc_a
nocc_b = adc.nocc_b
nvir_a = adc.nvir_a
nvir_b = adc.nvir_b
if adc.f_ov is None:
f_ov_a = np.zeros((nocc_a, nvir_a))
f_ov_b = np.zeros((nocc_b, nvir_b))
t1_1_a = np.zeros((nocc_a, nvir_a))
t1_1_b = np.zeros((nocc_b, nvir_b))
else:
f_ov_a, f_ov_b = adc.f_ov
t1_1_a = t1[2][0][:]
t1_1_b = t1[2][1][:]
nmo_a = nocc_a + nvir_a
nmo_b = nocc_b + nvir_b
n_singles_a = nocc_a * nvir_a
n_singles_b = nocc_b * nvir_b
n_doubles_aaaa = nocc_a * (nocc_a - 1) * nvir_a * (nvir_a - 1) // 4
n_doubles_ab = nocc_a * nocc_b * nvir_a * nvir_b
n_doubles_bbbb = nocc_b * (nocc_b - 1) * nvir_b * (nvir_b - 1) // 4
ij_ind_a = np.tril_indices(nocc_a, k=-1)
ij_ind_b = np.tril_indices(nocc_b, k=-1)
ab_ind_a = np.tril_indices(nvir_a, k=-1)
ab_ind_b = np.tril_indices(nvir_b, k=-1)
f_a = n_singles_a
s_b = f_a
f_b = s_b + n_singles_b
s_aaaa = f_b
f_aaaa = s_aaaa + n_doubles_aaaa
s_abab = f_aaaa
f_ab = s_abab + n_doubles_ab
s_bbbb = f_ab
f_bbbb = s_bbbb + n_doubles_bbbb
U = adc.U.T
nroots = U.shape[0]
TY_aa = np.zeros((nroots, nmo_a, nmo_a))
TY_bb = np.zeros((nroots, nmo_b, nmo_b))
for r in range(U.shape[0]):
TY_a = np.zeros((nmo_a, nmo_a))
TY_b = np.zeros((nmo_b, nmo_b))
Y_a = U[r][:f_a].reshape(nocc_a, nvir_a)
Y_b = U[r][f_a:f_b].reshape(nocc_b, nvir_b)
Y1_abab = U[r][s_abab:f_ab].reshape(nocc_a, nocc_b, nvir_a, nvir_b)
Y_vv_u_a = np.zeros((int((nocc_a * (nocc_a - 1)) / 2), nvir_a, nvir_a))
Y_vv_u_a[:, ab_ind_a[0], ab_ind_a[1]] = U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y_vv_u_a[:, ab_ind_a[1], ab_ind_a[0]] = -U[r][s_aaaa:f_aaaa].reshape(
int((nocc_a * (nocc_a - 1)) / 2), int((nvir_a * (nvir_a - 1)) / 2))
Y1_oovv_u_a = np.zeros((nocc_a, nocc_a, nvir_a, nvir_a))
Y1_oovv_u_a[ij_ind_a[0], ij_ind_a[1], :, :] = Y_vv_u_a
Y1_oovv_u_a[ij_ind_a[1], ij_ind_a[0], :, :] = -Y_vv_u_a
del Y_vv_u_a
Y_vv_u_b = np.zeros((int((nocc_b * (nocc_b - 1)) / 2), nvir_b, nvir_b))
Y_vv_u_b[:, ab_ind_b[0], ab_ind_b[1]] = U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y_vv_u_b[:, ab_ind_b[1], ab_ind_b[0]] = -U[r][s_bbbb:f_bbbb].reshape(
int((nocc_b * (nocc_b - 1)) / 2), int((nvir_b * (nvir_b - 1)) / 2))
Y1_oovv_u_b = np.zeros((nocc_b, nocc_b, nvir_b, nvir_b))
Y1_oovv_u_b[ij_ind_b[0], ij_ind_b[1], :, :] = Y_vv_u_b
Y1_oovv_u_b[ij_ind_b[1], ij_ind_b[0], :, :] = -Y_vv_u_b
del Y_vv_u_b
# T_U2_Y0 qp block
if t1[0][0] is not None:
t1_2_a = t1[0][0][:]
TY_a[:nocc_a, :nocc_a] = - \
lib.einsum('pg,qg->pq', Y_a, t1_2_a, optimize=True)
TY_a[nocc_a:, nocc_a:] = lib.einsum(
'xr,xv->vr', Y_a, t1_2_a, optimize=True)
del t1_2_a
TY_a[:nocc_a, nocc_a:] = Y_a
TY_b[:nocc_b, nocc_b:] = Y_b
if t1[0][0] is not None:
t1_2_b = t1[0][1][:]
TY_b[:nocc_b, :nocc_b] = - \
lib.einsum('pg,qg->pq', Y_b, t1_2_b, optimize=True)
TY_b[nocc_b:, nocc_b:] = lib.einsum(
'xr,xv->vr', Y_b, t1_2_b, optimize=True)
del t1_2_b
t2_1_a = t2[0][0][:]
t2_1_ab = t2[0][1][:]
TY_a[:nocc_a,
:nocc_a] += lib.einsum('xg,ph,qxgh->pq',
Y_a,
t1_1_a,
t2_1_a,
optimize=True)
TY_a[:nocc_a, :nocc_a] -= 0.5 * \
np.einsum('pg,xh,qxgh->pq', Y_a, t1_1_a, t2_1_a, optimize=True)
TY_a[:nocc_a, :nocc_a] -= 0.5 * \
lib.einsum('pxgh,qxgh->pq', Y1_oovv_u_a, t2_1_a, optimize=True)
TY_a[nocc_a:, nocc_a:] += 0.5 * \
lib.einsum('xyrg,xyvg->vr', Y1_oovv_u_a, t2_1_a, optimize=True)
TY_a[nocc_a:,
nocc_a:] -= lib.einsum('xg,yr,xyvg->vr',
Y_a,
t1_1_a,
t2_1_a,
optimize=True)
TY_a[nocc_a:, nocc_a:] += 0.5 * \
np.einsum('xr,yg,xyvg->vr', Y_a, t1_1_a, t2_1_a, optimize=True)
TY_a[:nocc_a, nocc_a:] += 0.5 * \
lib.einsum('xg,xygh,pyvh->pv', Y_a, t2_1_a, t2_1_a, optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.25 * \
lib.einsum('pg,xygh,xyvh->pv', Y_a, t2_1_a, t2_1_a, optimize=True)
TY_a[nocc_a:, :nocc_a] = lib.einsum(
'xg,pxvg->vp', Y_a, t2_1_a, optimize=True)
TY_b[:nocc_b, nocc_b:] += 0.5 * \
lib.einsum('xg,xygh,yphv->pv', Y_a, t2_1_a, t2_1_ab, optimize=True)
TY_a[:nocc_a, nocc_a:] += 0.5 * \
lib.einsum('xg,yxhg,pyvh->pv', Y_b, t2_1_ab, t2_1_a, optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.25 * \
lib.einsum('xv,xygh,pygh->pv', Y_a, t2_1_a, t2_1_a, optimize=True)
del t2_1_a
del t2_1_ab
t2_1_b = t2[0][2][:]
t2_1_ab = t2[0][1][:]
TY_b[:nocc_b,
:nocc_b] += lib.einsum('xg,ph,qxgh->pq',
Y_b,
t1_1_b,
t2_1_b,
optimize=True)
TY_b[:nocc_b, :nocc_b] -= 0.5 * \
np.einsum('pg,xh,qxgh->pq', Y_b, t1_1_b, t2_1_b, optimize=True)
TY_b[:nocc_b, :nocc_b] -= 0.5 * \
lib.einsum('pxgh,qxgh->pq', Y1_oovv_u_b, t2_1_b, optimize=True)
TY_b[nocc_b:, nocc_b:] += 0.5 * \
lib.einsum('xyrg,xyvg->vr', Y1_oovv_u_b, t2_1_b, optimize=True)
TY_b[nocc_b:,
nocc_b:] -= lib.einsum('xg,yr,xyvg->vr',
Y_b,
t1_1_b,
t2_1_b,
optimize=True)
TY_b[nocc_b:, nocc_b:] += 0.5 * \
np.einsum('xr,yg,xyvg->vr', Y_b, t1_1_b, t2_1_b, optimize=True)
TY_b[:nocc_b, nocc_b:] += 0.5 * \
lib.einsum('xg,xygh,pyvh->pv', Y_b, t2_1_b, t2_1_b, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.25 * \
lib.einsum('xv,xygh,pygh->pv', Y_b, t2_1_b, t2_1_b, optimize=True)
TY_b[nocc_b:, :nocc_b] = lib.einsum(
'xg,pxvg->vp', Y_b, t2_1_b, optimize=True)
TY_a[:nocc_a, nocc_a:] += 0.5 * \
lib.einsum('xg,xygh,pyvh->pv', Y_b, t2_1_b, t2_1_ab, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.25 * \
lib.einsum('pg,xygh,xyvh->pv', Y_b, t2_1_b, t2_1_b, optimize=True)
TY_b[:nocc_b, nocc_b:] += 0.5 * \
lib.einsum('xg,xygh,pyvh->pv', Y_a, t2_1_ab, t2_1_b, optimize=True)
del t2_1_b
del t2_1_ab
t2_1_ab = t2[0][1][:]
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('xg,ph,qxhg->pq',
Y_b,
t1_1_a,
t2_1_ab,
optimize=True)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('xg,ph,xqgh->pq',
Y_a,
t1_1_b,
t2_1_ab,
optimize=True)
TY_a[:nocc_a, :nocc_a] -= 0.5 * \
np.einsum('pg,xh,qxgh->pq', Y_a, t1_1_b, t2_1_ab, optimize=True)
TY_b[:nocc_b, :nocc_b] -= 0.5 * \
np.einsum('pg,xh,xqhg->pq', Y_b, t1_1_a, t2_1_ab, optimize=True)
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('pxgh,qxgh->pq',
Y1_abab,
t2_1_ab,
optimize=True)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('xpgh,xqgh->pq',
Y1_abab,
t2_1_ab,
optimize=True)
TY_a[nocc_a:,
nocc_a:] += lib.einsum('xyrg,xyvg->vr',
Y1_abab,
t2_1_ab,
optimize=True)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('xygr,xygv->vr',
Y1_abab,
t2_1_ab,
optimize=True)
TY_a[nocc_a:,
nocc_a:] += lib.einsum('xg,yr,yxvg->vr',
Y_b,
t1_1_a,
t2_1_ab,
optimize=True)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('xg,yr,xygv->vr',
Y_a,
t1_1_b,
t2_1_ab,
optimize=True)
TY_a[nocc_a:, nocc_a:] += 0.5 * \
np.einsum('xr,yg,xyvg->vr', Y_a, t1_1_b, t2_1_ab, optimize=True)
TY_b[nocc_b:, nocc_b:] += 0.5 * \
np.einsum('xr,yg,yxgv->vr', Y_b, t1_1_a, t2_1_ab, optimize=True)
TY_a[:nocc_a, nocc_a:] += 0.5 * \
lib.einsum('xg,xygh,pyvh->pv', Y_a, t2_1_ab, t2_1_ab, optimize=True)
TY_b[:nocc_b, nocc_b:] += 0.5 * \
lib.einsum('xg,yxhg,yphv->pv', Y_b, t2_1_ab, t2_1_ab, optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.5 * \
lib.einsum('pg,xygh,xyvh->pv', Y_a, t2_1_ab, t2_1_ab, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.5 * \
lib.einsum('pg,xyhg,xyhv->pv', Y_b, t2_1_ab, t2_1_ab, optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.5 * \
lib.einsum('xv,xygh,pygh->pv', Y_a, t2_1_ab, t2_1_ab, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.5 * \
lib.einsum('xv,yxgh,ypgh->pv', Y_b, t2_1_ab, t2_1_ab, optimize=True)
TY_a[nocc_a:,
:nocc_a] += lib.einsum('xg,pxvg->vp',
Y_b,
t2_1_ab,
optimize=True)
TY_b[nocc_b:,
:nocc_b] += lib.einsum('xg,xpgv->vp',
Y_a,
t2_1_ab,
optimize=True)
del t2_1_ab
# T_U1_Y0 qp block
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('pg,qg->pq',
Y_a,
t1_1_a,
optimize=True)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('pg,qg->pq',
Y_b,
t1_1_b,
optimize=True)
TY_a[nocc_a:,
nocc_a:] += lib.einsum('xr,xv->vr',
Y_a,
t1_1_a,
optimize=True)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('xr,xv->vr',
Y_b,
t1_1_b,
optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.5 * \
np.einsum('pg,xg,xv->pv', Y_a, t1_1_a, t1_1_a, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.5 * \
np.einsum('pg,xg,xv->pv', Y_b, t1_1_b, t1_1_b, optimize=True)
TY_a[:nocc_a, nocc_a:] -= 0.5 * \
np.einsum('xv,xg,pg->pv', Y_a, t1_1_a, t1_1_a, optimize=True)
TY_b[:nocc_b, nocc_b:] -= 0.5 * \
np.einsum('xv,xg,pg->pv', Y_b, t1_1_b, t1_1_b, optimize=True)
TY_a[nocc_a:,
:nocc_a] -= lib.einsum('xg,pg,xv->vp',
Y_a,
t1_1_a,
t1_1_a,
optimize=True)
TY_b[nocc_b:,
:nocc_b] -= lib.einsum('xg,pg,xv->vp',
Y_b,
t1_1_b,
t1_1_b,
optimize=True)
if t2[1][0] is not None:
t2_2_a = t2[1][0][:]
TY_a[nocc_a:,
:nocc_a] += lib.einsum('xg,pxvg->vp',
Y_a,
t2_2_a,
optimize=True)
del t2_2_a
t2_2_b = t2[1][2][:]
TY_b[nocc_b:,
:nocc_b] += lib.einsum('xg,pxvg->vp',
Y_b,
t2_2_b,
optimize=True)
del t2_2_b
t2_2_ab = t2[1][1][:]
TY_b[nocc_b:,
:nocc_b] += lib.einsum('xg,xpgv->vp',
Y_a,
t2_2_ab,
optimize=True)
TY_a[nocc_a:,
:nocc_a] += lib.einsum('xg,pxvg->vp',
Y_b,
t2_2_ab,
optimize=True)
del t2_2_ab
if (method == "adc(2)"):
del Y1_abab
del Y1_oovv_u_a
del Y1_oovv_u_b
if (method == "adc(2)-x") or (method == "adc(3)"):
if t2[1][0] is not None:
# T_U2_Y1 qp block
t2_2_a = t2[1][0][:]
TY_a[:nocc_a, :nocc_a] -= 0.5 * \
lib.einsum('pxgh,qxgh->pq', Y1_oovv_u_a, t2_2_a, optimize=True)
TY_a[nocc_a:, nocc_a:] += 0.5 * \
lib.einsum('xyrg,xyvg->vr', Y1_oovv_u_a, t2_2_a, optimize=True)
del t2_2_a
t2_2_b = t2[1][2][:]
TY_b[:nocc_b, :nocc_b] -= 0.5 * \
lib.einsum('pxgh,qxgh->pq', Y1_oovv_u_b, t2_2_b, optimize=True)
TY_b[nocc_b:, nocc_b:] += 0.5 * \
lib.einsum('xyrg,xyvg->vr', Y1_oovv_u_b, t2_2_b, optimize=True)
del t2_2_b
t2_2_ab = t2[1][1][:]
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('pxgh,qxgh->pq',
Y1_abab,
t2_2_ab,
optimize=True)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('xpgh,xqgh->pq',
Y1_abab,
t2_2_ab,
optimize=True)
# T_U2_Y1 rv block
TY_a[nocc_a:,
nocc_a:] += lib.einsum('xyrg,xyvg->vr',
Y1_abab,
t2_2_ab,
optimize=True)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('xygr,xygv->vr',
Y1_abab,
t2_2_ab,
optimize=True)
del t2_2_ab
# # T_U2_Y1 vp block
t2_1_a = t2[0][0][:]
TY_a[:nocc_a,
nocc_a:] += 0.25 * lib.einsum('pxgh,yv,xygh->pv',
Y1_oovv_u_a,
t1_1_a,
t2_1_a,
optimize=True)
TY_a[:nocc_a,
nocc_a:] += 0.25 * np.einsum('xyvg,ph,xygh->pv',
Y1_oovv_u_a,
t1_1_a,
t2_1_a,
optimize=True)
TY_a[nocc_a:,
:nocc_a] -= 0.5 * np.einsum('xygh,pg,xyvh->vp',
Y1_oovv_u_a,
t1_1_a,
t2_1_a,
optimize=True)
TY_a[nocc_a:,
:nocc_a] += 0.5 * np.einsum('xygh,yv,pxgh->vp',
Y1_oovv_u_a,
t1_1_a,
t2_1_a,
optimize=True)
del t2_1_a
t2_1_ab = t2[0][1][:]
TY_a[:nocc_a,
nocc_a:] -= 0.5 * np.einsum('xyvg,ph,xyhg->pv',
Y1_abab,
t1_1_a,
t2_1_ab,
optimize=True)
TY_a[:nocc_a,
nocc_a:] -= 0.5 * lib.einsum('pxgh,yv,yxgh->pv',
Y1_abab,
t1_1_a,
t2_1_ab,
optimize=True)
TY_b[:nocc_b,
nocc_b:] -= 0.5 * lib.einsum('xpgh,yv,xygh->pv',
Y1_abab,
t1_1_b,
t2_1_ab,
optimize=True)
TY_b[:nocc_b,
nocc_b:] -= 0.5 * np.einsum('xygv,ph,xygh->pv',
Y1_abab,
t1_1_b,
t2_1_ab,
optimize=True)
TY_a[nocc_a:,
:nocc_a] -= np.einsum('xygh,pg,xyvh->vp',
Y1_abab,
t1_1_a,
t2_1_ab,
optimize=True)
TY_b[nocc_b:,
:nocc_b] -= np.einsum('xyhg,pg,xyhv->vp',
Y1_abab,
t1_1_b,
t2_1_ab,
optimize=True)
TY_a[nocc_a:,
:nocc_a] -= np.einsum('yxgh,yv,pxgh->vp',
Y1_abab,
t1_1_a,
t2_1_ab,
optimize=True)
TY_b[nocc_b:,
:nocc_b] -= np.einsum('xyhg,yv,xphg->vp',
Y1_abab,
t1_1_b,
t2_1_ab,
optimize=True)
del t2_1_ab
t2_1_b = t2[0][2][:]
TY_b[:nocc_b,
nocc_b:] += 0.25 * lib.einsum('pxgh,yv,xygh->pv',
Y1_oovv_u_b,
t1_1_b,
t2_1_b,
optimize=True)
TY_b[:nocc_b,
nocc_b:] += 0.25 * np.einsum('xyvg,ph,xygh->pv',
Y1_oovv_u_b,
t1_1_b,
t2_1_b,
optimize=True)
TY_b[nocc_b:,
:nocc_b] -= 0.5 * np.einsum('xygh,pg,xyvh->vp',
Y1_oovv_u_b,
t1_1_b,
t2_1_b,
optimize=True)
TY_b[nocc_b:,
:nocc_b] += 0.5 * np.einsum('xygh,yv,pxgh->vp',
Y1_oovv_u_b,
t1_1_b,
t2_1_b,
optimize=True)
del t2_1_b
if (method == "adc(2)-x"):
del Y1_abab
del Y1_oovv_u_a
del Y1_oovv_u_b
if (method == "adc(3)"):
t2_ce_aa = t1[0][0][:]
t2_ce_bb = t1[0][1][:]
einsum_type = True
t1_ccee_aaaa = t2[0][0][:]
t1_ccee_bbbb = t2[0][2][:]
t1_ccee_abab = t2[0][1][:]
t2_ccee_aaaa = t2[1][0][:]
t2_ccee_bbbb = t2[1][2][:]
t2_ccee_abab = t2[1][1][:]
if adc.f_ov is None:
f_ov_a = np.zeros((nocc_a, nvir_a))
f_ov_b = np.zeros((nocc_b, nvir_b))
t1_ce_aa = np.zeros((nocc_a, nvir_a))
t1_ce_bb = np.zeros((nocc_b, nvir_b))
else:
f_ov_a, f_ov_b = adc.f_ov
t1_ce_aa = t1[2][0][:]
t1_ce_bb = t1[2][1][:]
# TY_a[:nocc_a,:nocc_a] -= lib.einsum('Ia,La->IL', Y_a, t3_aa, optimize = einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,Liab,ib->IL',
Y_a,
t1_ccee_aaaa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,Liab,ib->IL',
Y_a,
t1_ccee_abab,
t2_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,ib,Liab->IL',
Y_a,
t1_ce_aa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 1 / 2 * lib.einsum('Ia,ib,Liab->IL',
Y_a,
t1_ce_bb,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += lib.einsum('ia,Ib,Liab->IL',
Y_a,
t1_ce_aa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += lib.einsum('ia,Liab,Ib->IL',
Y_a,
t1_ccee_aaaa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.166666667 * lib.einsum('Ia,Liab,ijbc,jc->IL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.166666667 * lib.einsum('Ia,Liab,ijbc,jc->IL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.166666667 * lib.einsum('Ia,Liab,ijbc,jc->IL',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.166666667 * lib.einsum('Ia,Liab,jicb,jc->IL',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.0833333335 * lib.einsum('Ia,ia,Ljbc,ijbc->IL',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.166666667 * lib.einsum('Ia,ia,Lb,ib->IL',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.166666667 * lib.einsum('Ia,ia,Ljbc,ijbc->IL',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.0833333335 * lib.einsum('Ia,ijab,Lc,ijbc->IL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.166666667 * lib.einsum('Ia,ijab,Lc,ijcb->IL',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,Liab,Ijbc,jc->IL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,Liab,Ijbc,jc->IL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.2500000005 * lib.einsum('ia,Libc,ja,Ijbc->IL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ijab,Ijbc,Lc->IL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.2500000005 * lib.einsum('ia,ijbc,La,Ijbc->IL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ib,La,Ib->IL',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ib,Ljac,Ijbc->IL',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ib,Ljac,Ijbc->IL',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.500000001 * lib.einsum('ia,ijab,Ijcb,Lc->IL',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ijbc,La,Ijbc->IL',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('ia,Ib,Liba->IL',
Y_b,
t1_ce_aa,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= lib.einsum('ia,Liba,Ib->IL',
Y_b,
t1_ccee_abab,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.500000001 * lib.einsum('ia,Liba,Ijbc,jc->IL',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.500000001 * lib.einsum('ia,Liba,Ijbc,jc->IL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,Libc,ja,Ijbc->IL',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] -= 0.500000001 * lib.einsum('ia,ijab,Ijcb,Lc->IL',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,ib,Ljca,Ijcb->IL',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
:nocc_a] += 0.500000001 * lib.einsum('ia,jiba,Ijbc,Lc->IL',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
# TY_a[nocc_a:,nocc_a:] += lib.einsum('iC,iA->AC', Y_a, t3_aa, optimize = einsum_type)
TY_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,ijAa,ja->AC',
Y_a,
t1_ccee_aaaa,
t2_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,ijAa,ja->AC',
Y_a,
t1_ccee_abab,
t2_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,ja,ijAa->AC',
Y_a,
t1_ce_aa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 1 / 2 * lib.einsum('iC,ja,ijAa->AC',
Y_a,
t1_ce_bb,
t2_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= lib.einsum('ia,jC,ijAa->AC',
Y_a,
t1_ce_aa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= lib.einsum('ia,ijAa,jC->AC',
Y_a,
t1_ccee_aaaa,
t2_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.166666667 * lib.einsum('iC,ijAa,jkab,kb->AC',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.166666667 * lib.einsum('iC,ijAa,jkab,kb->AC',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.0833333335 * lib.einsum('iC,ijab,kA,jkab->AC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.166666667 * lib.einsum('iC,ia,jA,ja->AC',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.0833333335 * lib.einsum('iC,ia,jkAb,jkab->AC',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.166666667 * lib.einsum('iC,ia,jkAb,jkab->AC',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.166666667 * lib.einsum('iC,ijAa,jkab,kb->AC',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.166666667 * lib.einsum('iC,ijAa,kjba,kb->AC',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.166666667 * lib.einsum('iC,ijab,kA,kjab->AC',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,iA,ja,jC->AC',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.2500000005 * lib.einsum('ia,iA,jkab,jkCb->AC',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,iA,jkab,jkCb->AC',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,ijAa,jkCb,kb->AC',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,ijAa,jkCb,kb->AC',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.500000001 * lib.einsum('ia,ijAb,ka,jkCb->AC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,ijab,kA,jkCb->AC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.2500000005 * lib.einsum('ia,ib,jkAa,jkCb->AC',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,ijAb,ka,kjCb->AC',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.500000001 * lib.einsum('ia,ijab,kA,kjCb->AC',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += lib.einsum('ia,jC,jiAa->AC',
Y_b,
t1_ce_aa,
t2_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += lib.einsum('ia,jiAa,jC->AC',
Y_b,
t1_ccee_abab,
t2_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.500000001 * lib.einsum('ia,ijab,kA,kjCb->AC',
Y_b,
t1_ccee_bbbb,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,ib,jkAa,jkCb->AC',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.500000001 * lib.einsum('ia,jiAa,jkCb,kb->AC',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] += 0.500000001 * lib.einsum('ia,jiAa,jkCb,kb->AC',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,jiAb,ka,jkCb->AC',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
nocc_a:] -= 0.500000001 * lib.einsum('ia,jiba,kA,jkCb->AC',
Y_b,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('Ia,iC,ia->IC',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('Ia,ia,iC->IC',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 4 * lib.einsum('Ia,ijCb,ijab->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 4 * lib.einsum('Ia,ijab,ijCb->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('Ia,ijCb,ijab->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('Ia,ijab,ijCb->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 4 * lib.einsum('iC,Ijab,ijab->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('iC,Ia,ia->IC',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('iC,Ijab,ijab->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 4 * lib.einsum('iC,ijab,Ijab->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('iC,ia,Ia->IC',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 1 / 2 * lib.einsum('iC,ijab,Ijab->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,IjCb,ijab->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,IjCb,ijab->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,ijab,IjCb->IC',
Y_a,
t1_ccee_aaaa,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,ijab,IjCb->IC',
Y_a,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('Ia,ia,ijCb,jb->IC',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('Ia,ia,ijCb,jb->IC',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.166666667 * lib.einsum('Ia,ijab,iC,jb->IC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.166666667 * lib.einsum('Ia,ijab,iC,jb->IC',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.166666667 * lib.einsum('iC,ijab,Ia,jb->IC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('iC,ia,Ijab,jb->IC',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('iC,ia,Ijab,jb->IC',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.166666667 * lib.einsum('iC,ijab,Ia,jb->IC',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.666666668 * lib.einsum('ia,ijab,jC,Ib->IC',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('ia,ib,ja,IjCb->IC',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,IjCb,jiba->IC',
Y_b,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,IjCb,ijab->IC',
Y_b,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,ijab,IjCb->IC',
Y_b,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] += 1 / 2 * lib.einsum('ia,jiba,IjCb->IC',
Y_b,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.333333334 * lib.einsum('ia,ib,ja,IjCb->IC',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_a[:nocc_a,
nocc_a:] -= 0.666666668 * lib.einsum('ia,jiba,jC,Ib->IC',
Y_b,
t1_ccee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
# TY_a[nocc_a:,:nocc_a] += lib.einsum('ia,LiAa->AL', Y_a, t3_aaaa, optimize = einsum_type)
TY_a[nocc_a:,
:nocc_a] -= lib.einsum('ia,iA,La->AL',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= lib.einsum('ia,La,iA->AL',
Y_a,
t1_ce_aa,
t2_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.500000001 * lib.einsum('ia,iA,Ljab,jb->AL',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.500000001 * lib.einsum('ia,iA,Ljab,jb->AL',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,LiAb,ja,jb->AL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.0833333335 * lib.einsum('ia,LiAb,jkac,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,LiAb,jkac,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,Liab,jA,jb->AL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.333333334 * lib.einsum('ia,Liab,jkAc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,Liab,jkAc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,Libc,jkAa,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.333333334 * lib.einsum('ia,ijAa,Lkbc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,ijAa,Lb,jb->AL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,ijAa,Lkbc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.500000001 * lib.einsum('ia,ijAb,La,jb->AL',
Y_a,
t1_ccee_aaaa,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,ijAb,Lkac,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,ijAb,Lkac,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.0833333335 * lib.einsum('ia,ijbc,LkAa,jkbc->AL',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,ib,LjAa,jb->AL',
Y_a,
t1_ce_aa,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.500000001 * lib.einsum('ia,ijAb,La,jb->AL',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,ijAb,Lkac,kjcb->AL',
Y_a,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,ijAb,Lkac,jkbc->AL',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,kjcb->AL',
Y_a,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,jkbc->AL',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,ijbc,LkAa,kjbc->AL',
Y_a,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
# TY_a[nocc_a:,:nocc_a] += lib.einsum('ia,LiAa->AL', Y_b, t3_abab, optimize = einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,LiAb,ja,jb->AL',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,LiAb,jkca,jkcb->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.0833333335 * lib.einsum('ia,LiAb,jkac,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,Liba,jA,jb->AL',
Y_b,
t1_ccee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.333333334 * lib.einsum('ia,Liba,jkAc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,Liba,jkAc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,Libc,jkAa,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,kjcb->AL',
Y_b,
t1_ccee_bbbb,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,ijab,LkAc,jkbc->AL',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.0833333335 * lib.einsum('ia,ijbc,LkAa,jkbc->AL',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_bbbb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,ib,LjAa,jb->AL',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.333333334 * lib.einsum('ia,jiAa,Lkbc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,jiAa,Lb,jb->AL',
Y_b,
t1_ccee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.666666668 * lib.einsum('ia,jiAa,Lkbc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.666666668 * lib.einsum('ia,jiAb,Lkca,jkcb->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,jiba,LkAc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] += 0.166666667 * lib.einsum('ia,jiba,LkAc,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_a[nocc_a:,
:nocc_a] -= 0.166666667 * lib.einsum('ia,jibc,LkAa,jkbc->AL',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,ib,jlab->il',
Y_a,
t1_ce_bb,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= lib.einsum('ja,jlab,ib->il',
Y_a,
t1_ccee_abab,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.500000001 * lib.einsum('ja,jlab,ikbc,kc->il',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.500000001 * lib.einsum('ja,jlab,kicb,kc->il',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jlbc,ka,kibc->il',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.500000001 * lib.einsum('ja,jkab,lc,kibc->il',
Y_a,
t1_ccee_aaaa,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jb,klac,kibc->il',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jkab,ikbc,lc->il',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
# TY_b[:nocc_b,:nocc_b] -= lib.einsum('ia,la->il', Y_b, t3_bb, optimize = einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,ljab,jb->il',
Y_b,
t1_ccee_bbbb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jlba,jb->il',
Y_b,
t1_ccee_abab,
t2_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,jlba->il',
Y_b,
t1_ce_aa,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 1 / 2 * lib.einsum('ia,jb,ljab->il',
Y_b,
t1_ce_bb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += lib.einsum('ja,ib,ljab->il',
Y_b,
t1_ce_bb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += lib.einsum('ja,ljab,ib->il',
Y_b,
t1_ccee_bbbb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.166666667 * lib.einsum('ia,ljab,jkbc,kc->il',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.166666667 * lib.einsum('ia,ljab,kjcb,kc->il',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.0833333335 * lib.einsum('ia,ja,lkbc,jkbc->il',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.166666667 * lib.einsum('ia,ja,lb,jb->il',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.166666667 * lib.einsum('ia,ja,klbc,kjbc->il',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.166666667 * lib.einsum('ia,jlba,jkbc,kc->il',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.166666667 * lib.einsum('ia,jlba,jkbc,kc->il',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.166666667 * lib.einsum('ia,jkba,lc,jkbc->il',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.0833333335 * lib.einsum('ia,jkab,lc,jkbc->il',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,ljab,ikbc,kc->il',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,ljab,kicb,kc->il',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.2500000005 * lib.einsum('ja,ljbc,ka,ikbc->il',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jkab,ikbc,lc->il',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.2500000005 * lib.einsum('ja,jkbc,la,ikbc->il',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jb,la,ib->il',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jb,lkac,ikbc->il',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,jb,klca,kicb->il',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] -= 0.500000001 * lib.einsum('ja,kjba,lc,kibc->il',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
:nocc_b] += 0.500000001 * lib.einsum('ja,kjbc,la,kibc->il',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('ib,jc,ijba->ac',
Y_a,
t1_ce_bb,
t2_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += lib.einsum('ib,ijba,jc->ac',
Y_a,
t1_ccee_abab,
t2_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.500000001 * lib.einsum('ib,ijbd,ka,jkdc->ac',
Y_a,
t1_ccee_aaaa,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,id,jkba,jkdc->ac',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.500000001 * lib.einsum('ib,ijba,jkcd,kd->ac',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.500000001 * lib.einsum('ib,ijba,kjdc,kd->ac',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ijbd,ka,jkcd->ac',
Y_a,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ijda,kb,kjdc->ac',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
# TY_b[nocc_b:,nocc_b:] += lib.einsum('ic,ia->ac', Y_b, t3_bb, optimize = einsum_type)
TY_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,ijab,jb->ac',
Y_b,
t1_ccee_bbbb,
t2_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jiba,jb->ac',
Y_b,
t1_ccee_abab,
t2_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,jiba->ac',
Y_b,
t1_ce_aa,
t2_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 1 / 2 * lib.einsum('ic,jb,ijab->ac',
Y_b,
t1_ce_bb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,jc,ijab->ac',
Y_b,
t1_ce_bb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= lib.einsum('ib,ijab,jc->ac',
Y_b,
t1_ccee_bbbb,
t2_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.166666667 * lib.einsum('ic,ijab,jkbd,kd->ac',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.166666667 * lib.einsum('ic,ijab,kjdb,kd->ac',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.0833333335 * lib.einsum('ic,ijbd,ka,jkbd->ac',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.166666667 * lib.einsum('ic,ib,ja,jb->ac',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.166666667 * lib.einsum('ic,ib,jkda,jkdb->ac',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.0833333335 * lib.einsum('ic,ib,jkad,jkbd->ac',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.166666667 * lib.einsum('ic,jiba,jkbd,kd->ac',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.166666667 * lib.einsum('ic,jiba,jkbd,kd->ac',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.166666667 * lib.einsum('ic,jibd,ka,jkbd->ac',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ia,jb,jc->ac',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ia,jkdb,jkdc->ac',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.2500000005 * lib.einsum('ib,ia,jkbd,jkcd->ac',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ijab,jkcd,kd->ac',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ijab,kjdc,kd->ac',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.500000001 * lib.einsum('ib,ijad,kb,jkcd->ac',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,ijbd,ka,jkcd->ac',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.2500000005 * lib.einsum('ib,id,jkab,jkcd->ac',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] -= 0.500000001 * lib.einsum('ib,jida,kb,jkdc->ac',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
nocc_b:] += 0.500000001 * lib.einsum('ib,jidb,ka,jkdc->ac',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,ikcb,jkab->ic',
Y_a,
t1_ccee_bbbb,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,jkab,kibc->ic',
Y_a,
t1_ccee_aaaa,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,jkab,ikcb->ic',
Y_a,
t1_ccee_abab,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,kibc,jkab->ic',
Y_a,
t1_ccee_abab,
t2_ccee_aaaa,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('ja,jb,ka,kibc->ic',
Y_a,
t1_ce_aa,
t1_ce_aa,
t1_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.666666668 * lib.einsum('ja,jkab,kc,ib->ic',
Y_a,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('ia,jc,ja->ic',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('ia,ja,jc->ic',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('ia,jkbc,jkba->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('ia,jkba,jkbc->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 4 * lib.einsum('ia,jkcb,jkab->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 4 * lib.einsum('ia,jkab,jkcb->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 4 * lib.einsum('jc,ikab,jkab->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('jc,ia,ja->ic',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 4 * lib.einsum('jc,jkab,ikab->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('jc,ja,ia->ic',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('jc,kiab,kjab->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 1 / 2 * lib.einsum('jc,kjab,kiab->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,ikcb,jkab->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,jkab,ikcb->ic',
Y_b,
t1_ccee_bbbb,
t2_ccee_bbbb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,kibc,kjba->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] += 1 / 2 * lib.einsum('ja,kjba,kibc->ic',
Y_b,
t1_ccee_abab,
t2_ccee_abab,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('ia,ja,jkcb,kb->ic',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('ia,ja,kjbc,kb->ic',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.166666667 * lib.einsum('ia,jkba,kc,jb->ic',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.166666667 * lib.einsum('ia,jkab,jc,kb->ic',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.166666667 * lib.einsum('jc,jkab,ia,kb->ic',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('jc,ja,ikab,kb->ic',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('jc,ja,kiba,kb->ic',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.166666667 * lib.einsum('jc,kjab,ib,ka->ic',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.666666668 * lib.einsum('ja,jkab,kc,ib->ic',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[:nocc_b,
nocc_b:] -= 0.333333334 * lib.einsum('ja,jb,ka,ikcb->ic',
Y_b,
t1_ce_bb,
t1_ce_bb,
t1_ccee_bbbb,
optimize=einsum_type)
# TY_b[nocc_b:,:nocc_b] += lib.einsum('ib,ilba->al', Y_a, t3_abab, optimize = einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ilbc,ja,jc->al',
Y_a,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ilbc,jkda,jkdc->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.333333334 * lib.einsum('ib,ilbc,jkad,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,ilca,jb,jc->al',
Y_a,
t1_ccee_abab,
t1_ce_aa,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.0833333335 * lib.einsum('ib,ilca,jkbd,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_aaaa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,ilca,jkbd,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,ilcd,jkba,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,lkad,jkcd->al',
Y_a,
t1_ccee_aaaa,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,jkcd,klda->al',
Y_a,
t1_ccee_aaaa,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.0833333335 * lib.einsum('ib,ijcd,klba,jkcd->al',
Y_a,
t1_ccee_aaaa,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,ic,jlba,jc->al',
Y_a,
t1_ce_aa,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.333333334 * lib.einsum('ib,ijba,lkcd,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ijba,lc,jc->al',
Y_a,
t1_ccee_abab,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ijba,klcd,kjcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,lkad,jkcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,klda,kjdc->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,ijca,klbd,kjcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,ijcd,klba,kjcd->al',
Y_a,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
# TY_b[nocc_b:,:nocc_b] += lib.einsum('ib,liab->al', Y_b, t3_bbbb, optimize = einsum_type)
TY_b[nocc_b:,
:nocc_b] -= lib.einsum('ib,ia,lb->al',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= lib.einsum('ib,lb,ia->al',
Y_b,
t1_ce_bb,
t2_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.500000001 * lib.einsum('ib,ia,ljbc,jc->al',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.500000001 * lib.einsum('ib,ia,jlcb,jc->al',
Y_b,
t1_ce_bb,
t1_ccee_abab,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,liac,jb,jc->al',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,liac,jkdb,jkdc->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.0833333335 * lib.einsum('ib,liac,jkbd,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,libc,ja,jc->al',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,libc,jkda,jkdc->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.333333334 * lib.einsum('ib,libc,jkad,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,licd,jkab,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.333333334 * lib.einsum('ib,ijab,lkcd,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,ijab,lc,jc->al',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.666666668 * lib.einsum('ib,ijab,klcd,kjcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.500000001 * lib.einsum('ib,ijac,lb,jc->al',
Y_b,
t1_ccee_bbbb,
t1_ce_bb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ijac,lkbd,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,ijac,kldb,kjdc->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,lkad,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,ijbc,klda,kjdc->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_abab,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.0833333335 * lib.einsum('ib,ijcd,lkab,jkcd->al',
Y_b,
t1_ccee_bbbb,
t1_ccee_bbbb,
t1_ccee_bbbb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,ic,ljab,jc->al',
Y_b,
t1_ce_bb,
t1_ccee_bbbb,
t1_ce_bb,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.500000001 * lib.einsum('ib,jica,lb,jc->al',
Y_b,
t1_ccee_abab,
t1_ce_bb,
t1_ce_aa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,jica,lkbd,jkcd->al',
Y_b,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.666666668 * lib.einsum('ib,jica,kldb,jkcd->al',
Y_b,
t1_ccee_abab,
t1_ccee_abab,
t1_ccee_aaaa,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,jicb,lkad,jkcd->al',
Y_b,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] += 0.166666667 * lib.einsum('ib,jicb,jkcd,klda->al',
Y_b,
t1_ccee_abab,
t1_ccee_aaaa,
t1_ccee_abab,
optimize=einsum_type)
TY_b[nocc_b:,
:nocc_b] -= 0.166666667 * lib.einsum('ib,jicd,lkab,jkcd->al',
Y_b,
t1_ccee_abab,
t1_ccee_bbbb,
t1_ccee_abab,
optimize=einsum_type)
TY_aa[r, :, :] = TY_a
TY_bb[r, :, :] = TY_b
TY = (TY_aa, TY_bb)
return TY
[docs]
def analyze_spec_factor(adc):
X_aa, X_bb = adc.X
nroots = X_aa.shape[0]
X_aa = X_aa.reshape(nroots, -1)
X_bb = X_bb.reshape(nroots, -1)
energy = adc.E * 27.2114
X_a = (X_aa.copy())**2
X_b = (X_bb.copy())**2
nmo_a = adc.nocc_a + adc.nvir_a
nmo_b = adc.nocc_b + adc.nvir_b
logger.info(
adc,
"Print spectroscopic factors > %E\n",
adc.spec_factor_print_tol)
if adc.mol.symmetry:
sym_a = [
symm.irrep_id2name(
adc.mol.groupname,
x) for x in hf_symm.get_orbsym(
adc.mol,
adc.mo_coeff[0])]
sym_b = [
symm.irrep_id2name(
adc.mol.groupname,
x) for x in hf_symm.get_orbsym(
adc.mol,
adc.mo_coeff[1])]
else:
sym_a = np.repeat(['A'], nmo_a)
sym_b = np.repeat(['A'], nmo_b)
sym_a = np.array(sym_a)
sym_b = np.array(sym_b)
spin_a = "Alpha"
spin_b = "Beta"
thresh = adc.spec_factor_print_tol
for root_a in range(X_a.shape[0]):
X_a_root = X_a[root_a, :]
sort_a = np.argsort(-X_a_root)
X_a_root = X_a_root[sort_a]
X_a_root = X_a_root[X_a_root > thresh]
if np.sum(X_a_root) == 0.0:
continue
logger.info(adc, '%s | root %d %s\n', adc.method, root_a, spin_a)
logger.info(
adc,
"Hole_MO Particle_MO X_a^2 Orbital symmetry excitation energy")
logger.info(
adc,
"-------------------------------------------------------------------------------------")
for hp in range(X_a_root.shape[0]):
P = ((sort_a[hp]) % nmo_a)
H = ((sort_a[hp]) // nmo_a)
logger.info(
adc,
'%4.d %4.d %10.8f %s -> %s %12.8f ',
(H + 1),
(P + 1),
X_a_root[hp],
sym_a[H],
sym_a[P],
energy[root_a])
logger.info(
adc,
'\nPartial norm of X_a = %10.8f',
np.sqrt(np.sum(X_a_root)))
logger.info(
adc,
"*************************************************************************************\n")
for root_b in range(X_b.shape[0]):
X_b_root = X_b[root_b, :]
sort_b = np.argsort(-X_b_root)
X_b_root = X_b_root[sort_b]
X_b_root = X_b_root[X_b_root > thresh]
if np.sum(X_b_root) == 0.0:
continue
logger.info(adc, '%s | root %d %s\n', adc.method, root_b, spin_b)
logger.info(
adc,
"Hole_MO Particle_MO X_b^2 Orbital symmetry excitation energy")
logger.info(
adc,
"-------------------------------------------------------------------------------------")
for hp in range(X_b_root.shape[0]):
P = sort_b[hp] % nmo_b
H = sort_b[hp] // nmo_b
logger.info(
adc,
'%4.d %4.d %10.8f %s -> %s %12.8f',
(H + 1),
(P + 1),
X_b_root[hp],
sym_b[H],
sym_b[P],
energy[root_b])
logger.info(
adc,
'\nPartial norm of X_b = %10.8f',
np.sqrt(np.sum(X_b_root)))
logger.info(
adc,
"*************************************************************************************\n")
[docs]
def get_properties(adc, nroots=1):
# Transition moments
X = adc.get_trans_moments()
dX = lib.einsum("xqp,nqp->xn", adc.dip_mom[0], X[0], optimize=True)
dX += lib.einsum("xqp,nqp->xn", adc.dip_mom[1], X[1], optimize=True)
spec_intensity = np.conj(dX[0]) * dX[0]
spec_intensity += np.conj(dX[1]) * dX[1]
spec_intensity += np.conj(dX[2]) * dX[2]
# Oscillator strengths
P = (2.0 / 3.0) * adc.E * spec_intensity
return P, X
[docs]
def analyze(myadc):
if myadc.compute_properties:
header = (
"\n*************************************************************"
"\n Spectroscopic amplitude analysis summary"
"\n*************************************************************")
logger.info(myadc, header)
myadc.analyze_spec_factor()
[docs]
class UADCEE(uadc.UADC):
'''unrestricted ADC for EE energies and spectroscopic amplitudes
Attributes:
verbose : int
Print level. Default value equals to :class:`Mole.verbose`
max_memory : float or int
Allowed memory in MB. Default value equals to :class:`Mole.max_memory`
incore_complete : bool
Avoid all I/O. Default is False.
method : string
nth-order ADC method. Options are : ADC(2), ADC(2)-X, ADC(3). Default is ADC(2).
conv_tol : float
Convergence threshold for Davidson iterations. Default is 1e-8.
max_cycle : int
Number of Davidson iterations. Default is 50.
max_space : int
Space size to hold trial vectors for Davidson iterative diagonalization. Default is 12.
Kwargs:
nroots : int
Number of roots (eigenvalues) requested. Default value is 1.
>>> myadc = adc.UADC(mf).run()
>>> myadcee = adc.UADCEE(myadc).run()
Saved results
e_ee : float or list of floats
EE energy (eigenvalue). For nroots = 1, it is a single float
number. If nroots > 1, it is a list of floats for the lowest
nroots eigenvalues.
v_ee : array
Eigenvectors for each EE transition.
p_ee : array
Oscillator strength for each EE transition.
x_ee : array
Spectroscopic amplitudes for each EE transition.
'''
_keys = {
'tol_residual', 'conv_tol', 'e_corr', 'method',
'method_type', 'mo_coeff', 'mo_energy_a', 'mo_energy_b', 'max_memory',
't1', 't2', 'max_space', 'max_cycle',
'nocc_a', 'nocc_b', 'nvir_a', 'nvir_b', 'mo_energy_a',
'mo_energy_b', 'nmo_a', 'nmo_b', 'mol', 'transform_integrals',
'with_df', 'spec_factor_print_tol', 'evec_print_tol',
'compute_properties', 'approx_trans_moments', 'E', 'U', 'P', 'X',
}
def __init__(self, adc):
self.mol = adc.mol
self.verbose = adc.verbose
self.stdout = adc.stdout
self.max_memory = adc.max_memory
self.max_space = adc.max_space
self.max_cycle = adc.max_cycle
self.conv_tol = adc.conv_tol
self.tol_residual = adc.tol_residual
self.t1 = adc.t1
self.t2 = adc.t2
self.imds = adc.imds
self.e_corr = adc.e_corr
self.method = adc.method
self.method_type = adc.method_type
self._scf = adc._scf
self._nocc = adc._nocc
self._nvir = adc._nvir
self.nocc_a = adc._nocc[0]
self.nocc_b = adc._nocc[1]
self.nvir_a = adc._nvir[0]
self.nvir_b = adc._nvir[1]
self.mo_coeff = adc.mo_coeff
self.mo_energy_a = adc.mo_energy_a
self.mo_energy_b = adc.mo_energy_b
self.nmo_a = adc._nmo[0]
self.nmo_b = adc._nmo[1]
self.transform_integrals = adc.transform_integrals
self.with_df = adc.with_df
self.compute_properties = adc.compute_properties
self.approx_trans_moments = adc.approx_trans_moments
self.spec_factor_print_tol = adc.spec_factor_print_tol
self.evec_print_tol = adc.evec_print_tol
self.E = adc.E
self.U = adc.U
self.P = adc.P
self.X = adc.X
self.f_ov = adc.f_ov
self.compute_spin_square = adc.compute_spin_square
self.dip_mom = adc.dip_mom
self.dip_mom_nuc = adc.dip_mom_nuc
kernel = uadc.kernel
get_imds = get_imds
get_diag = get_diag
matvec = matvec
get_trans_moments = get_trans_moments
get_spin_square = get_spin_square
make_rdm1 = make_rdm1
get_properties = get_properties
analyze_spec_factor = analyze_spec_factor
analyze = analyze
[docs]
def get_init_guess(self, nroots=1, diag=None, ascending=True):
if diag is None:
diag = self.get_diag()
idx = None
if ascending:
idx = np.argsort(diag)
else:
idx = np.argsort(diag)[::-1]
guess = np.zeros((diag.shape[0], nroots))
min_shape = min(diag.shape[0], nroots)
guess[:min_shape, :min_shape] = np.identity(min_shape)
g = np.zeros((diag.shape[0], nroots))
g[idx] = guess.copy()
guess = []
for p in range(g.shape[1]):
guess.append(g[:, p])
return guess
[docs]
def gen_matvec(self, imds=None, eris=None):
if imds is None:
imds = self.get_imds(eris)
diag = self.get_diag(imds, eris)
matvec = self.matvec(imds, eris)
return matvec, diag