Skip to content

kn4207/kMC-Plastic-Pyrolysis

Repository files navigation

Powered by RDKit

Kinetic Monte Carlo simulation of polyethylene pyrolysis that retains atomic-level detail of and tracks thousands of product and radical species produced over the course of tens of thousands of reaction events. Diverging away from the lattice-based models frequently used in kinetic Monte Carlo simulations, this model leverages the open-source cheminformatics Python library RDKit to provide insight into the intricate kinetics of pyrolysis.

For the purposes of modelling the pyrolysis of polyethylene, the elementary reactions under the free radical mechanism were considered. The 7 classes of elementary reactions falling under the characteristic initiation, propagation and termination steps of the free radical mechanism taken are as follows:

image

Under the 7 classes of reactions mentioned above, a total of 63 elementary steps were considered for the scope of this project.

These steps were chosen under the assumption that the feed is pure HDPE and as such is considered linear without any branching structures. By assuming the feedstock as a linear hydrocarbon chain, elementary steps involving tertiary and quaternary carbons can be ignored. This was done in order to reduce the complexity of the network of reactions and to keep the total number of molecules present in the system to a more manageable level. As the time step of each reaction for a KMC simulation is calculated by considering the inverse of the sum of all the reaction rates, the time step becomes smaller when the number of possible reactions that the system can undergo increases. As such, elementary reactions that would lead to the formation of tertiary and quaternary carbons even when starting with a linear feedstock are also avoided for the purposes of this research project. By extension, this also ignores the formation of aromatics in the system. Since the experimental data used for model validation in this project distinguishes only between olefins and paraffins, the lack of alkynes and aromatics in the simulated system should not significantly hinder similarity between experimental and simulation results.

The second assumption made is that species containing a carbon radical could not undergo further initiation reactions to radicalize more carbon atoms in the chain. While it was again done in favour of manging the complexity of the code, it also has a strong theoretical backing when considering that initiation reactions have a very high activation energy while radical recombination reactions are effectively barrierless making the chances of the same molecule undergoing C-C or C-H bond lysis twice negligible. Another assumption made is that the system is considered isothermal.

By nature, KMC simulations predict the behaviour of a batch process as the total number of molecules present in the system are conserved. However, in this case a more semi-batch approach is attempted in order to account for the nitrogen sweeping done to remove gaseous products when collecting the experimental data. This was emulated by periodically removing a certain portion of the species present in the system under a specified molecular weight threshold.

The Python library RDKit used to handle the cheminformatics of the different species allows for effective management of species as it can be used to represent a molecule specified in its SMILES (Simplified Molecular-Input-Line-Entry System) format and calculate metadata such as atom positioning, bond information, molecular weight, Van der Waals volume etc. Reactions can also be defined in SMARTS format such that it can recognise moieties in a reactant molecule that are relevant for the reaction and return all sets of possible products after executing the reaction. For example, the initiation reaction that involves the breaking of a C-C bond between two secondary carbons can occur at multiple sites along the same molecule. The SMARTS reaction defined through RDKit can identify all possible combinations of products depending on the molecule and available sites and select a set at random.

This method of handling cheminformatics allows for a ‘coarse-grained’ approach to KMC simulation as opposed to the lattice-based approach which requires enumerating atomic coordinates along with listing the neighbouring atoms and bond data in order to identify reaction sites. Given that there are thousands of unique species produced over the course of the pyrolysis simulation, a coarse-grained approach would allow for faster and more efficient handling of species data. At the same time, the functionality of RDKit allows for the atomic metadata of every species to be retrieved if necessary thereby ensuring there is no loss of resolution.

The kMC simulation is capable of taking a user-defined exit condition to reach the endpoint of the system. The exit conditions consist of parameters that are updated and examined after every reaction event and signal the final system state when crossing a pre-determined threshold. The parameters that are tracked in the simulation included number of reaction events, total elapsed simulation time, total elapsed computing time, weighted average chain length of hydrocarbons in the system and feedstock conversion.

About

Kinetic Monte Carlo Simulation of Plastic Pyrolysis in Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published