Components overview

Note

In this documentation, we assume you are familiarized with both projects PLAMS and Zacros. If not, first, please take a look at our comprehensive documentation about PLAMS on this link: PLAMS Documentation, and the documentation about Zacros on its official web page: Zacros Website

This chapter contains a description of all components (classes) that can be used within pyZacros scripts. The image below shows all classes available in pyZacros.

../_images/architecture.png

The classes represented in gray boxes are extensions of PLAMS. Settings, ZacrosJob, and ZacrosResults are subclasses of the PLAMS classes Settings, SingleJob, and Results respectively. Thus, these classes inherit from PLAMS the robust way of managing the inputs file preparation, job execution, file management, and output file processing. In a nutshell, the class Settings is used for establishing the parameters of the calculation. The ZacrosJob class is the primary piece of computational work, and it takes care of running jobs. Finally, the ZacrosResults class takes care of the job results after the execution is finished; it gathers information about output files, helps to manage them, and extracts data of interest from them.

On the other side, the rest of the classes are specifically designed to define a system in Zacros. The Zacros package implements a Graph-Theoretical KMC on-lattice methodology coupled with cluster expansion Hamiltonians for the adlayer energetics and Brønsted-Evans-Polanyi relations for the activation energies of elementary events. Thus, every system in Zacros needs at least the definition of a set of clusters to evaluate the system’s energy (ClusterExpansion), a set of elementary events (Mechanism), a lattice representing the catalytic surface (Lattice), and possibly an initial state configuration (LatticeState).

In the following sections, you can find the API specifications of each particular component, an explanation of its role in the whole environment, and one example of usage. You can download the complete example script from this link intro.py. In particular, we will explain the different components using as a use case the following example, which is known as the Ziff-Gulari-Barshad (ZGB) Model:

../_images/reaction_example.png

The ZGB model includes:

  • Three gas species (CO, O2, and CO2), and three surface species (*, CO*, O*).

  • A lattice with a single site type.

  • Two clusters: The CO* and O* individual adsorbates.

  • Three irreversible events:

    1. Non-dissociative adsorption of CO

    2. Dissociative adsorption of O2

    3. Fast reaction between an O adatom and a CO adsorbate to produce CO2