Exemple #1
0
from pyscf import cc, mp

fockTensor = Tensor("f", ['g'], ['g'])
h2Tensor = Tensor("v", ['g', 'g'], ['g', 'g'])

fockTensor.getAllDiagramsGeneral()
h2Tensor.getAllDiagramsGeneral()

t1Tensor = Tensor("{t_{1}}", ['p'], ['h'])
t2Tensor = Tensor("{t_{2}}", ['p', 'p'], ['h', 'h'])
t3Tensor = Tensor("{t_{3}}", ['p', 'p', 'p'], ['h', 'h', 'h'])

normalOrderedHamiltonian = sum(
    fockTensor.diagrams) + (1. / 2.) * sum(h2Tensor.diagrams)
BCH = CC.BCHSimilarityTransform(
    normalOrderedHamiltonian,
    t1Tensor + (1. / 4.) * t2Tensor + (1. / 9.) * t3Tensor, 4)

t0 = time()
energyEquation = CC.getEnergyEquation(BCH)
t1 = time()
print("Time to find energy equation:", t1 - t0)
print("number of terms:", len(energyEquation.summandList))
singlesAmplitudeEquation = CC.getAmplitudeEquation(BCH, 1)
t2 = time()
print("Time to find singles amplitude equation:", t2 - t1)
print("number of terms:", len(singlesAmplitudeEquation.summandList))
doublesAmplitudeEquation = CC.getAmplitudeEquation(BCH, 2)
t3 = time()
print("Time to find doubles amplitude equation:", t3 - t2)
print("number of terms:", len(doublesAmplitudeEquation.summandList))
Exemple #2
0
from time import time
from GeneralisedWick import *
import CC, texify
from pyscf import cc, mp

fockTensor = Tensor("f", ['g'], ['g'])
h2Tensor = Tensor("v", ['g', 'g'], ['g', 'g'])

fockTensor.getAllDiagramsGeneral()
h2Tensor.getAllDiagramsGeneral()

t1Tensor = Tensor("{t_{1}}", ['p'], ['h'])
t2Tensor = Tensor("{t_{2}}", ['p', 'p'], ['h', 'h'])

normalOrderedHamiltonian = sum(fockTensor.diagrams) + (1. / 2.) * sum(h2Tensor.diagrams)
BCH = CC.BCHSimilarityTransform(normalOrderedHamiltonian, t1Tensor + 0.25 * t2Tensor, 4)

t0 = time()
energyEquation = CC.getEnergyEquation(BCH)
t1 = time()
print("Time to find energy equation:", t1 - t0)
print("number of terms:", len(energyEquation.summandList))
singlesAmplitudeEquation = CC.getAmplitudeEquation(BCH, 1)
t2 = time()
print("Time to find singles amplitude equation:", t2 - t1)
print("number of terms:", len(singlesAmplitudeEquation.summandList))
doublesAmplitudeEquation = CC.getAmplitudeEquation(BCH, 2)
t3 = time()
print("Time to find doubles amplitude equation:", t3 - t2)
print("number of terms:", len(doublesAmplitudeEquation.summandList))
from time import time
from GeneralisedWick import *
import CC, texify
import pickle

fockTensor = Tensor("f", ['g'], ['g'])
h2Tensor = Tensor("v", ['g', 'g'], ['g', 'g'])

fockTensor.getAllDiagramsGeneral()
h2Tensor.getAllDiagramsGeneral()

t2Tensor = Tensor("{t_{2}}", ['p', 'p'], ['h', 'h'])

normalOrderedHamiltonian = sum(
    fockTensor.diagrams) + (1. / 2.) * sum(h2Tensor.diagrams)
BCH = CC.BCHSimilarityTransform(normalOrderedHamiltonian, 0.5 * t2Tensor, 2)

t0 = time()
energyEquation = CC.getEnergyEquation(BCH)
t1 = time()
print("Time to find energy equation:", t1 - t0)
print("number of terms:", len(energyEquation.summandList))
doublesAmplitudeEquation = CC.getAmplitudeEquation(BCH, 2)
#for summand in doublesAmplitudeEquation.summandList:
#    summand.prefactor *= (1. / 2.)
t2 = time()
print("Time to find doubles amplitude equation:", t2 - t1)
print("number of terms:", len(doublesAmplitudeEquation.summandList))

d = {}
d["energyEquation"] = energyEquation