Add a G4 harmonic frequency scale factor entry (0.994) - #1004
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1004 +/- ##
==========================================
+ Coverage 64.46% 64.49% +0.03%
==========================================
Files 119 119
Lines 39636 39636
Branches 10276 10276
==========================================
+ Hits 25551 25565 +14
+ Misses 11097 11091 -6
+ Partials 2988 2980 -8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
alongd
force-pushed
the
i018-g4-scale-factor
branch
from
August 21, 2026 13:51
4e48d53 to
1a654fd
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a missing frequency scale factor mapping for G4 (Gaussian) so ARC can resolve the factor via assign_frequency_scale_factor() instead of falling back to on-the-fly fitting (and downstream tools defaulting to unity).
Changes:
- Add a
freq_scale_factors.ymlentry for'g4, software: gaussian'withfactor: 0.994(source 4) and an explanatory note.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
alongd
force-pushed
the
i018-g4-scale-factor
branch
2 times, most recently
from
August 21, 2026 19:26
21c7a27 to
555b8fb
Compare
Add 'g4, software: gaussian' (factor 0.994) to data/freq_scale_factors.yml, fitted with Truhlar's method over the 15-species standard set. Update level_test.py::test_assign_frequency_scale_factor_from_str to use the still-unlisted composite g4mp2 for the returns-None case, since g4 now resolves.
alongd
force-pushed
the
i018-g4-scale-factor
branch
from
August 21, 2026 20:07
555b8fb to
ad99402
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepared by the campaign manager (ticket I-001, dispatch D-002).
What this adds
One entry in
data/freq_scale_factors.yml:Nothing else in the file is touched, and no behaviour changes — this is data.
Why
G4 had no entry, so
assign_frequency_scale_factor()returnedNoneforstr(Level(repr='g4')) == 'g4, software: gaussian'. ARC then falls through to fitting the factoron the fly, spawning quantum-chemistry jobs on every project that uses G4; Arkane, downstream,
assumes unity.
Where the number comes from
arc.utils.scale.determine_scaling_factors(['g4'], ess_settings={'gaussian': ['zeus']})was runover its fixed 15-species standard set (C2H2, CH2O, CH4, CO, CO2, Cl2, F2, H2, H2O, HCN, HF, N2,
N2O, NH3, OH). All 15 G4 composite jobs converged with Gaussian 16.
λ_ZPE = 0.98046, and
0.980 × 1.014 → 0.994.Two notes on the fit:
Zero-point correction=line was used, not the composite summary'sE(ZPE).The latter already carries G4's built-in ZPE scale factor (0.9854, visible as the ratio between
the two lines in every one of the 15 logs), and fitting against it would divide out the very
quantity being measured.
scale.py:98setsjob_types['freq'] = False, so no frequency job runs, yetscale.py:107-112readsoutput/Species/<label>/geometry/freq.out, which only a frequency job writes. It thereforeraises
FileNotFoundErrorafter all 15 jobs have run. That defect is not addressed here — itis a separate ticket. The ZPEs were recovered offline from the raw
calcs/Species/<label>/composite_a<N>/input.logfiles the scheduler had already downloaded, andthe fit was reproduced from them.
Verifier that was run
assign_frequency_scale_factor(Level(repr='g4'))→0.994, where it previously returnedNone.Same for the string form
'g4, software: gaussian'.arc.parser.parser.parse_zpe_correctionandarc.utils.scale.calculate_truhlar_scaling_factorsto within 1e-9 relative — they agreed on all 15 species and on λ_ZPE.
pytest arc/level_test.py→ 15 passed.Sanity
0.994 sits between the published neighbouring methods (0.961, 0.967) and the CBS-QB3 arm's
0.99 × 1.014 = 1.004, nearer the latter. That is the expected neighbourhood for a compositemethod whose own built-in ZPE factor is 0.9854.
Companion change
A matching one-entry addition to RMG-database's
freq_dict(
input/quantum_corrections/data.py, keyed"LevelOfTheory(method='g4')", same value 0.994) iscommitted locally and will be opened separately by the project owner. Without it Arkane still
computes
zpe_scale_factor = 1.0 / 1.014for G4.