Microkinetic model
go back to Main Page, Group Pages, Núria López and Group, Scripts_for_VASP
This page deals with microkinetic models in heterogeneous systems.
Understand what you want to do...
... before you do it
- Read similar models existing in the literature. See what they did. Why they did.
- Understand that microkinetic models have very large error bars [Nat. Chem. 2016, 8, 331-337]. Your model will fail by several orders of magnitude.
- If you still think you can get useful information from it (sometimes you can), you will need to run many many tests, but beware of cooking your data. Microkinetics fail by orders of magnitude. If you cheat (i.e., cook too much without sharing the recipe), the Reviewers and readers will know it.
Define the reactor model
- Read Chapters 1-5 of Elements of Chemical Reaction Engineering by H. Scott Fogler (all five). Check if any other Chapter has anything that might also be of your interest. The books of Levenspiel are also recommended as side-readings.
- Does the reactor work in a stationary state? This often does not make sense for complex reaction networks, see [Nat. Commun. 2018, 9, 526]. Mind that (pseudo) stationary-state processes can be modelled by transient-state reactors, see the same reference.
- Does the concentrations, pressures, or molar flows change with time?
Define your precision
- Chances are high that you are working with systems of differential equations with high stiffness. Mind that stationary-state models have solving routines that resemble those of stiff differential equations.
- Single, double, or quad precision (8, 16, 32 floating-point digits) most times are not enough. You need a package capable of withstanding arbitrary precision. Excel won't do. Fortran, with great expenses. To the best of my knowledge, only Python and Maple have extensive support for arbitrary precision.
- Rodrigo's rule of thumb of required precision: use 16+log(Highest possible kinetic constant/Lowest possible kinetic constant). This is, get how many orders of magnitude differentiate the fastest and lowest kinetic constants, and add 16 more digits. Most times 36-60 digits will suffice.
- Nørskov's rule of thum: use 100 digits. It is an overshoot, and it will be exceedingly slow or even crash for large networks.
Microkinetic model in Maple
- In Maple you would better use the Rosenbrock method.
- Avoid using systems of algebraic-differential equations. They are two orders of magnitude slower than systems of pure differential equations.
- Microkinetics in Maple only parallelizes up to two threads/processors.
- Here there is an example that I used to get the data here: [Nat. Catal. 2019, 2, 971-976].
Microkinetic model in Python
TO BE WRITTEN BY ALBERT SABADELL AND SANTIAGO MORANDI
go back to Main Page, Group Pages, Núria López and Group, Scripts_for_VASP