• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pyiron / pyiron_workflow_atomistics / 39914933015
83%

Build:
DEFAULT BRANCH: main
Ran 23 Oct 2026 07:10AM UTC
Jobs 1
Files 71
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Oct 2026 06:59AM UTC coverage: 83.479% (+0.01%) from 83.465%
39914933015

push

github

web-flow
fix(physics/phonons): fit MD-renormalised FC2 at the displacement actually applied (#128)

* fix(physics/phonons): fit MD-renormalised FC2 at the displacement actually applied

`_compute_fc2_from_scratch` generated its displaced supercells with
phono3py (distance 0.03 Å, is_diagonal=False) but re-derived the dataset
with `phonopy.generate_displacements()` at phonopy's defaults (0.01 Å,
is_diagonal=True). On high-symmetry cells the supercell counts coincide,
so the count guard passed and the fitted FC2 came out scaled by exactly
0.03/0.01 = 3 (frequencies by √3) with no error; on lower-symmetry cells
the count guard raised instead.

Pass `displacement_distance` / `is_plusminus` to both sides and set
`is_diagonal=False` and `primitive_matrix="auto"` on the phonopy view,
matching `free_energy.harmonic._produce_fc2_view`. Thread the two kwargs
through `_select_or_compute_fc2` and expose them on
`calculate_phonon_md_renormalisation`. Replace the count-only guard with
an element-wise comparison of the generated and expected displaced
positions, which catches a distance or direction drift even when counts
agree.

Regression tests compare the fitted FC2 against an independently
matched phonopy fit on fcc (silent 3× case) and hcp orthorhombic (loud
count case), and check that caller-supplied kwargs reach the fit both
directly and through the public macro.

Closes #100

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* feat(free_energy): expose FC2 displacement kwargs on the dynaphopy macros

`anharmonic_free_energy_dynaphopy` and `anharmonic_free_energy_dynaphopy_tdi`
gain `displacement_distance` (default 0.03 Å) and `is_plusminus` (default
"auto") and forward them, via `_sweep_dynaphopy_over_T` for the T grid, to
`calculate_phonon_md_renormalisation`, which now owns them for the FC2 fit.
Defaults are unchanged, so existing callers see no behavioural difference
beyond the #100 fix itself.

Tests: the single-T macro's `phonopy_handle.force_constants` ... (continued)

3714 of 4449 relevant lines covered (83.48%)

0.83 hits per line

Coverage Regressions

Lines Coverage ∆ File
14
92.24
-0.32% physics/phonons/md_renormalised.py
Jobs
ID Job ID Ran Files Coverage
1 39914933015.1 23 Oct 2026 07:10AM UTC 71
83.48
GitHub Action Run
Source Files on build 39914933015
  • Tree
  • List 71
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39914933015
  • 2f0f129d on github
  • Prev Build on main (#39906077506)
  • Next Build on main (#39920005406)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc