Skip to content

Releases: kpleo/pyraimd

Pyramid 0.7.3

Choose a tag to compare

@kpleo kpleo released this 16 Sep 21:13

Pyramid 0.7.3 adds opt-in persistent Quantum ESPRESSO density generations for plain serial reference MD on the qe and qe-ase backends. Runs without the density opt-in retain their existing behavior; recipe, adaptive and surrogate workflows are outside this feature's supported scope.

  • Enable [density] persist = true. For registry warm-start chaining, explicitly set [reference] startpot_file = true and use density_source_policy = "latest"; without file starts, publication is save-only. Use managed [scratch] with retention = "all" for delayed producer cleanup. Fixed external-source mode continues to select its configured source.
  • Published seed packs contain charge density, schema XML and PAW paw.txt when produced. Resume binds the authoritative restored boundary's exact generation; a missing or corrupt referenced generation refuses resume rather than substituting the latest seed.
  • Producer scratch is released only after a later successful calculation independently reads that exact seed. Its raw QE read marker, launch input, archived output digest and pinned seed identity must agree with the producer receipt and live registry. Publication or solver success alone is insufficient; unproven and terminal producers stay protected.
  • Automatic and on-demand reclaim preserve latest, retained-checkpoint, recoverable-boundary, in-flight and unconsumed-producer references. Interrupted deletion requires its durable tombstone, a readable matching ownership manifest and fresh unreferenced status. Missing, unreadable or foreign ownership stays held; generation numbers are never reused.
  • Verified scope is QE 7.5 with HDF5, PAW and non-spin-polarized SCF restarts. With successful independent consumption, fixed checkpoint retention and timely reclaim, retained seed generations plateau. Logs, attempt archives and registry metadata continue to grow; this is not a bound on total disk usage.
  • examples/density_persist_qe/ provides a minimal configuration and a fake-QE walkthrough of publication, fresh-process resume and reclaim. The fake demo demonstrates program flow and produces no real DFT results.

Pyramid 0.7.2

Choose a tag to compare

@kpleo kpleo released this 14 Sep 13:39

Pyramid 0.7.2 improves Quantum ESPRESSO density reuse and applies managed scratch settings consistently across calculation workflows.

  • Both QE adapters support disk_io, including nowf for saving converged charge density without wavefunction output.
  • New density chains prefer the latest successful compatible density. Existing saved runs preserve their previous initialization policy.
  • Density recognition supports both .dat and .hdf5. Input density copies are kept distinct from newly produced results when output is disabled.
  • Model and pseudopotential content identities are computed from file bytes, avoiding stale hashes on filesystems with coarse timestamps.
  • [scratch] settings now reach new single-point, plain MD and adaptive MD runs, as well as resumed runs. With results retention, verified outputs are archived before temporary files are reclaimed.
  • Legacy recipe-stage adoption and interrupt/resume regression coverage have been improved.

Managed scratch remains opt-in. See configuration for density reuse and retention settings.

The attached wheel and source distribution can be installed directly. The existing reproducibility supplement is unchanged.

Pyramid 0.7.1 — managed scratch for QE calculations

Choose a tag to compare

@kpleo kpleo released this 14 Sep 02:24

Pyramid 0.7.1 — managed scratch for QE calculations

Quantum ESPRESSO calculations can now use one shared temporary root. Pyramid allocates a separate working directory for each attempt, copies and verifies the required result files into the persistent run directory, then reclaims that attempt's scratch. Both the QE and ASE-QE adapters support the workflow.

Enable it for new runs in run.toml:

[scratch]
root = "./tmp"
retention = "results"

The relative root resolves from the configuration file's directory. The Python interface exposes the same options through QeConfig(scratch_root=..., retention="results").

The lifecycle keeps failed or unverified attempts, records cleanup outcomes separately from the calculation result, and supports inspection and retry:

pyramid scratch inspect --root ./tmp
pyramid scratch clean --root ./tmp --dry-run
pyramid scratch clean --root ./tmp

