def print_data(self, current_time): fmt_str = '%20.8e' ######## CALCULATE OBSERVABLES OF INTEREST ####### #Calculate 1RDM corr1RDM = fci_mod.get_corr1RDM(self.CIcoeffs, self.Nsites, self.Nelec) #Calculate total energy Etot = fci_mod.get_FCI_E(self.h_site, self.V_site, self.Ecore, self.CIcoeffs, self.Nsites, int(self.Nelec / 2), int(self.Nelec / 2)) #Calculate total number of electrons (used as convergence check for time-step) Nele = np.real(np.sum(np.diag(corr1RDM))) ######## PRINT OUT EVERYTHING ####### #Print correlated density in the site basis cnt = 0 corrdens = np.real(np.diag(corr1RDM)) corrdens = np.insert(corrdens, 0, current_time) np.savetxt(self.file_corrdens, corrdens.reshape(1, corrdens.shape[0]), fmt_str) self.file_corrdens.flush() #Print output data output = np.zeros(3) output[0] = current_time output[1] = Etot output[2] = Nele np.savetxt(self.file_output, output.reshape(1, output.shape[0]), fmt_str) self.file_output.flush()
def print_data(current_time, CIcoeffs, mf1RDM, Nimp, file_corrdens, file_mfdens): fmt_str = '%20.8e' corrdens = np.copy( np.real(np.diag(fci_mod.get_corr1RDM(CIcoeffs, 2 * Nimp, (Nimp, Nimp))))) corrdens = np.insert(corrdens, 0, current_time) np.savetxt(file_corrdens, corrdens.reshape(1, corrdens.shape[0]), fmt_str) mfdens = np.copy(np.real(np.diag(mf1RDM))) mfdens = np.insert(mfdens, 0, current_time) np.savetxt(file_mfdens, mfdens.reshape(1, mfdens.shape[0]), fmt_str)
def get_corr1RDM(self): #Subroutine to get the FCI 1RDM self.corr1RDM = fci_mod.get_corr1RDM(self.CIcoeffs, 2 * self.Nimp, (self.Nimp, self.Nimp))
Nsites = NL + NR + 1 Nele = Nsites t = 0.4 Vg = 0.0 tleads = 1.0 Full = True delt = 0.001 Nstep = 5000 Nprint = 1 #Initital Static Calculation U = 1.0 Vbias = 0.0 h_site, V_site = make_hams.make_ham_single_imp_anderson_realspace( NL, NR, Vg, U, t, Vbias, tleads, Full) CIcoeffs = fci_mod.FCI_GS(h_site, V_site, 0.0, Nsites, Nele) mf1RDM = fci_mod.get_corr1RDM(CIcoeffs, Nsites, Nele) #Dynamics Calculation U = 0.0 Vbias = -0.001 h_site, V_site = make_hams.make_ham_single_imp_anderson_realspace( NL, NR, Vg, U, t, Vbias, tleads, Full) tdhf = tdhf.tdhf(Nsites, Nele, h_site, mf1RDM, delt, Nstep, Nprint) tdhf.kernel()