Example #1
0
HD_V = sqa.term(0.5, [''], [V_V, sqa.sfExOp([a1, a2, a3, a4])])
HD_CA1 = sqa.term(1.0, [''], [V_CA1, sqa.sfExOp([i1, x1, i2, x2])])
HD_CA2 = sqa.term(1.0, [''], [V_CA2, sqa.sfExOp([i1, x1, x2, i2])])
HD_CV1 = sqa.term(1.0, [''], [V_CV1, sqa.sfExOp([i1, a1, i2, a2])])
HD_CV2 = sqa.term(1.0, [''], [V_CV2, sqa.sfExOp([i1, a1, a2, i2])])
HD_AV1 = sqa.term(1.0, [''], [V_AV1, sqa.sfExOp([x1, a1, x2, a2])])
HD_AV2 = sqa.term(1.0, [''], [V_AV2, sqa.sfExOp([x1, a1, a2, x2])])

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
pvec = sqa.tensor('p', [i, p, q, r], [])
Apvec = sqa.tensor('Ap', [j, u, v, w], [])
Omu = sqa.term(1.0, [''], [pvec, sqa.sfExOp([q, i]), sqa.sfExOp([p, r])])
Onu = sqa.term(1.0, [''], [Apvec, sqa.sfExOp([w, u]), sqa.sfExOp([j, v])])
commutator = []
commutator += sqa.commutator(T_C, Omu)
commutator += sqa.commutator(T_A, Omu)
commutator += sqa.commutator(T_V, Omu)
commutator += sqa.commutator(HD_A, Omu)
commutator += sqa.commutator(HD_C, Omu)
commutator += sqa.commutator(HD_V, Omu)
commutator += sqa.commutator(HD_CA1, Omu)
commutator += sqa.commutator(HD_CA2, Omu)
commutator += sqa.commutator(HD_CV1, Omu)
commutator += sqa.commutator(HD_CV2, Omu)
commutator += sqa.commutator(HD_AV1, Omu)
commutator += sqa.commutator(HD_AV2, Omu)
result = []
for t in commutator:
    result += sqa.normalOrder(sqa.multiplyTerms(Onu, t))
Example #2
0
HD_AV1 = sqa.term( 1.0, [""], [V_AV1, sqa.sfExOp([x1,a1,x2,a2])] )
HD_AV2 = sqa.term( 1.0, [""], [V_AV2, sqa.sfExOp([x1,a1,a2,x2])] )

T_C    = sqa.term( 1.0, [""], [K_C,   sqa.sfExOp([i1,i2])] )
T_A    = sqa.term( 1.0, [""], [K_A,   sqa.sfExOp([x1,x2])] )
T_V    = sqa.term( 1.0, [""], [K_V,   sqa.sfExOp([a1,a2])] )

Cin = sqa.tensor("p", [a,b,i,j], [Dsym_c])
Cout = sqa.tensor("Ap", [c,d,k,l], [Dsym_c])

#first excitation
E_aiEbj  = sqa.term( 1.0, [""],  [Cin, sqa.sfExOp([a, i]) , sqa.sfExOp([b,j])])
E_aiEbj2 = sqa.term( 1.0, [""],  [Cout, sqa.sfExOp([l, d]) , sqa.sfExOp([k,c])])

commutator = []
commutator +=  sqa.commutator(HD_C, E_aiEbj)
commutator +=  sqa.commutator(HD_A, E_aiEbj)
commutator +=  sqa.commutator(HD_V, E_aiEbj)
commutator +=  sqa.commutator(HD_CA1, E_aiEbj)
commutator +=  sqa.commutator(HD_CA2, E_aiEbj)
commutator +=  sqa.commutator(HD_CV1, E_aiEbj)
commutator +=  sqa.commutator(HD_CV2, E_aiEbj)
commutator +=  sqa.commutator(HD_AV1, E_aiEbj)
commutator +=  sqa.commutator(HD_AV2, E_aiEbj)
commutator +=  sqa.commutator(T_C, E_aiEbj)
commutator +=  sqa.commutator(T_A, E_aiEbj)
commutator +=  sqa.commutator(T_V, E_aiEbj)
result = []

for t in commutator:
    result += sqa.normalOrder(sqa.multiplyTerms(E_aiEbj2, t))
Example #3
0
list2 = [list1[i] for i in [0, 2]]
list3 = [list1[i] for i in [1, 3]]
pvec = sqa.tensor('p', list1, [])  #symm(list1))
Omu = sqa.term(1.0, [''], [pvec, sqa.sfExOp(list2), sqa.sfExOp(list3)])

