• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
You are now the owner of this repo.

pyiron / pyiron_workflow_atomistics
90%

Build:
DEFAULT BRANCH: main
Repo Added 07 Jun 2025 11:43PM UTC
Token i8tT0YxeCOHWlVWceexX5XeOCWuc2sqg7 regen
Build 421 Last
Files 56
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • ase_engine
  • ci_fixes
  • ci_stuff
  • cleanup-and-reorganise
  • cleanup-notebooks-runtime-artifacts
  • dependabot/pip/numpy-2.0.2
  • dependabot/pip/tqdm-4.68.1
  • dependabot/pip/tqdm-4.68.3
  • design-engine-conformance-suite
  • develop
  • docs/dynaphopy-grace-0p7fs
  • docs/dynaphopy-grace-tighter-fits
  • docs/dynaphopy-temperature-788k
  • docs/free-energy-notebook-eos-opt
  • docs/free-energy-notebook-with-calphy
  • docs/nb-bulk-solution-energy-latopt
  • docs/nb-dynaphopy-emt-example-latopt
  • docs/nb-dynaphopy-grace-example-long-latopt
  • docs/nb-foundation-model-example-latopt
  • docs/nb-gb-cleavage-latopt
  • docs/nb-grain-boundary-segregation-latopt
  • docs/nb-pure-grain-boundary-study-latopt
  • docs/nb-substitutional-formation-energy-latopt
  • docs/nb-surface-energy-latopt
  • docs/nb-vacancy-formation-energy-latopt
  • docs/notebook-outputs-free-energy-solid
  • docs/notebooks-grand-canonical-gb-example
  • docs/notebooks-phonon-kappa-fm-overlay
  • docs/phonons-example-notebook
  • docs/remove-redundant-dynaphopy-emt-notebook
  • docs/remove-redundant-dynaphopy-grace-short
  • docs/strip-calphy-text-output
  • docs/strip-dynaphopy-text-output
  • feat/calphy-free-energy
  • feat/cell-relaxation-enum
  • feat/elastic-constants
  • feat/free-energy-consolidation
  • feat/grand-canonical-gb
  • feat/phonons
  • fix-release-workflow-pip-deps
  • fix-surface-energy-bulk-reference
  • fix/calphy-adapter-1.5.6-api
  • fix/calphy-pack-uses-job-simfolder
  • fix/gco-gb-energy-formula
  • fix/macro-channel-cell-relaxation
  • fix/phonon-thermal-skip-on-remote
  • fix/phonopy-v4-compat
  • fix/pip-check-pins
  • fix/test-and-pkg-cleanups
  • foundation-model-example
  • interstitials
  • main
  • niklassiemer-uv-check
  • notebook/dynaphopy-grace-example
  • notebooks
  • rename-run-to-calculate
  • test-coverage-and-engine-bugfixes
  • tests
  • tests/improve-coverage

13 Jun 2026 01:05PM UTC coverage: 90.069% (+0.04%) from 90.032%
28137756446

push

github

web-flow
fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78)

The elastic-constants macro silently skipped cell relaxation even when it
was requested, so elastic constants came out input-dependent (relaxing the
same material from different starting cells gave different K/G, with the
volume frozen at the arbitrary input).

Root cause 1 — input-channel leak into a plain dataclass:
`calculate_elastic_constants` is a `@pwf.as_macro_node`, so its `fmax` and
`max_iterations` arguments are pyiron_workflow input *channels*, not scalars.
Building `CalcInputMinimize(force_convergence_tolerance=fmax, ...)` directly
in the macro body stored a `UserInput` channel object in
`force_convergence_tolerance`. That channel flowed through
`ASEEngine.get_calculate_fn` into ASE's `BFGS.run(fmax=<channel>)`, where the
convergence test `max_force < fmax` against a non-numeric object is satisfied
immediately, so every relaxation "converged" at step 0 and the cell never
moved.

Fix: add a `make_minimize_input` `@pwf.as_function_node` that constructs the
`CalcInputMinimize` at run time (when the inputs are resolved to concrete
floats/ints) and wire both the reference full-relax and the fixed-cell
deformation inputs through it. This is the correct pyiron_workflow pattern:
never pass a macro input channel into a plain Python dataclass at build time.

Root cause 2 — engine silently overrode the iteration cap:
`ASEEngine.max_steps` defaulted to 10_000 and `get_calculate_fn` did
`self.max_steps if self.max_steps else mi.max_iterations`, so an explicit
`CalcInputMinimize.max_iterations` (e.g. 300) was always ignored.

Fix: default `ASEEngine.max_steps` to `None` (meaning "defer to the calc
input") and only let an explicitly-set engine-level `max_steps` win. An
explicit `max_iterations` is now honoured.

Verification (EMT Cu via calculate_elastic_constants): before the fix,
a=3.615 -> K=123, a=3.9 -> K=32.5, both frozen at... (continued)

3392 of 3766 relevant lines covered (90.07%)

0.9 hits per line

Relevant lines Covered
Build:
Build:
3766 RELEVANT LINES 3392 COVERED LINES
0.9 HITS PER LINE
Source Files on main
  • Tree
  • List 56
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28137756446 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 25 Jun 2026 12:17AM UTC web-flow github
90.07
28065150657 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 24 Jun 2026 12:01AM UTC web-flow github
90.07
27992468257 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 23 Jun 2026 12:11AM UTC web-flow github
90.07
27953549222 dependabot/pip/tqdm-4.68.3 Merge 11d25f40e into 31c6e46f0 Pull #80 22 Jun 2026 12:54PM UTC web-flow github
90.07
27921876755 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 22 Jun 2026 12:17AM UTC web-flow github
90.07
27887883299 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 21 Jun 2026 12:13AM UTC web-flow github
90.07
27854044333 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 20 Jun 2026 12:16AM UTC web-flow github
90.07
27797600250 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 19 Jun 2026 12:30AM UTC web-flow github
90.07
27728051568 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 18 Jun 2026 12:24AM UTC web-flow github
90.07
27656790778 main fix(elastic/engine): stop macro input-channel leak that froze cell relaxation; honour CalcInputMinimize.max_iterations (#78) The elastic-constants macro silently skipped cell relaxation even when it was requested, so elastic constants came out in... push 17 Jun 2026 12:24AM UTC web-flow github
90.07
See All Builds (421)

Badge your Repo: pyiron_workflow_atomistics

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc