Open gkogekar opened 1 month ago
Thanks for writing this up, @gkogekar. I realize that this idea is quite timely, in light of #202. The second potential solution I described there, of separating ReactorSurface
evaluation from the evaluation of a specific Reactor
is probably the cleanest way to implement a ReactorEdge
, given the number of phases that can be affected by an edge reaction -- up to 3 different surfaces and 3 different bulk phases, in addition to the edge itself.
Abstract
The existing reactor code only considers gas, surface and the bulk phases. The existing
edgephase
between two surfaces (defined in Cantera thermo) and the corresponding kinetics needs to be included in the reactor model.Motivation
The
evalsurfaces()
function in the reactor code solves for the surface concentrations based on the species' net production rates at each surface. If the edge is present in the model, additional rate terms are needed to account for the edge reactions.Possible Solutions
Similar to the
ReactorSurf
class, a newReactorEdge
class can be implemented. This class will contain all necessary information such as two adjacent surfaces and length of the edge. The residual equations fromevalSurfaces()
must be updated to include edge reactions (or another function such asevalEdges()
can also be implemented).References
This was motivated by discussion on the Slack channel regarding surface diffusion modeling.