def get_step2_data(_params): """ A light function to obtain the step2 data Args: params ( dictionary ): Control paramerter of this type of simulation. Can include the follwing keys: * **params["basis"]** ( string ): describes if one is using either the spin-diabatic (non spin-orbit coupling) or is using the spin-adiabatic (spin orbit-coupling) """ params = dict(_params) spin_basis = params["basis"] # Fetching the overlap matricies params.update({ "data_re_prefix": "S_" + spin_basis + "_ks_", "data_re_suffix": "_re", "data_im_prefix": "S_" + spin_basis + "_ks_", "data_im_suffix": "_im" }) S = data_read.get_data_sets(params) #print ("\n") #S[0][0].show_matrix() #print (S[0][0].get(0,0)) #sys.exit(0) # Fetching the time-derivative overlap matricies params.update({ "data_re_prefix": "St_" + spin_basis + "_ks_", "data_re_suffix": "_re", "data_im_prefix": "St_" + spin_basis + "_ks_", "data_im_suffix": "_im" }) St = data_read.get_data_sets(params) #print ("\n") #St[0][0].show_matrix() #sys.exit(0) # Fetching the vibronic Hamiltonian matricies params.update({ "data_re_prefix": "hvib_" + spin_basis + "_", "data_re_suffix": "_re", "data_im_prefix": "hvib_" + spin_basis + "_", "data_im_suffix": "_im" }) Hvib_ks = data_read.get_data_sets(params) #print ("\n") #Hvib_ks[0][0].show_matrix() #sys.exit(0) return S, St, Hvib_ks
# Assume we only need H**O-1, H**O, LUMO and LUMO+1 alpha-spin orbitals, # so we can define this by setting the "active_space" parameter to the list [4, 5, 6, 7] ham_dir = "/home/mahdipor_hamid.physics.sharif/jobs/g_znpc/libra/slg/step2/res-lib-slg-p/" params = { "data_set_paths": [ham_dir], "data_dim": 22, "active_space": [3, 4, 5, 6, 7, 8, 9], "isnap": 0, "fsnap": 5997, "data_re_prefix": "S_dia_ks_", "data_re_suffix": "_re", "data_im_prefix": "S_dia_ks_", "data_im_suffix": "_im" } S = data_read.get_data_sets(params) params.update({ "data_re_prefix": "St_dia_ks_", "data_re_suffix": "_re", "data_im_prefix": "St_dia_ks_", "data_im_suffix": "_im" }) St = data_read.get_data_sets(params) params.update({ "data_re_prefix": "hvib_dia_", "data_re_suffix": "_re", "data_im_prefix": "hvib_dia_", "data_im_suffix": "_im" })
############### # 1. Read the files that have the energies and time-overlap matricies in the Kohn-Sham basis, E_ks and St_ks. path = os.getcwd() res_dir = path+"/../../res/" data_dim = 82 # rows in E_ks active_space = range(data_dim) start_time = 0 finish_time = 4001 dt = 1.0*units.fs2au params = { "data_set_paths" : [res_dir], "data_dim":data_dim, "active_space":active_space, "isnap":start_time, "fsnap":finish_time } # Fetching E_ks params.update({ "data_re_prefix" : "E_ks_", "data_re_suffix" : "_re", "data_im_prefix" : "E_ks_", "data_im_suffix" : "_im" } ) E_ks = data_read.get_data_sets(params) print ("\n") E_ks[0][-1].show_matrix() #sys.exit(0) # Fetching St_ks params.update({ "data_re_prefix" : "St_ks_", "data_re_suffix" : "_re", "data_im_prefix" : "St_ks_", "data_im_suffix" : "_im" } ) St_ks = data_read.get_data_sets(params) print ("\n") St_ks[0][-1].show_matrix() #sys.exit(0) #################### # 2.0. Generate the h**o -> lumo+n excitations. We know before hand that 42 is to be the highest considered excitation. Spin-polarization is not considered in this study, so excitation of only 1 spin type (alpha herein) is chosen. These "excitations" are in the format of how CP2K would output them. We do this because the routine used below can transform this format of "excitations" into a format expected by Libra
####################################################################################### ####################################################################################### # 1. Read the files that have the energies and time-overlap matricies in the Kohn-Sham basis, E_ks and St_ks. path = os.getcwd() res_dir_mb = path+"/../../step2/res/" data_dim = 82 # rows in E_ks active_space = range(data_dim) start_time = 0 # initial step finish_time = 4001 # final step + 1 dt = 1.0*units.fs2au params = { "data_set_paths" : [res_dir_mb], "data_dim":data_dim, "active_space":active_space, "isnap":start_time, "fsnap":finish_time } # Fetching E_ks params.update({ "data_re_prefix" : "E_ks_", "data_re_suffix" : "_re", "data_im_prefix" : "E_ks_", "data_im_suffix" : "_im" } ) E_ks_job = data_read.get_data_sets(params) print ("\n") E_ks_job[0][-1].show_matrix() #sys.exit(0) # Fetching S_ks params.update({ "data_re_prefix" : "S_ks_", "data_re_suffix" : "_re", "data_im_prefix" : "S_ks_", "data_im_suffix" : "_im" } ) S_ks_job = data_read.get_data_sets(params) print ("\n") S_ks_job[0][-1].show_matrix() #sys.exit(0) # Fetching St_ks params.update({ "data_re_prefix" : "St_ks_", "data_re_suffix" : "_re", "data_im_prefix" : "St_ks_", "data_im_suffix" : "_im" } ) St_ks_job = data_read.get_data_sets(params) print ("\n") St_ks_job[0][-2].show_matrix() #sys.exit(0)