示例#1
0
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)
示例#2
0
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]))