-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Cantera/cantera
#2075Labels
feature-requestNew feature requestNew feature requestquestionFurther information is requestedFurther information is requested
Description
Cantera version
2.5.0a3
Expected Behavior
A single approach for solving surface problems in the context of zero-dimensional simulations.
Actual Behavior
There appear to be two distinct approaches to simulate surface kinetics problems.
InterfaceKineticsReactor+ReactorSurfaceobject in a reactor network- Time integration is handled by two completely separate functions (
advance_coveragesvsadvance).
Proposal
It is conceivable to merge the approaches by introducing something along the lines of
Example 1: diamond_cvd.py
g, dbulk = ct.import_phases('diamond.cti', ['gas', 'diamond'])
d = ct.Interface('diamond.cti', 'diamond_100')
gas = ct.Reservoir(g)
solid = ct.Reactor(dbulk)
surf = ct.Surface(d, [gas, solid])
sim = ct.ReactorNet([solid, surf])
sim.advance(some_end_time)Example 2: surf_pfr.py
gas = ct.Solution('methane_pox_on_pt.cti', gas)
surf = ct.Interface('methane_pox_on_pt.cti', 'Pt_surf')
reactor = ct.IdealGasReactor(gas)
surf = ct.Surface(d, [reactor])
# skipping inlet/outlet plumbing for brevity
sim = ct.ReactorNet([reactor, surf])
sim.advance_to_steady_state()There are obviously other scenarios, e.g. edges / triple phase boundaries.
The steps to allow for this would require some changes of ReactorBase-derived classes, but would eliminate redundancies in the long run.
An advantage of this approach would be that only one time integration approach needs to be maintained. Further, any future serialization would use the same framework.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
feature-requestNew feature requestNew feature requestquestionFurther information is requestedFurther information is requested