Пример #1
0
print('Orbital matching scores')
print(NO_overlap.orbital_scores)
print('#####################################################################')
print('Gas to adsorbate indices and band centers')
print(NO_overlap.gas_2_adsorbate)

#######################################################################################
# Identify bonding orbitals
# -------------------------
#
# We calcluate the amount of density for each orbital that is in a bonding region
# We can do this both for the gas and for the adsorbate

#gas
COOPCAR_NO = os.path.join(lobster_path, gas + '/COOPCAR.lobster')
POP_NO = OVERLAP_POPULATION(COOPCAR_NO)
bonding_states = POP_NO.get_bonding_states(NO_overlap.gas_orbital_indices\
                                               , NO_overlap.GAS_PDOS.get_energies()\
                                               , 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')
Пример #2
0
from pdos_overlap.overlap_population import OVERLAP_POPULATION
from pdos_overlap.plotting_tools import set_figure_settings

#######################################################################################
# Load COOPCAR file
# -----------------
#
# First we will, get the example data, load a COOPCAR file and use it to
# instantiate an OVERLAP_POPULATION object

set_figure_settings('paper')
data_path = r'C:\Users\lansf\Documents\Data\PROBE_PDOS\lobster_files'
COOPCAR_C2H4 = os.path.join(data_path, 'C2H4/COOPCAR.lobster')
COOPCAR_CO = os.path.join(data_path, 'CO/COOPCAR.lobster')
COOPCAR_NO = os.path.join(data_path, 'NO/COOPCAR.lobster')
POP_C2H4 = OVERLAP_POPULATION(COOPCAR_C2H4)
POP_CO = OVERLAP_POPULATION(COOPCAR_CO)
POP_NO = OVERLAP_POPULATION(COOPCAR_NO)

#######################################################################################
# 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

CC_overlap = POP_C2H4.get_pcoop(interactions=[0],
                                sum_pcoop=False,
                                sum_spin=True)
CH_overlap = POP_C2H4.get_pcoop(interactions=[1, 2, 3, 4],
                                sum_pcoop=True,
Пример #3
0
print('Orbital matching scores')
print(C2H4_overlap.orbital_scores)
print('#####################################################################')
print('Gas to adsorbate indices and band centers')
print(C2H4_overlap.gas_2_adsorbate)

#######################################################################################
# Identify bonding orbitals
# -------------------------
#
# We calcluate the amount of density for each orbital that is in a bonding region
# We can do this both for the gas and for the adsorbate

#gas
COOPCAR_C2H4 = os.path.join(lobster_path, gas + '/COOPCAR.lobster')
POP_C2H4 = OVERLAP_POPULATION(COOPCAR_C2H4)
bonding_fraction = POP_C2H4.get_bonding_states(C2H4_overlap.gas_orbital_indices\
                                               , C2H4_overlap.GAS_PDOS.get_energies()\
                                               , set_antibonding_zero=True)
print('Gas bonding states')
print(bonding_fraction)

#adsorbate
COOPCAR_C2H4 = os.path.join(lobster_path, 'surfaces_noW/'+surface + '+'\
                          + adsorbate + '/COOPCAR.lobster')
POP_C2H4 = OVERLAP_POPULATION(COOPCAR_C2H4)
bonding_states = POP_C2H4.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')
Пример #4
0
# This has the effect of increasing certainty and roughly corresponds to the
# average shift in molecular orbital energies when a gas adsorbs to the surface
optimized_upshift = CO_overlap.optimize_energy_shift(bound=[-10,10]\
                                                     , reset=True, plot=True)
print(optimized_upshift)

#######################################################################################
# Identify bonding orbitals
# -------------------------
#
# We calcluate the amount of density for each orbital that is in a bonding region
# We can do this both for the gas and for the adsorbate

#gas
COOPCAR_CO = os.path.join(lobster_path, gas + '/COOPCAR.lobster')
POP_CO_GAS = OVERLAP_POPULATION(COOPCAR_CO)
bonding_states = POP_CO_GAS.get_bonding_states(CO_overlap.gas_orbital_indices\
                                               , CO_overlap.GAS_PDOS.get_energies()\
                                               , set_antibonding_zero=True)
print('Gas bonding states')
print(bonding_states)

#adsorbate
COOPCAR_CO = os.path.join(lobster_path, 'surfaces_noW/'+surface + '+'\
                          + adsorbate + '/COOPCAR.lobster')
POP_CO_ADSORBATE = OVERLAP_POPULATION(COOPCAR_CO)
bonding_states = POP_CO_ADSORBATE.get_bonding_states(CO_overlap.adsorbate_orbital_indices\
                                               , CO_overlap.REFERENCE_PDOS.get_energies()\
                                               , set_antibonding_zero=True
                                               , emax = CO_overlap.REFERENCE_PDOS.e_fermi)
print('Adsorbate bonding states')
Пример #5
0
from pdos_overlap.overlap_population import get_example_data
from pdos_overlap.overlap_population import OVERLAP_POPULATION
from pdos_overlap.plotting_tools import set_figure_settings

#######################################################################################
# Load COOPCAR file
# -----------------
#
# First we will, get the example data, load a COOPCAR file and use it to
# instantiate an OVERLAP_POPULATION object

set_figure_settings('paper')
example_path = get_example_data()
COOPCAR = os.path.join(example_path, 'C2H4/COOPCAR.lobster')

POP = OVERLAP_POPULATION(COOPCAR)

#######################################################################################
# Identify bonding interactions and check for spin
# ------------------------------------------------
#
print(POP.interactions)
print(POP.is_spin)

#######################################################################################
# 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
#######################################################################################
# Load COOPCAR file
# -----------------
#
# First we will, get the example data, load a COOPCAR file and use it to
# instantiate an OVERLAP_POPULATION object

set_figure_settings('paper')
data_path = r'C:\Users\lansf\Documents\Data\PROBE_PDOS\lobster_files/surfaces_noW'
COOPCAR_C2H4_atop = os.path.join(data_path, 'Pt111+C2H4_atop/COOPCAR.lobster')
COOPCAR_C2H4_bridge = os.path.join(data_path,
                                   'Pt111+C2H4_bridge/COOPCAR.lobster')
COOPCAR_CO = os.path.join(data_path, 'Pt111+CO/COOPCAR.lobster')
COOPCAR_NO_atop = os.path.join(data_path, 'Pt111+NO_atop/COOPCAR.lobster')
COOPCAR_NO_fcc = os.path.join(data_path, 'Pt111+NO_fcc/COOPCAR.lobster')
POP_C2H4_atop = OVERLAP_POPULATION(COOPCAR_C2H4_atop)
POP_C2H4_bridge = OVERLAP_POPULATION(COOPCAR_C2H4_bridge)
POP_CO = OVERLAP_POPULATION(COOPCAR_CO)
POP_NO_atop = OVERLAP_POPULATION(COOPCAR_NO_atop)
POP_NO_fcc = OVERLAP_POPULATION(COOPCAR_NO_fcc)

#######################################################################################
# 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

POP_C2H4_atop.overlap = POP_C2H4_atop.get_pcoop(sum_pcoop=True, sum_spin=True\
                                                , set_antibonding_zero=True)
POP_C2H4_bridge.overlap = POP_C2H4_bridge.get_pcoop(sum_pcoop=True, sum_spin=True\