params["Hvib_im_prefix"] = "hvib_" params["Hvib_im_suffix"] = "_im" # General simulaiton parameters params["T"] = 300.0 # Temperature, K params[ "dt"] = 1.0 * units.fs2au # Nuclear dynamics integration timestep, in a.u. params["nsteps"] = params["nfiles"] # The length of the NA-MD trajectory params["init_times"] = [0] # starting points for sub-trajectories params["do_output"] = True # request to print the results into a file params[ "do_return"] = False # request to not store the date in the operating memory # For running NA-MD start = time.time() Hvib = step4.get_Hvib2( params) # get the Hvib for all data sets, Hvib is a lists of lists init_time = params["init_times"][0] end = time.time() print("Time to read / assemble data = ", end - start) # Compute average decoherence time over entire trajectory tau, rates = decoherence_times.decoherence_times_ave( Hvib, [init_time], params["nfiles"] - init_time, 0) avg_deco = tau / units.fs2au avg_deco.show_matrix() """ #====================== One case ===================== # Looking on the "SH" populations - NBRA-TSH approach params["gap_min_exception"] = 0 params["Boltz_opt"] = 1 # Option for the frustrated hops acceptance/rejection params["Boltz_opt_BL"] = 0 # Option to incorporate hte frustrated hops into BL probabilities
print("\nGathering data from MD ") absolute_path = os.getcwd() params = {} params["data_set_paths"] = [] params["data_set_paths"].append(absolute_path + "/../../../step3/res_mb_sp/") params["Hvib_re_prefix"] = "Hvib_ci_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "Hvib_ci_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 1800 params["nstates"] = 151 # total number of electronic states params["init_times"] = [0] params["active_space"] = list(range(1, params["nstates"])) # indexing is from 0! # Include H**O and up to the last electronic state hvib_mb = step4.get_Hvib2(params) hvib_mb[0][-1].show_matrix() print("Length of hvib_mb is: ", len(hvib_mb[0])) #sys.exit(0) # For the SD (SP) case print("\nGathering data from MD ") absolute_path = os.getcwd() params = {} params["data_set_paths"] = [] params["data_set_paths"].append(absolute_path + "/../../../step3/res_mb_sp/") params["Hvib_re_prefix"] = "Hvib_sd_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "Hvib_sd_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 1800
params["data_set_paths"].append( "/budgetdata/academic/alexeyak/brendan/Si_QD/F_capped/1nm/step2_F1/traj0/res/" ) params["Hvib_re_prefix"] = "hvib_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "hvib_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 5000 params["nstates"] = 30 params["init_times"] = [0] params["active_space"] = range(30) times = [5000] for t in times: params["nsteps"] = t Hvib = step4.get_Hvib2(params) # Compute energy gaps for states i,j in trajectory of length "t" dE = decoherence_times.energy_gaps_ave(Hvib, [params["init_times"][0]], params["nsteps"]) # For computing influence spectra params2 = {} params2["dt"] = 1.0 # MD timestep in fs params2["wspan"] = 16384.0 # cm^-1 params2["dw"] = 1.0 # cm^-1 params2["do_output"] = False params2["do_center"] = True params2["acf_type"] = 1 params2["data_type"] = 0 states = range(len(params["active_space"]))
absolute_path = os.getcwd() params = {} params["data_set_paths"] = [] params["data_set_paths"].append(absolute_path + "/namd_data/") #params["data_set_paths"].append(absolute_path+"/../dftbp_check/step3/res_mb_sp/") params["Hvib_re_prefix"] = "Hvib_ks_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "Hvib_ks_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 2000 params["nstates"] = 2 # total number of electronic states params["init_times"] = [10000] params["active_space"] = range(2) # indexing is from 0! #params["active_space"] = range(0,int(params["nstates"]/2)) # indexing is from 0! # Include H**O and up to the last electronic state Hvib_ks = step4.get_Hvib2(params) Hvib_ks[0][-1].show_matrix() print("Length of hvib is: ", len(Hvib_ks[0])) #sys.exit(0) def compute_state_energies_vs_time(hvib): """ Computes the states energies vs time for a given hvib. hvib ( list of list of matrices ): The vibronic hamiltonian for all timesteps returns: a list of energies vs time for all states in hvib """ nsteps = len(hvib) nstates = hvib[0].num_of_rows energies = [] for state in [0, 1]:
print("\nGathering data from MD ") absolute_path = os.getcwd() params = {} params["data_set_paths"] = [] params["data_set_paths"].append(absolute_path + "/../../step3/mixed_electron_hole/_res") params["Hvib_re_prefix"] = "Hvib_ci_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "Hvib_ci_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 4000 params["nstates"] = 31 # total number of electronic states params["init_times"] = [0] params["active_space"] = list(range(params["nstates"])) # indexing is from 0! # Include H**O and up to the last electronic state hvib_mb = step4.get_Hvib2(params) hvib_mb[0][-1].show_matrix() print("Length of hvib_mb is: ", len(hvib_mb[0])) #sys.exit(0) print("\nGathering data from MD ") absolute_path = os.getcwd() params = {} params["data_set_paths"] = [] params["data_set_paths"].append(absolute_path + "/../../step3/mixed_electron_hole/_res") params["Hvib_re_prefix"] = "Hvib_sd_" params["Hvib_re_suffix"] = "_re" params["Hvib_im_prefix"] = "Hvib_sd_" params["Hvib_im_suffix"] = "_im" params["nfiles"] = 4000