Releases: kpleo/pyraimd
Release list
Pyramid 0.7.3
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 = trueand usedensity_source_policy = "latest"; without file starts, publication is save-only. Use managed[scratch]withretention = "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.txtwhen 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
Pyramid 0.7.2 improves Quantum ESPRESSO density reuse and applies managed scratch settings consistently across calculation workflows.
- Both QE adapters support
disk_io, includingnowffor 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
.datand.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
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 ./tmpCLI 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 --versionUpgrading 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
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 drivingThe 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
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]
withfailure_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— sha256a3ac155c351b748d415189aa66727ce5827b118115da4822369b79ade4eef9d8pyraimd2-0.6.0.tar.gz— sha256d937864f1cafd164917460d54e63f7952b906b8ce7f9f9dcd4a8c4fe55335908
Pyramid 0.5.0
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 → NVEchains 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:
inspectand 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.whlRequires 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— sha25606019b4254a7f5eafc732c3f72601050ecfd97b82acb181d595598787c2afd0dpyraimd2-0.5.0.tar.gz— sha2564f431193345542215d269df9e9c4912143fe4dd9e9094c5a282d2b2b923764a2