# Define Onu
list1 = gimme('vaaa')
list2 = [list1[i] for i in [3, 1]]
list3 = [list1[i] for i in [2, 0]]
Apvec = sqa.tensor('Ap', list1, [])  #symm(list1))
Onu = sqa.term(1.0, [''], [Apvec, sqa.sfExOp(list2), sqa.sfExOp(list3)])

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
commutator = []
for Hterm in H:
    commutator += sqa.commutator(Hterm, Omu)
result = []
for t in commutator:
    result += sqa.normalOrder(sqa.multiplyTerms(Onu, t))
result = simplify_all(result, [deltaC, deltaA, deltaV], cumulantE4=True)

# Write out in INL format
Class = 'AAAV'
tensors = common_tensors(result, 'eaaa', pttype='NEVPT', df=True)
tensors = order_tensors(tensors)
nbrTensors = write_tensors('NEVPT_' + Class + '_DF', tensors)
nbrEqs = write_code('NEVPT_' + Class, tensors, result)
nbr_bVec = bVec(Class, tensors, df=True)
print_GetMethodInfo('NEVPT_', Class, nbrTensors, nbrEqs, nbr_bVec)
Example #4
0
sqa.termChop(result)
sqa.combineTerms(result)
extendedR1=[]
for t in result:
    extendedR1 += sqa.contractCoreOps_sf(t)
for t in extendedR1:
    t.contractDeltaFuncs_new()
sqa.termChop(extendedR1)
sqa.combineTerms(extendedR1)
for t in extendedR1:
    print t
