Run machine-learning potentials using VASP style inputs.
Project description
VPMDK
VPMDK (Vasp-Protocol Machine-learning Dynamics Kit) is an ASE-oriented layer
for machine-learning interatomic potentials. Different MLP packages expose
different calculator constructors, model-loading conventions, and optional
features; VPMDK provides one place to absorb those differences and present a
more uniform workflow around ase.Atoms.
On top of that core API, VPMDK also provides a VASP-compatible CLI for directory-based workflows. In practice it provides:
- a stable Python API for calculator construction, single-point runs, relaxations, MD, and charge-density prediction
- a compatibility CLI that reads
POSCAR/INCAR/BCARand writes VASP-like outputs such asOUTCAR,OSZICAR,CONTCAR, andvasprun.xml
Supported integrations include CHGNet, MACE, MatGL/M3GNet, SevenNet, FlashTP, Eqnorm, MatRIS, AlphaNet, HIENet, Nequix, NequIP, Allegro, ORB, UPET, TACE, EquFlash, FAIRChem, GRACE, DeePMD, MatterSim, and Matlantis, plus optional charge-density backends such as ChargE3Net, DeepDFT, and DeepCDP. Actual availability depends on which backend packages are installed in your environment.
Installation
Install the package itself:
pip install vpmdk
Or from a checkout:
pip install -e .
You also need at least one backend package for real calculations, for example:
pip install chgnet
More setup details:
- docs index: docs/README.md
- installation guide: docs/getting-started/installation.md
- backend reference: docs/reference/backends.md
Choose Your Entry Point
- Use the CLI if you want to run from VASP-style input directories and keep compatibility outputs.
- Use the Python API if you want filesystem-independent workflows around
ase.Atoms.
CLI entry point:
vpmdk
Use --dir PATH only when you want to run against a calculation directory
other than the current one.
Python API entry points:
vpmdk.BackendConfig(...)vpmdk.get_calculator(...)vpmdk.single_point(...)vpmdk.relax(...)vpmdk.md(...)vpmdk.predict_charge_density(...)
Quick Start
CLI
Work in a calculation directory containing:
./
├── POSCAR
├── INCAR
└── BCAR
Minimal relaxation example:
INCAR
IBRION = 2
NSW = 200
EDIFFG = -0.02
ISIF = 3
BCAR
MLP=CHGNET
DEVICE=cpu
Run:
vpmdk
If you prefer launching from outside that directory, use vpmdk --dir ./calc_dir.
Python API
from ase.io import read
import vpmdk
import vpmdk.compat.vasp as vasp_compat
atoms = read("POSCAR")
backend = vpmdk.BackendConfig(mlp="CHGNET", device="cpu")
sp = vpmdk.single_point(atoms, backend)
relaxed = vpmdk.relax(atoms, backend, steps=200, fmax=0.02, relax_cell=True)
traj = vpmdk.md(
atoms,
backend,
temperature=300,
steps=100,
timestep=1.0,
thermostat="langevin",
)
charge = vpmdk.predict_charge_density(atoms, incar={"ENCUT": 520})
vasp_compat.write_chgcar("CHGCAR", atoms, charge.density, spin_density=charge.spin_density)
The public Python API does not write OUTCAR, OSZICAR, or vasprun.xml by
default.
Documentation Map
- docs index: docs/README.md
- quick start: docs/getting-started/quickstart.md
- CLI workflows: docs/user-guide/cli-workflows.md
- Python API guide: docs/user-guide/python-api.md
- charge density and
CHGCAR: docs/user-guide/charge-density.md - API reference: docs/reference/api-reference.md
INCARreference: docs/reference/incar-tags.mdBCARreference: docs/reference/bcar-tags.md- backend reference: docs/reference/backends.md
- architecture: docs/development/architecture.md
- backend environment notes: docs/development/backend-environments.md
- validation notes: docs/development/validation.md
Examples
Runnable examples live under examples/README.md.
Included examples:
examples/relax_chgnetexamples/md_maceexamples/neb_nequip_vtstexamples/api_chgnetexamples/chgcar_charge3netexamples/uspex_9_4_4_si
Compatibility Notes
POSCARis required for standard runs.POTCARis optional and can affect species reconciliation and some VASP-compatibility metadata.KPOINTS,WAVECAR, and existingCHGCARfiles are ignored by the force-field calculation itself.- If
BCARis omitted, VPMDK defaults toMLP=CHGNET. WRITE_CHGCAR=1runs a separate charge-density prediction step after the main calculation.- NEB-like directory layouts are supported for compatibility workflows, but VPMDK does not implement spring-coupled NEB forces internally.
License
VPMDK is distributed under the BSD 3-Clause License. See LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vpmdk-0.4.0.tar.gz.
File metadata
- Download URL: vpmdk-0.4.0.tar.gz
- Upload date:
- Size: 74.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a17daf79c69ce3ce094cd9dc1f98819ecf8f7c123aa42531ddbc515077903b0
|
|
| MD5 |
90a2712190654306fe871dea3241278b
|
|
| BLAKE2b-256 |
149e5679db3d8445e79c0e3ec4446e2abb5cd34005c9652bed6ab97f3d5dcb8c
|
Provenance
The following attestation bundles were made for vpmdk-0.4.0.tar.gz:
Publisher:
publish-pypi.yml on klxuyfk/VPMDK
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vpmdk-0.4.0.tar.gz -
Subject digest:
7a17daf79c69ce3ce094cd9dc1f98819ecf8f7c123aa42531ddbc515077903b0 - Sigstore transparency entry: 1372822645
- Sigstore integration time:
-
Permalink:
klxuyfk/VPMDK@2f92d8efa013886a2e56d1ae8c4dd307b35cc6b6 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/klxuyfk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f92d8efa013886a2e56d1ae8c4dd307b35cc6b6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file vpmdk-0.4.0-py3-none-any.whl.
File metadata
- Download URL: vpmdk-0.4.0-py3-none-any.whl
- Upload date:
- Size: 94.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
386ed33d5cae656d126ab2d57d86987c0680ffa3eb9757e682a87bafac3f3b15
|
|
| MD5 |
805e2aec301cccc76be3ad7fa8bec52c
|
|
| BLAKE2b-256 |
7054884dabbe1623484dced361d73bc0077d15fef59ff03f7e24dad3549805dc
|
Provenance
The following attestation bundles were made for vpmdk-0.4.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on klxuyfk/VPMDK
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vpmdk-0.4.0-py3-none-any.whl -
Subject digest:
386ed33d5cae656d126ab2d57d86987c0680ffa3eb9757e682a87bafac3f3b15 - Sigstore transparency entry: 1372822818
- Sigstore integration time:
-
Permalink:
klxuyfk/VPMDK@2f92d8efa013886a2e56d1ae8c4dd307b35cc6b6 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/klxuyfk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2f92d8efa013886a2e56d1ae8c4dd307b35cc6b6 -
Trigger Event:
release
-
Statement type: