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
Example #2
0
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"]))
Example #4
0
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