ImproveReactorSurface handling and reimplement advanceCoverages#2075
ImproveReactorSurface handling and reimplement advanceCoverages#2075ischoegl merged 11 commits intoCantera:mainfrom
Conversation
9ef8155 to
0a4a31d
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2075 +/- ##
==========================================
+ Coverage 77.21% 77.34% +0.13%
==========================================
Files 456 451 -5
Lines 52952 52494 -458
Branches 8966 8847 -119
==========================================
- Hits 40885 40602 -283
+ Misses 9041 8917 -124
+ Partials 3026 2975 -51 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
7924fa2 to
3c7ccb3
Compare
5714f5c to
3870f2f
Compare
Fix a regression introduced in c0e0831. This caused some tests to fail when compiling with assertions enabled.
c1b45e0 to
0993bda
Compare
- Allow construction from bulk reactors or surfaces - Automatically traverse the network to find connected reactors/surfaces
Fixes regression in the results where a fix applied in Cantera#1944 was accidentally undone.
0993bda to
8089b25
Compare
ischoegl
left a comment
There was a problem hiding this comment.
Thanks, @speth! This all looks great.
One caveat is that this (significant) improvement does not resolve the original intent of Cantera/enhancements#61
From my perspective, I strongly dislike
d = ct.Interface("diamond.yaml", "diamond_100")
[...]
d.advance_coverages_to_steady_state()
as in the diamond_cvd.py example. Anything that integrates belongs to the zero-D reactor approach. With a major version bump, there's an opening to clarify this once and for all.
Given that my bandwidth limitations will not resolve anytime soon, I'm 👍 with any way forward.
This builds on top of #2069, which should be reviewed/merged first. I'll rebase this once that is done, but thought it would be worth seeing some of the additional things that are enabled by that PR.Changes proposed in this pull request
ReactorNetinitialization so thatReactorSurfaceobjects can be attached toReservoirs. This allows solving the case where the the surface evolves while holding the bulk phase composition fixed.ReactorSurface,ConstPressureMoleReactor, andIdealGasConstPressureMoleReactorcan be used withReactorNet::solveSteady.ReactorNetcomposed of aReactorSurfaceandReservoirobjects to provide the implementation ofInterfaceKinetics::advanceCoveragesandInterfaceKinetics::solvePseudoSteadyStateProblem; Remove the now obsoleteImplicitSurfChemandSolveSPclasses which were previously used for this purpose.ReactorNettolerances so they can be modified after the integrator is initialized.If applicable, fill in the issue number this pull request is fixing
If applicable, provide an example illustrating new features this pull request is introducing
AI Statement (required)
Standard or boilerplate code snippets were generated with AI and manually reviewed;
all design, logic, and implementation decisions were made by the contributor.
Examples: IDE code-completions or brief LLM queries for common patterns.
Checklist
scons build&scons test) and unit tests address code coverage