CLI paths resolve from the current working directory; point them at the configured root. A shared root is retained for concurrent runs, and only an eligible attempt's working directory is reclaimed. Persistent inputs, outputs and provenance stay in the run directory.

Install the release wheel into the environment used for the next run:

uv pip install --upgrade https://github.com/kpleo/pyraimd/releases/download/v0.7.1/pyraimd2-0.7.1-py3-none-any.whl
pyramid --version

Upgrading does not change a running process or migrate existing scratch. Configurations without [scratch] keep their previous behavior. Workflows that reuse charge density should use retention = "all"; results rejects incompatible density-reuse settings. Managed cleanup requires the supported POSIX locking and directory operations.

The repository includes a complete fake-QE walkthrough in examples/standalone_qe_label/. It exercises configuration, result archival, cleanup and inspection without a DFT calculation. The release assets contain the wheel and source distribution. The archived paper reproducibility materials remain unchanged.

Pyramid 0.7.0

Choose a tag to compare

@kpleo kpleo released this 13 Sep 16:23

Pyramid 0.7.0 adds content-verified file resources for ASE backends and lets you resume a calculation after moving its run directory and model files.

What's new

  • Declare file-backed calculator options with file_parameters. File contents become part of the backend identity, and runs retain a resource baseline for later verification.
  • Reconnect moved files through resume_workflow(..., resource_paths=...) or the repeatable CLI option --resource BACKEND.ROLE=PATH. Relative CLI paths resolve from the current working directory. Missing resources and changed contents are rejected before calculation.
  • Follow the updated installation guide and the complete file-model relocation example. Example plugins should be taken from the same release tag.

Install and try

Use Python 3.12 or later. Download the wheel attached to this release and install it in your environment:

pip install pyraimd2-0.7.0-py3-none-any.whl
pyramid init --template harmonic --output my_run
pyramid validate my_run/run.toml
pyramid run my_run/run.toml
pyramid inspect my_run/runs/harmonic-demo
pyramid resume my_run/runs/harmonic-demo --steps 5
pyramid export my_run/runs/harmonic-demo --force-source driving

The core uses NumPy and ASE; optional ML and quantum-chemistry backends are installed separately.

Compatibility

This release preserves the existing MD defaults. Upgrade checks cover plain NVT and adaptive NVT with calibration pacing enabled, with matching completed-step states after resuming runs created by 0.6.0.

File relocation applies to runs created with declared resources, using unchanged model contents in the same software environment. It does not add resource declarations to older runs or combine relocation with online model updates.

Distribution checksums

Built from commit de97c150f9e127f79fc654bd3f55cd4d789e31ad.

907d312235c3d94f5e8825850fd3946d18efabf02ae794e5bbbfa8545958dfe2  pyraimd2-0.7.0-py3-none-any.whl
d13bfd470dda30f52466cdb2611f6c3b65dc4ff7ff91ea66a4864fd4c8623ece  pyraimd2-0.7.0.tar.gz

See the changelog for details.

Pyramid 0.6.0

Choose a tag to compare

@kpleo kpleo released this 12 Sep 13:34

Pyramid 0.6.0

Opt-in calibration pacing for monitored adaptive MD: skip calibration probes
that keep failing to pay off, run on reference forces meanwhile, and retry on a
bounded schedule — with full stop/resume support and honest cost reporting.

