Пример #1
0
                                               , 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'])
Пример #2
0
    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)
Пример #3
0
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'])
Пример #4
0
    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
Пример #5
0
    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
Пример #6
0
# 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)