filling_list = [] second_moment_list = [] bond_energy_list = [] #DOSCAR_files, CONTCAR_files = get_all_VASP_files(\ # r'C:\Users\lansf\Documents\Data\PROBE_PDOS\lobster_files\nanoparticles_noW') DOSCAR_files, CONTCAR_files = get_all_VASP_files(\ r'C:\Users\lansf\Documents\Data\PROBE_PDOS\vasp_dos_files/Pt_nano') for DOSCAR, CONTCAR in zip(DOSCAR_files, CONTCAR_files): indices, GCNs, atom_types = get_geometric_data(CONTCAR) GCNList += GCNs.tolist() atom_type += atom_types.tolist() # read and return densityofstates object PDOS = VASP_DOS(DOSCAR, add_p2s=True) for atom_index in indices: band_center = PDOS.get_band_center(atom_index, ['s','d']\ , sum_density=True) - PDOS.e_fermi occupied_band_center = PDOS.get_band_center(atom_index, ['s','d']\ , sum_density=True, max_energy=PDOS.e_fermi) - PDOS.e_fermi unoccupied_band_center = PDOS.get_band_center(atom_index, ['s','d']\ , sum_density=True, min_energy=PDOS.e_fermi) - PDOS.e_fermi band_width = PDOS.get_center_width(PDOS.e_fermi, atom_index, ['s','d']\ , sum_density=True) second_moment = PDOS.get_second_moment(atom_index, ['s','d']\ , sum_density=True) bond_energy = PDOS.get_bond_energy(atom_index, ['s','d']\ , sum_density=True) filling = PDOS.get_filling(atom_index, ['s','d']\ , sum_density=True, max_energy=PDOS.e_fermi)
from pdos_overlap.plotting_tools import set_figure_settings ####################################################################################### # Load DOSCAR file # ---------------- # # First we will, get the example data, load a DOSCAR file and use it to # instantiate a VASP_DOS object. set_figure_settings('paper') example_path = get_example_data() DOSCAR = os.path.join(example_path, 'C2H4/DOSCAR') PDOS = VASP_DOS(DOSCAR) ####################################################################################### # Calculate and print band centers # -------------------------------- # # This method uses the the site and spin orbital projected density. It sums the # spin orbital densities to get energy sub-level band centers. orbitals = [ key for key in PDOS.orbital_dictionary.keys() if 's' in key or 'p' in key ] band_centers = PDOS.get_band_center([0], orbital_list=orbitals\ , max_energy=PDOS.e_fermi, sum_spin=False) for count, orbital in enumerate(orbitals): print(orbital + ' band center :' + str(band_centers[count]))