catmap
catmap copied to clipboard
Improve handling of "trivial solutions"
It is common for the rate equations to have a "trivial solution" where a zero value for one coverage leads to a valid steady-state solution regardless of the values of other coverages (this is typically a symptom of an unphysical or incomplete reaction mechanism). The system will have other, non-trivial, solutions, but the current solver is usually unable to find them. There are a few remedies here, in order of least to most work:
-
add a "check_trivial_solutions" function which either runs automatically, or perhaps if some flag is set to true. The function could run once before the mapper starts and iterate through trial solutions of [0,1,1,...,1], [1,0,1,...,1],[1,1,0,...,1], etc. and see if any of them are valid. If so, CatMAP can throw an error and alert the user that a trivial solution has been detected when the coverage of adsorbate X is 0.
-
add a tutorial discussing when and why trivial solutions occur, and how to fix them.
-
implement a more robust solver that is capable of avoiding trivial solutions.