What's new

  • Calibration pacing (opt-in, default off): [policy.calibration_pacing]
    with failure_streak_limit / wait_initial / wait_max. After K
    consecutive calibrations that produced no accepted step, probe investment is
    deferred for a bounded number of opportunities; the run continues on
    reference forces, retries calibration on a bounded backoff schedule, and
    resets on the next accepted step. No gating, error budget, check protocol,
    or sampling behavior is changed.
  • Recoverable policy state: pacing decisions are frozen before probes
    start, persisted with the evaluation identity, and restored through
    checkpoints, committed-tail replay, and pending retries — failed retries
    never advance the wait counters twice.
  • Explainability: every calibration opportunity is recorded as
    calibrate / defer / unavailable with its reason and remaining wait; inspect
    reports completed / deferred / unavailable / pending from the authoritative
    commits, alongside the established cost ledger (confirmed executions,
    confirmed successes, unresolved attempts, wall-time completeness).
  • Public example: examples/calibration_pacing/ — enable pacing, watch
    defer/forced_retry, stop and resume, and compare on/off costs and per-step
    force errors against an analytic reference.

Measured scope

Verified on analytic models and one Si8 QE+MACE 12-step NVT comparison
(adaptive off / on / reference-only from the same initial state and bath
streams): pacing deferred one calibration (−4 reference launches, −7.5%),
trajectories identical between on and off, accepted-step paired force errors
≤0.029 eV/Å (budget 0.10). Under the p=1 verification protocol this reduces
avoidable probe investment; it is not a net speedup over full-reference AIMD.

Scope: fixed base models, fixed cell, single-direction adaptive NVE/NVT; not
yet combinable with online model updates (clear configuration error).

Artifacts

  • pyraimd2-0.6.0-py3-none-any.whl — sha256 a3ac155c351b748d415189aa66727ce5827b118115da4822369b79ade4eef9d8
  • pyraimd2-0.6.0.tar.gz — sha256 d937864f1cafd164917460d54e63f7952b906b8ce7f9f9dcd4a8c4fe55335908

Pyramid 0.5.0

Choose a tag to compare

@kpleo kpleo released this 12 Sep 02:20

Pyramid 0.5.0

Monitored adaptive molecular dynamics with verified stop/resume, serial material
recipes, and honest cost accounting.

What's new

  • Monitored adaptive NVT: the Langevin integrator evaluates the real,
    bath-displaced configuration; accepted/rejected/checked routes, per-purpose
    reference accounting (anchor / probe / refusal / verification), and exact
    resume of positions, full momenta and the bath RNG stream.
  • Online model updates (Python API): a guarded updater consumes reference
    labels, trains candidates, and publishes or rolls back models under a
    transaction protocol — committed physics is never rewritten, and
    saved-but-uncommitted candidates resume without retraining.
  • Serial material recipes: relax → NVT → NVE chains with per-stage
    identities, authoritative completed-state handoff (positions, full momenta,
    cell/PBC, masses, constraints, charges), stop/resume at completed-step
    boundaries, and duplicate-run protection.
  • Honest cost visibility: inspect and recipe manifests separate confirmed
    executions, confirmed successes, and unresolved attempts (e.g. a process
    confirmed started whose terminal state was lost to a hard exit), and mark
    wall-time completeness explicitly.
  • Examples: examples/guarded_nvt.py (online updates with a trainable
    analytic model), examples/periodic_lj (serial recipe with the LJ plugin),
    examples/si_bulk_qe_mace (QE reference + MACE surrogate on Si8).

Install

pip install pyraimd2-0.5.0-py3-none-any.whl

Requires Python ≥3.12, NumPy ≥1.26,<2.5, ASE 3.29. See README.md and
docs/ for the validated backend capability matrix (fixed-cell NVE/NVT,
FixAtoms; per-backend training support as documented).

Scope of the validation

The 0.5.0 line was verified on analytic models and one Si8 QE+MACE workflow
(short NVT/NVE segments with cross-process resume). Short demonstrations do
not claim thermal equilibration, universal speedup, or net acceleration;
acceptance rates and reference costs are reported per run so users can judge
their own workloads.

Artifacts

  • pyraimd2-0.5.0-py3-none-any.whl — sha256 06019b4254a7f5eafc732c3f72601050ecfd97b82acb181d595598787c2afd0d
  • pyraimd2-0.5.0.tar.gz — sha256 4f431193345542215d269df9e9c4912143fe4dd9e9094c5a282d2b2b923764a2