, set_antibonding_zero=False) print('Gas bonding states') print(bonding_states) #adsorbate COOPCAR_NO = os.path.join(lobster_path, 'surfaces_noW/'+surface + '+'\ + adsorbate + '/COOPCAR.lobster') POP_NO = OVERLAP_POPULATION(COOPCAR_NO) bonding_states = POP_NO.get_bonding_states(NO_overlap.adsorbate_orbital_indices\ , NO_overlap.REFERENCE_PDOS.get_energies()\ , set_antibonding_zero=True , emax = NO_overlap.REFERENCE_PDOS.e_fermi) print('Adsorbate bonding fraction') print(bonding_states) bonding_states = POP_NO.get_bonding_states( NO_overlap.adsorbate_orbital_indices, NO_overlap.REFERENCE_PDOS.get_energies(), interactions=[6], set_antibonding_zero=True, emax=NO_overlap.REFERENCE_PDOS.e_fermi) print('N-O bonding fraction') print(bonding_states) ####################################################################################### # Plot energy overlap # ------------------- # # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. Gas orbitals 1,2, and 3 interact with the surface. NO_overlap.plot_energy_overlap([1, 2, 3, 4], ['s', 'd'])
emax=CO_overlap.REFERENCE_PDOS.e_fermi) print('C-O bonding states') print(bonding_states) ####################################################################################### # Plot energy overlap # ------------------- # # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. Gas orbitals 1,2, and 3 interact with the surface. # We plot the energy overlap for the 4sigma, 1pi, and 5sigma orbitals gas_indices = [ i for i in range(6) if CO_overlap.gas_2_adsorbate[i][0] in [1, 2, 3] ] adsorbate_indices = CO_overlap.gas_2_adsorbate[gas_indices, 1].astype('int') CO_overlap.plot_energy_overlap(indices=adsorbate_indices, atomic_orbitals=['s', 'd']) ####################################################################################### # Print orbital interactions # -------------------------- # # Plot orbital interaction of the first gas molecular orbital with a surface # s, pz, and dz2 orbitals. These are identified from first figure above example_path = r'C:\Users\lansf\Documents\Data\PROBE_PDOS\vasp_dos_files' nano = 'Pt44' nano_DOSCAR = os.path.join(example_path, nano + '/DOSCAR') nano_CONTCAR = os.path.join(example_path, nano + '/CONTCAR') #obtain atom indices and atom type as 'surface' or 'bulk' nano_indices, GCNs, atom_types = get_geometric_data(nano_CONTCAR) #initialize a PDOS object for the nanoparticle nano_PDOS = VASP_DOS(nano_DOSCAR)
COOPCAR_NO = os.path.join(lobster_path, 'surfaces_noW/'+surface + '+'\ + adsorbate + '/COOPCAR.lobster') POP_NO = OVERLAP_POPULATION(COOPCAR_NO) bonding_states = POP_NO.get_bonding_states(C2H4_overlap.adsorbate_orbital_indices\ , C2H4_overlap.REFERENCE_PDOS.get_energies()\ , set_antibonding_zero=True , emax = C2H4_overlap.REFERENCE_PDOS.e_fermi) print('Adsorbate bonding states') print(bonding_states) bonding_states = POP_NO.get_bonding_states( C2H4_overlap.adsorbate_orbital_indices, C2H4_overlap.REFERENCE_PDOS.get_energies(), interactions=[6, 7, 8, 13, 14], set_antibonding_zero=True, emax=C2H4_overlap.REFERENCE_PDOS.e_fermi) print('C-C and C-H bonding states') print(bonding_states) print('Occupations and band centers') print(C2H4_overlap.adsorbate_occupations) print(C2H4_overlap.adsorbate_band_centers) ####################################################################################### # Plot energy overlap # ------------------- # # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. Gas orbitals 1,2, and 3 interact with the surface. C2H4_overlap.plot_energy_overlap([0, 1, 2, 3, 4], ['s', 'd'])
CO_overlap.REFERENCE_PDOS.get_energies(), interactions=[12], set_antibonding_zero=False, emax=CO_overlap.REFERENCE_PDOS.e_fermi) print('C-O bonding states') print(bonding_states) print(CO_overlap.adsorbate_band_centers) print(CO_overlap.adsorbate_occupations) ####################################################################################### # Plot energy overlap # ------------------- # # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. Gas orbitals 1,2, and 3 interact with the surface. CO_overlap.plot_energy_overlap(indices=[0, 1, 2, 3], atomic_orbitals=['s', 'd'], figure_directory=Downloads_folder) ####################################################################################### # Obtain projected overlap # ------------------------ # # We projected orbital overlap for the C-C bond and C-H bonds in C2H4 # We group the CH bonds and ensure to sum for spins as all electrons are paired GAS_OVERLAP = POP_CO_GAS.get_pcoop([0], sum_pcoop=True) ADSORBATE_OVERLAP = POP_CO_ADSORBATE.get_pcoop(sum_pcoop=True, set_antibonding_zero=True) CO_OVERLAP = POP_CO_ADSORBATE.get_pcoop([12], sum_pcoop=True) ####################################################################################### # Plot the bonding populaiton with respect to the CC and CH bonds
CO_overlap.REFERENCE_PDOS.get_energies(), interactions=[2], set_antibonding_zero=False, emax=CO_overlap.REFERENCE_PDOS.e_fermi) print('C-O bonding states') print(bonding_states) print(CO_overlap.adsorbate_band_centers) print(CO_overlap.adsorbate_occupations) ####################################################################################### # Plot energy overlap # ------------------- # # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. Gas orbitals 1,2, and 3 interact with the surface. CO_overlap.plot_energy_overlap(indices=[0, 1, 2, 3], atomic_orbitals=['s', 'd'], figure_directory='print') ####################################################################################### # Obtain projected overlap # ------------------------ # # We projected orbital overlap for the C-C bond and C-H bonds in C2H4 # We group the CH bonds and ensure to sum for spins as all electrons are paired GAS_OVERLAP = POP_CO_GAS.get_pcoop([0], sum_pcoop=True) ADSORBATE_OVERLAP = POP_CO_ADSORBATE.get_pcoop(sum_pcoop=True, set_antibonding_zero=True) CO_OVERLAP = POP_CO_ADSORBATE.get_pcoop([2], sum_pcoop=True) ####################################################################################### # Plot the bonding populaiton with respect to the CC and CH bonds
# Print orbital CO_overlap attributes # ----------------------------------- # # Differences in features are used in computing orbital scores. # Scores are used to map gas molecular orbitals ot adsorbate molecular orbitals. print('Print molecular gas and adsorbate orbital features, respectively.') print(CO_overlap.gas_features) print(CO_overlap.adsorbate_features) print('#####################################################################') print('Orbital matching scores') print(CO_overlap.orbital_scores) print('#####################################################################') print('Gas to adsorbate indices and band centers') print(CO_overlap.gas_2_adsorbate) ####################################################################################### # Plot projected density # ---------------------- # # We plot the projected density of the gas, adsorbate, and adsorption site. CO_overlap.plot_projected_density() ####################################################################################### # Plot energy overlap # ------------------- # We select energy overlap histograms with the adsorbate molecular orbitals # that influence spectra. indices = [i for i in range(5) if CO_overlap.gas_2_adsorbate[i][0] in [1,2,3]] adsorbate_indices = CO_overlap.gas_2_adsorbate[indices,1].astype('int') CO_overlap.plot_energy_overlap(adsorbate_indices)