def make_rdm12(fcivec, norb, nelec, link_index=None, reorder=True): # dm1, dm2 = rdm.make_rdm12('FCIrdm12kern_spin0', fcivec, fcivec, # norb, nelec, link_index, 1) # NOT use FCIrdm12kern_spin0 because for small system, the kernel may call # direct diagonalization, which may not fulfil fcivec = fcivet.T dm1, dm2 = rdm.make_rdm12("FCIrdm12kern_sf", fcivec, fcivec, norb, nelec, link_index, 1) if reorder: dm1, dm2 = rdm.reorder_rdm(dm1, dm2, True) return dm1, dm2
def make_rdm12(fcivec, norb, nelec, link_index=None, reorder=True): #dm1, dm2 = rdm.make_rdm12('FCIrdm12kern_spin0', fcivec, fcivec, # norb, nelec, link_index, 1) # NOT use FCIrdm12kern_spin0 because for small system, the kernel may call # direct diagonalization, which may not fulfil fcivec = fcivet.T dm1, dm2 = rdm.make_rdm12('FCIrdm12kern_sf', fcivec, fcivec, norb, nelec, link_index, 1) if reorder: dm1, dm2 = rdm.reorder_rdm(dm1, dm2, True) return dm1, dm2
def trans_rdm12(cibra, ciket, norb, nelec, link_index=None, reorder=True): dm1, dm2 = rdm.make_rdm12('FCItdm12kern_sf', cibra, ciket, norb, nelec, link_index, 2) if reorder: dm1, dm2 = rdm.reorder_rdm(dm1, dm2, True) return dm1, dm2