Skip to content

Use Mayer bond orders for the IRC endpoint check - #954

Open
kfir4444 wants to merge 1 commit into
mol_from_dftfrom
irc_bond_order_check
Open

Use Mayer bond orders for the IRC endpoint check#954
kfir4444 wants to merge 1 commit into
mol_from_dftfrom
irc_bond_order_check

Conversation

@kfir4444

Copy link
Copy Markdown
Collaborator

Stack 4/5 — based on #953. This is the payoff of the stack.

What

check_irc_species_and_rxn() takes optional log_path_1 / log_path_2 and prefers connectivity derived from the computed Mayer bond orders. The existing distance-based perception and the bond-list comparison remain as ordered fallbacks.

No new plumbing was needed in the scheduler: check_irc_species() already passes output[label]['paths']['geo'], which is the path to the log file of the IRC endpoint's re-optimization job.

Why it matters — measured, not asserted

For a real isoxazole → 2H-azirine ring opening, with both endpoints optimized in Orca and both logs added as fixtures:

path verdict
distance-based (today) False
Mayer bond orders True

The distance heuristic mis-perceives the strained three-membered ring of the product, so a correct TS would have been rejected. Both verdicts are pinned as assertions in the test, so the contrast is a regression guard rather than a claim in a description.

Behaviour when bond orders are unavailable

Unchanged. Older logs, an ESS that does not report a Mayer analysis, a None path or a nonexistent file all fall through to exactly today's code path. The existing test_check_irc_species_and_rxn passes untouched.

Why the endpoints' opt logs and not the IRC logs

Gaussian prints the Mayer block at the final population analysis, so an opt log has it for the converged geometry while an irc log may not have it per point. ARC already re-optimizes both IRC endpoints as IRC_<label>_1/2 species in spawn_post_irc_jobs(), so those logs are the natural source and are already tracked.

Conflict note

#937 and #938 also touch arc/checks/ts.py and arc/checks/ts_test.py around the IRC check. Whichever lands first, this will need a rebase — the changes are adjacent rather than contradictory.

Testing

pytest arc/checks/ — 50 passed, 2 failed. Both failures are the pre-existing test_check_rxn_e0 / test_compute_rxn_e0, which fail identically on main (Arkane cannot import pybel in rmg_env here).

🤖 Generated with Claude Code

@kfir4444
kfir4444 force-pushed the irc_bond_order_check branch from 4900bfc to 35a3621 Compare August 10, 2026 09:09
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (mol_from_dft@27c685d). Learn more about missing BASE report.

Additional details and impacted files
@@               Coverage Diff               @@
##             mol_from_dft     #954   +/-   ##
===============================================
  Coverage                ?   63.62%           
===============================================
  Files                   ?      114           
  Lines                   ?    38515           
  Branches                ?    10074           
===============================================
  Hits                    ?    24507           
  Misses                  ?    11079           
  Partials                ?     2929           
Flag Coverage Δ
functionaltests 63.62% <ø> (?)
unittests 63.62% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant