ccu.adsorption.adsorbates

This module provides common adsorbate structures.

Adsorbates can be retrieved using the get_adsorbate() function or from any one of the subset dictionaries (CO2RR_ADSORBATES, NRR_ADSORBATES, ORR_ADSORBATES, HER_ADSORBATES, or ALL_ADSORBATES).

CO2RR Intermediates from Nitopi et al. [1]

NRR/UOR Intermediates Wan et al. [2] and Li et al. [3]

Bond lengths, angles and positions from NIST.

Example

>>> from ccu.adsorption.adsorbates import get_adsorbate
>>> co2 = get_adsorbate("CO2")
>>> co2
Atoms(symbols='CO2', pbc=False)
>>> co2.info["structure"]
'CO2'
>>> nho = get_adsorbate("NHO")
>>> nho
Atoms(symbols='HNO', pbc=False)
>>> nho.info["structure"]
'NHO'

References

ccu.adsorption.adsorbates.ALL_ADSORBATES: dict[str, Atoms] = {'C': Atoms(symbols='C', pbc=False), 'CH2': Atoms(symbols='CH2', pbc=False), 'CH2O': Atoms(symbols='CH2O', pbc=False), 'CH3': Atoms(symbols='CH3', pbc=False), 'CHO': Atoms(symbols='CHO', pbc=False), 'CHOH': Atoms(symbols='CHOH', pbc=False), 'CO': Atoms(symbols='CO', pbc=False), 'CO2': Atoms(symbols='CO2', pbc=False), 'COH': Atoms(symbols='COH', pbc=False), 'COOH': Atoms(symbols='CO2H', pbc=False), 'COOH_CIS': Atoms(symbols='CO2H', pbc=False), 'COOH_TRANS': Atoms(symbols='CO2H', pbc=False), 'H': Atoms(symbols='H', pbc=False), 'H2O': Atoms(symbols='OH2', pbc=False), 'HC2OH': Atoms(symbols='CH2OH', pbc=False), 'HCOOH': Atoms(symbols='OCOH2', pbc=False), 'N': Atoms(symbols='N', pbc=False), 'N2': Atoms(symbols='N2', pbc=False), 'N2O': Atoms(symbols='N2O', pbc=False), 'NH': Atoms(symbols='NH', pbc=False), 'NH2': Atoms(symbols='HNH', pbc=False), 'NH2O': Atoms(symbols='NH2O', pbc=False), 'NH2OH': Atoms(symbols='NH2OH', pbc=False), 'NH3': Atoms(symbols='NH3', pbc=False), 'NHO': Atoms(symbols='HNO', pbc=False), 'NHOH': Atoms(symbols='HNOH', pbc=False), 'NO': Atoms(symbols='NO', pbc=False), 'NO2': Atoms(symbols='NO2', pbc=False), 'NO2H': Atoms(symbols='NO2H', pbc=False), 'NO3': Atoms(symbols='NO3', pbc=False), 'NO3H': Atoms(symbols='NO3H', pbc=False), 'NOH': Atoms(symbols='NOH', pbc=False), 'O': Atoms(symbols='O', pbc=False), 'OCH3': Atoms(symbols='OCH3', pbc=False), 'OCHO': Atoms(symbols='CO2H', pbc=False), 'OH': Atoms(symbols='OH', pbc=False)}

All internally defined adsorbates

ccu.adsorption.adsorbates.CO2RR_ADSORBATES = {'C': Atoms(symbols='C', pbc=False), 'CH2': Atoms(symbols='CH2', pbc=False), 'CH2O': Atoms(symbols='CH2O', pbc=False), 'CH3': Atoms(symbols='CH3', pbc=False), 'CHO': Atoms(symbols='CHO', pbc=False), 'CHOH': Atoms(symbols='CHOH', pbc=False), 'CO': Atoms(symbols='CO', pbc=False), 'CO2': Atoms(symbols='CO2', pbc=False), 'COH': Atoms(symbols='COH', pbc=False), 'COOH': Atoms(symbols='CO2H', pbc=False), 'COOH_CIS': Atoms(symbols='CO2H', pbc=False), 'COOH_TRANS': Atoms(symbols='CO2H', pbc=False), 'HC2OH': Atoms(symbols='CH2OH', pbc=False), 'HCOOH': Atoms(symbols='OCOH2', pbc=False), 'OCH3': Atoms(symbols='OCH3', pbc=False), 'OCHO': Atoms(symbols='CO2H', pbc=False)}

adsorbates for the carbon dioxide reduction reaction Note that COOH is an alias for COOH_TRANS

ccu.adsorption.adsorbates.HER_ADSORBATES = {'H': Atoms(symbols='H', pbc=False), 'H2O': Atoms(symbols='OH2', pbc=False), 'OH': Atoms(symbols='OH', pbc=False)}

adsorbates for the hydrogen evolution reaction

ccu.adsorption.adsorbates.NRR_ADSORBATES = {'N': Atoms(symbols='N', pbc=False), 'N2': Atoms(symbols='N2', pbc=False), 'N2O': Atoms(symbols='N2O', pbc=False), 'NH': Atoms(symbols='NH', pbc=False), 'NH2': Atoms(symbols='HNH', pbc=False), 'NH2O': Atoms(symbols='NH2O', pbc=False), 'NH2OH': Atoms(symbols='NH2OH', pbc=False), 'NH3': Atoms(symbols='NH3', pbc=False), 'NHO': Atoms(symbols='HNO', pbc=False), 'NHOH': Atoms(symbols='HNOH', pbc=False), 'NO': Atoms(symbols='NO', pbc=False), 'NO2': Atoms(symbols='NO2', pbc=False), 'NO2H': Atoms(symbols='NO2H', pbc=False), 'NO3': Atoms(symbols='NO3', pbc=False), 'NO3H': Atoms(symbols='NO3H', pbc=False), 'NOH': Atoms(symbols='NOH', pbc=False)}

adsorbates for the urea oxidation and nitrate reduction reactions

ccu.adsorption.adsorbates.ORR_ADSORBATES = {'H2O': Atoms(symbols='OH2', pbc=False), 'O': Atoms(symbols='O', pbc=False), 'OH': Atoms(symbols='OH', pbc=False)}

adsorbates for the oxygen reduction and evolution reactions

ccu.adsorption.adsorbates._co2rr_adsorbates() dict[str, Atoms][source]
ccu.adsorption.adsorbates._nrr_adsorbates() dict[str, Atoms][source]
ccu.adsorption.adsorbates._orr_adsorbates() dict[str, Atoms][source]
ccu.adsorption.adsorbates.get_adsorbate(adsorbate: str) Atoms[source]

Retrieve the requested adsorbate from ase or the internal database.

Parameters:

adsorbate – The name of the adsorbate to retrieve.

Returns:

An Atoms instance representing the requested adsorbate.

Raises:

NotImplementedError – The requested adsorbate is neither a molecule supported by ASE nor a defined adsorbate in ccu.adsorption.adsorbates.

Note

The name of the adsorbate will be stored under the "structure" key of its info dictionary.