Fix AFM fragment crash in LiquidReactor#2813
Conversation
JacksonBurns
left a comment
There was a problem hiding this comment.
@Kyamaguchi16 this looks great, thanks for the quick patch! I've set this to automerge, so assuming that tests pass this should automatically go into main in the next few hours.
Thanks again!
f921a52
into
ReactionMechanismGenerator:main
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:49 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical thermo! ❌
Identical thermo comments: DetailsObservables Test Case: Aromatics Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! aromatics Passed Observable Testing ✅Regression test liquid_oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:55 liquid_oxidation Passed Core Comparison ✅Original model has 37 species. liquid_oxidation Failed Edge Comparison ❌Original model has 214 species. DetailsObservables Test Case: liquid_oxidation Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions! liquid_oxidation Passed Observable Testing ✅Regression test nitrogen:Reference: Execution time (DD:HH:MM:SS): 00:00:00:57 nitrogen Passed Core Comparison ✅Original model has 41 species. nitrogen Passed Edge Comparison ✅Original model has 133 species. DetailsObservables Test Case: NC Comparison✅ All Observables varied by less than 0.200 on average between old model and new model in all conditions! nitrogen Passed Observable Testing ✅Regression test oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:30 oxidation Passed Core Comparison ✅Original model has 59 species. oxidation Passed Edge Comparison ✅Original model has 230 species. DetailsObservables Test Case: Oxidation Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! oxidation Passed Observable Testing ✅Errors occurred during observable testing
WARNING:root:Initial mole fractions do not sum to one; normalizing.
|
Motivation or Problem
LiquidReactor + AFM runs crash with
KeyError: 'Node not found in database.'(see #2812).The cause: AFM produces
Fragmentobjects containing R/L dummy atoms; Solvation GAV cannot find these nodes.Description of Changes
Fragmentand callget_representative_molecule()to replace the dummy atom with H.(molecule, mapping), which raised a follow‑upAttributeError.Keep only the molecule:
Testing
Re‑ran the failing input from #2812 (note: terminationConversion key fixed from octane → CCCCR)
Before patch: KeyError
After patch: job completes
Standard LiquidReactor (no AFM) run fine.
Reviewer Tips
All edits are in rmgpy/kinetics/diffusionLimited.py.
New code path is gated by isinstance(spec, Fragment).
Representative molecule = dummy atom replaced by H, so existing GAV rules apply.
Closes #2812