#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) #calculate orbital interactions BULK_DOSCAR = os.path.join(example_path, 'Pt_nano/Pt147/DOSCAR') # VASP_DOS objects for both the gas (vacuum) and the adsorbate+surface system GAS_PDOS = VASP_DOS(GAS_DOSCAR) REFERENCE_PDOS = VASP_DOS(ADSORBATE_DOSCAR) BULK_PDOS = VASP_DOS(BULK_DOSCAR) print('Interactions with 4sigma orbital') orbital_interaction = CO_overlap.get_orbital_interaction( gas_indices[0], nano_PDOS, nano_indices[atom_types[...] == 'surface'][0], ['s', 'dz2'], BULK_PDOS, bulk_atom=43, sum_interaction=False, sum_spin=True, index_type='gas') print(orbital_interaction) print('Interactions with 1pi orbital') orbital_interaction = CO_overlap.get_orbital_interaction( gas_indices[1], nano_PDOS, nano_indices[atom_types[...] == 'surface'][0], ['dyz', 'dxz'], BULK_PDOS, bulk_atom=43, sum_interaction=False, sum_spin=True, index_type='gas')
four_sigma_list = [] one_pi_list = [] five_sigma_list = [] DOSCAR_files, CONTCAR_files = get_all_VASP_files(\ r'C:\Users\lansf\Documents\Data\PROBE_PDOS\vasp_dos_files\Pt_nano') for nano_DOSCAR, nano_CONTCAR in zip(DOSCAR_files, CONTCAR_files): nano_indices, GCNs, atom_types = get_geometric_data(nano_CONTCAR) GCNList += GCNs[atom_types[...] == 'surface'].tolist() # read and return density of states object nano_PDOS = VASP_DOS(nano_DOSCAR) for atom_index in nano_indices[atom_types[...] == 'surface']: four_sigma = CO_overlap.get_orbital_interaction(1\ , nano_PDOS, atom_index, ['s','dz2']\ , BULK_PDOS, bulk_atom=43\ , method='band_width', use_orbital_proximity=False) one_pi = CO_overlap.get_orbital_interaction(2\ , nano_PDOS, atom_index, ['dyz','dxz']\ , BULK_PDOS, bulk_atom=43\ , method='band_width', use_orbital_proximity=False) five_sigma = CO_overlap.get_orbital_interaction(3\ , nano_PDOS, atom_index, ['s','dz2']\ , BULK_PDOS, bulk_atom=43\ , method='band_width', use_orbital_proximity=False) four_sigma_list.append(four_sigma) one_pi_list.append(one_pi) five_sigma_list.append(five_sigma)
GCNList = [] orbital_indices = [0, 3, 4, 5] orbital_array = [[] for i in range(len(orbital_indices))] DOSCAR_files, CONTCAR_files = get_all_VASP_files(os.path.join(lobster_path,'nanoparticles_noW')) DOSCAR_files = [file_name + '.lobster' for file_name in DOSCAR_files] for nano_DOSCAR, nano_CONTCAR in zip(DOSCAR_files, CONTCAR_files): nano_indices, GCNs, atom_types = get_geometric_data(nano_CONTCAR) GCNList += GCNs[atom_types[...] == 'surface'].tolist() # read and return density of states object nano_PDOS = VASP_DOS(nano_DOSCAR) for atom_index in nano_indices[atom_types[...] == 'surface']: for i, index in enumerate(orbital_indices): orbital_array[i].append(Overlap.get_orbital_interaction(index\ , nano_PDOS, atom_index, ['s','d']\ , BULK_PDOS, bulk_atom=43\ , method='band_width', use_orbital_proximity=False\ , index_type='adsorbate' , sum_interaction=True)) GCNList = np.array(GCNList) for i in range(len(orbital_indices)): orbital_array[i] = np.array(orbital_array[i]).T #plotting scaling of band center with GCN colors = ['b','r'] abc = ['(a)','(b)','(c)','(d)'] fig = plt.figure(figsize=(7.2,3.5),dpi=400) axes = fig.subplots(nrows=2, ncols=2) axis_list = [axes[0, 0], axes[0, 1], axes[1, 0], axes[1, 1]] for count, orbital_list in enumerate(orbital_array):