exit(0)
'''

commutator1 = []
commutator1 +=  sqa.commutator(HD_C, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_A, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_V, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_CA1, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_CA2, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_CV1, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_CV2, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_AV1, E_aiEbj1a)
commutator1 +=  sqa.commutator(HD_AV2, E_aiEbj1a)
commutator1 +=  sqa.commutator(T_C, E_aiEbj1a)
commutator1 +=  sqa.commutator(T_A, E_aiEbj1a)
commutator1 +=  sqa.commutator(T_V, E_aiEbj1a)
commutator2 = []
commutator2 +=  sqa.commutator(HD_C, E_aiEbj1b)
commutator2 +=  sqa.commutator(HD_A, E_aiEbj1b)
commutator2 +=  sqa.commutator(HD_V, E_aiEbj1b)
Example #5
0
deltaV = sqa.tensor('deltav', [a1,a2], [hsym])

# Define Hamilonian terms
T_C    = sqa.term( 1.0, [''], [K_C,   sqa.sfExOp([i1,i2])] )
T_A    = sqa.term( 1.0, [''], [K_A,   sqa.sfExOp([x1,x2])] )
T_V    = sqa.term( 1.0, [''], [K_V,   sqa.sfExOp([a1,a2])] )
HD_A   = sqa.term( 0.5, [''], [V_Al,V_Ar,   sqa.sfExOp([x1,x2,x3,x4])] )

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
pvec  = sqa.tensor('p',  [a,b,i,q], [])
Apvec = sqa.tensor('Ap', [c,d,j,r], [])
Omu   = sqa.term( 1.0, [''],  [pvec,  sqa.sfExOp([a, i]) , sqa.sfExOp([b, q])])
Onu   = sqa.term( 1.0, [''],  [Apvec, sqa.sfExOp([r, d]) , sqa.sfExOp([j, c])])
commutator = []
commutator +=  sqa.commutator(T_C,    Omu)
commutator +=  sqa.commutator(T_A,    Omu)
commutator +=  sqa.commutator(T_V,    Omu)
commutator +=  sqa.commutator(HD_A,   Omu)
result = []
for t in commutator:
    result += sqa.normalOrder(sqa.multiplyTerms(Onu, t))

result = simplify_all(result,[deltaC, deltaA, deltaV],cumulantE4=cumulantE4)

# Perturber-dependent stuff
Class = 'ACVV'
tensors  = mussardCode.make_tensors('eeca',pttype='NEVPT',df=True)
tensors.append(['S1','S1','AA','D'])
tensors.append(['S2','S2','aa','D'])
Example #6
0
# Define Onu
list1=gimme('caav')
list2=[list1[i] for i in [2,1]]
list3=[list1[i] for i in [0,3]]
Apvec1 = sqa.tensor('Ap1', list1, symm(list1))
OnuA   = sqa.term(1.0, [''],  [Apvec1, sqa.sfExOp(list2), sqa.sfExOp(list3)])
list2=[list1[i] for i in [2,3]]
list3=[list1[i] for i in [0,1]]
Apvec2 = sqa.tensor('Ap2', list1, symm(list1))
OnuB   = sqa.term(1.0, [''],  [Apvec2, sqa.sfExOp(list2), sqa.sfExOp(list3)])

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
commutator1 = []
for Hterm in H:
  commutator1 +=  sqa.commutator(Hterm,  OmuA)
commutator2 = []
for Hterm in H:
  commutator2 +=  sqa.commutator(Hterm,  OmuB)
result = []
for t in commutator1:
    result += sqa.normalOrder(sqa.multiplyTerms(OnuA, t))
    result += sqa.normalOrder(sqa.multiplyTerms(OnuB, t))
for t in commutator2:
    result += sqa.normalOrder(sqa.multiplyTerms(OnuA, t))
    result += sqa.normalOrder(sqa.multiplyTerms(OnuB, t))
result = simplify_all(result,[deltaC, deltaA, deltaV])

# Write out in INL format
Class = 'CAAV'
tensors    = common_tensors(result,'cAae',pttype='MRLCC',df=True)
Example #7
0
HD_CV2 = sqa.term(1.0, [''], [V_CV2, sqa.sfExOp([i1, a1, a2, i2])])
HD_AV1 = sqa.term(1.0, [''], [V_AV1, sqa.sfExOp([x1, a1, x2, a2])])
HD_AV2 = sqa.term(1.0, [''], [V_AV2, sqa.sfExOp([x1, a1, a2, x2])])

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
pvec1 = sqa.tensor('p1', [i, p, q, a], [])
pvec2 = sqa.tensor('p2', [i, p, q, a], [])
Apvec1 = sqa.tensor('Ap1', [j, r, s, b], [])
Apvec2 = sqa.tensor('Ap2', [j, r, s, b], [])
OmuA = sqa.term(1.0, [''], [pvec1, sqa.sfExOp([a, i]), sqa.sfExOp([p, q])])
OmuB = sqa.term(1.0, [''], [pvec2, sqa.sfExOp([p, i]), sqa.sfExOp([a, q])])
OnuA = sqa.term(1.0, [''], [Apvec1, sqa.sfExOp([s, r]), sqa.sfExOp([j, b])])
OnuB = sqa.term(1.0, [''], [Apvec2, sqa.sfExOp([s, b]), sqa.sfExOp([j, r])])
commutator1 = []
commutator1 += sqa.commutator(T_C, OmuA)
commutator1 += sqa.commutator(T_A, OmuA)
commutator1 += sqa.commutator(T_V, OmuA)
commutator1 += sqa.commutator(HD_A, OmuA)
commutator1 += sqa.commutator(HD_C, OmuA)
commutator1 += sqa.commutator(HD_V, OmuA)
commutator1 += sqa.commutator(HD_CA1, OmuA)
commutator1 += sqa.commutator(HD_CA2, OmuA)
commutator1 += sqa.commutator(HD_CV1, OmuA)
commutator1 += sqa.commutator(HD_CV2, OmuA)
commutator1 += sqa.commutator(HD_AV1, OmuA)
commutator1 += sqa.commutator(HD_AV2, OmuA)
commutator2 = []
commutator2 += sqa.commutator(T_C, OmuB)
commutator2 += sqa.commutator(T_A, OmuB)
commutator2 += sqa.commutator(T_V, OmuB)
Example #8
0
    sqa.term(1.0, [], [
        a2,
        sqa.creOp(dummyInd[2]),
        sqa.creOp(dummyInd[3]),
        sqa.desOp(dummyInd[5]),
        sqa.desOp(dummyInd[4])
    ]))
a2_terms.append(
    sqa.term(-1.0, [], [
        a2,
        sqa.creOp(dummyInd[4]),
        sqa.creOp(dummyInd[5]),
        sqa.desOp(dummyInd[3]),
        sqa.desOp(dummyInd[2])
    ]))
test2_output = sqa.commutator(h1_term, a2_terms)
sqa.combine_transpose(test2_output)
test2_string_output = ''
for t in test2_output:
    test2_string_output += str(t) + '\n'
test2_correct_answer = \
                       " (   4.00000) a2(a,b,c,d) h1(a,e) cre(c) cre(d) des(b) des(e) \n" + \
                       " (  -4.00000) a2(a,b,c,d) h1(c,e) cre(d) cre(e) des(a) des(b) \n"
#                       " (   4.00000) a2(a,b,c,d) h1(a,e) cre(b) cre(e) des(c) des(d) \n" + \
#                       " (  -4.00000) a2(a,b,c,d) h1(c,e) cre(a) cre(b) des(d) des(e) \n"
print "Test 2 output:"
print test2_string_output
if test2_string_output == test2_correct_answer:
    print "Test 2 passed",
else:
    print "Test 2 failed",
Example #9
0
K_V = sqa.tensor('int1', [a1, a2], [hsym])
V_A = sqa.tensor('int2', [x1, x2, x3, x4], [Dsym_a, Dsym_b, Dsym_c])

HD_A = sqa.term(0.5, [""], [V_A, sqa.sfExOp([x1, x2, x3, x4])])
T_C = sqa.term(1.0, [""], [K_C, sqa.sfExOp([i1, i2])])
T_A = sqa.term(1.0, [""], [K_A, sqa.sfExOp([x1, x2])])
T_V = sqa.term(1.0, [""], [K_V, sqa.sfExOp([a1, a2])])

#first excitation
E_aiEbj1a = sqa.term(1.0, [""], [sqa.sfExOp([a, i]), sqa.sfExOp([p, q])])
E_aiEbj1b = sqa.term(1.0, [""], [sqa.sfExOp([p, i]), sqa.sfExOp([a, q])])
E_aiEbj2a = sqa.term(1.0, [""], [sqa.sfExOp([s, r]), sqa.sfExOp([j, b])])
E_aiEbj2b = sqa.term(1.0, [""], [sqa.sfExOp([s, b]), sqa.sfExOp([j, r])])

commutator = []
commutator += sqa.commutator(HD_A, E_aiEbj1a)
commutator += sqa.commutator(T_C, E_aiEbj1a)
commutator += sqa.commutator(T_A, E_aiEbj1a)
commutator += sqa.commutator(T_V, E_aiEbj1a)
result = []

for t in commutator:
    result += sqa.normalOrder(sqa.multiplyTerms(E_aiEbj2a, t))

for t in result:
    t.contractDeltaFuncs_new()

sqa.removeVirtOps_sf(result)
sqa.termChop(result)
sqa.combineTerms(result)
Example #10
0
T_A = sqa.term(1.0, [''], [K_A, sqa.sfExOp([x1, x2])])
T_V = sqa.term(1.0, [''], [K_V, sqa.sfExOp([a1, a2])])
HD_A = sqa.term(0.5, [''], [V_A, sqa.sfExOp([x1, x2, x3, x4])])

# Define the normal-ordered A matrix:
# Apvec_nu = < O^T_nu [H,O_mu] >.pvec_mu
pvec1 = sqa.tensor('p1', [i, p, q, a], [])
pvec2 = sqa.tensor('p2', [i, p, q, a], [])
Apvec1 = sqa.tensor('Ap1', [j, r, s, b], [])
Apvec2 = sqa.tensor('Ap2', [j, r, s, b], [])
OmuA = sqa.term(1.0, [''], [pvec1, sqa.sfExOp([a, i]), sqa.sfExOp([p, q])])
OmuB = sqa.term(1.0, [''], [pvec2, sqa.sfExOp([p, i]), sqa.sfExOp([a, q])])
OnuA = sqa.term(1.0, [''], [Apvec1, sqa.sfExOp([s, r]), sqa.sfExOp([j, b])])
OnuB = sqa.term(1.0, [''], [Apvec2, sqa.sfExOp([s, b]), sqa.sfExOp([j, r])])
commutator1 = []
commutator1 += sqa.commutator(T_C, OmuA)
commutator1 += sqa.commutator(T_A, OmuA)
commutator1 += sqa.commutator(T_V, OmuA)
commutator1 += sqa.commutator(HD_A, OmuA)
commutator2 = []
commutator2 += sqa.commutator(T_C, OmuB)
commutator2 += sqa.commutator(T_A, OmuB)
commutator2 += sqa.commutator(T_V, OmuB)
commutator2 += sqa.commutator(HD_A, OmuB)
result = []
for t in commutator1:
    result += sqa.normalOrder(sqa.multiplyTerms(OnuA, t))
    result += sqa.normalOrder(sqa.multiplyTerms(OnuB, t))
for t in commutator2:
    result += sqa.normalOrder(sqa.multiplyTerms(OnuA, t))
    result += sqa.normalOrder(sqa.multiplyTerms(OnuB, t))