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))
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