ase-calculator-kit
A thin ASE calculator factory for machine-learning interatomic potentials, VASP, Quantum ESPRESSO, and molecular PySCF/GPU4PySCF. It selects upstream calculators, validates inputs, and records calculation conditions.
MLIP settings are Python keyword arguments. DFT settings use YAML or a configuration dictionary. No heavy backend is imported until requested.
Install
pip install ase-calculator-kit # ASE + PyYAML core
pip install 'ase-calculator-kit[sevennet]' # choose a backend
pip install 'ase-calculator-kit[orb]' # OrbMol-v2; Python 3.12
pip install 'ase-calculator-kit[uma]' # UMA (Hugging Face access)
pip install 'ase-calculator-kit[esen]' # eSEN OMol25
pip install 'ase-calculator-kit[pyscf]' # CPU molecular HF/DFT
For Linux x86_64 with NVIDIA CUDA 12:
pip install 'ase-calculator-kit[gpu4pyscf-cuda12x]'
[all] installs the co-installable MLIP extras and D3. MACE, Orb, and PySCF
extras are separate. MACE requires its own environment because its e3nn pin
conflicts with several other backends:
python -m venv .venv-mace
.venv-mace/bin/pip install 'ase-calculator-kit[mace]'
MACE-POLAR additionally needs graph_longrange; Orb has a documented dm-tree override on Python 3.13+. Follow installation instructions.
Quickstart: molecular MLIP
from ase.build import molecule
from ase_calculator_kit import get_calculator
atoms = molecule("H2O")
atoms.info.update(charge=0, spin=1) # spin is MULTIPLICITY: 2S+1
atoms.calc = get_calculator("orb", model="orbmol-v2", device="cpu")
print(atoms.get_potential_energy()) # eV
print(atoms.get_forces()) # eV/Angstrom
UMA/eSEN OMol, OrbMol, MACE-OMOL-0 and MACE-POLAR require explicit electronic
states. MACE-POLAR also reads atoms.info["external_field"] in V/Angstrom.
See molecular inputs and cache behavior.
For a material, the same ASE interface accepts other backends:
from ase.build import bulk
atoms = bulk("Cu", "fcc", a=3.6)
atoms.calc = get_calculator("sevennet", model="7net-omni", modal="mpa")
print(atoms.get_potential_energy())
Quickstart: molecular DFT
from ase.build import molecule
from ase_calculator_kit import get_calculator
atoms = molecule("H2O")
atoms.info.update(charge=0, spin=1)
calc = get_calculator("pyscf", config={
"calculator": "pyscf", # use gpu4pyscf in both places for GPU
"directory": "runs/water",
"parameters": {
"basis": "def2-svp",
"xc": "pbe",
"density_fit": True,
"retain_scf": True,
},
})
atoms.calc = calc
print(atoms.get_potential_energy())
print(atoms.get_forces())
hessian = calc.get_hessian(atoms) # (3N, 3N), eV/Angstrom^2
print(calc.metadata["scf"])
calc.reset() # release retained SCF/log resources
YAML spin is 2S; atoms.info["spin"] is multiplicity. Conflicts raise an
error. Density fitting defaults to false on both CPU and GPU; the GPU examples
explicitly enable it. Density reuse between geometries is opt-in too.
See PySCF settings, checkpoints and Hessians and complete DFT examples. VASP/QE require explicit execution commands and QE requires explicit pseudopotential settings.
Supported backends
| Backend | Models / methods | Details |
|---|---|---|
sevennet |
SevenNet, including selectable multi-fidelity modals | Models |
chgnet |
Original CHGNet | API |
matgl, tensornet |
TensorNet MatPES | Models |
matgl-chgnet |
Provisional corrected MatGL CHGNet MatPES | Validation |
mattersim |
MatterSim 1M / 5M | Models |
nequip |
NequIP OAM L / XL | Models |
orb |
OrbMol-v2 | Molecules |
uma |
UMA with task selection | Models |
esen |
OMol25 conserving / direct-force checkpoints | Models |
mace |
MH-1, OMAT/MatPES, OMOL-0, POLAR-1 | Models |
vasp, qe, cp2k |
ASE VASP / Quantum ESPRESSO / CP2K | Examples |
pyscf, gpu4pyscf |
Molecular HF/DFT, gradients and Hessians | Guide |
Dispersion is model-dependent; the kit rejects double-counting. See the training levels and dispersion policy.
Documentation
Start at the documentation index.
- Installation and compatibility
- Factory API and model selection
- Charge, spin and electric fields
- D3 settings and Apple Silicon
- PySCF/GPU4PySCF
- Validation records
- Development, Japanese implementation guide, and releases
- Changes by version
Citation
If this package contributed to published work, please cite the archived
release. CITATION.cff holds the machine-readable metadata —
GitHub renders it under "Cite this repository", and Zenodo reads it when
minting the DOI.
@software{ase_calculator_kit,
title = {ase-calculator-kit: a unified ASE calculator factory for MLIP and DFT calculators},
author = {Wakamiya, Taishiro and Ishikawa, Atsushi},
year = {2026},
doi = {10.5281/zenodo.21807793},
url = {https://github.com/ishikawa-group/ase-calculator-kit}
}
10.5281/zenodo.21807793 is the concept DOI: it always resolves to the newest
archived version. To cite one specific release instead, use its version DOI from
the Zenodo record — 0.3.4 is
10.5281/zenodo.21807794.
License
MIT. Upstream software and model weights retain their own licenses; consult the backend documentation before selecting a checkpoint.
Metadata
Release files for ase-calculator-kit 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ase_calculator_kit-0.6.2.tar.gz | 201.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ase_calculator_kit-0.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 279.8 kB
Release files / ase_calculator_kit-0.6.2.tar.gz
| Download URL | ase_calculator_kit-0.6.2.tar.gz |
|---|---|
| Size | 201.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fe8b2faaf6d37f25c04d89eb2c7a7d7381a4bc680bbb7feb149a0eb0b65c0d6
|
|
BLAKE2b-256 checksum How to use checksums |
5e42066b38e41b867c762dd9cbfc0d0e3d685f5189713634766510afe4c028ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / ase_calculator_kit-0.6.2-py3-none-any.whl
| Download URL | ase_calculator_kit-0.6.2-py3-none-any.whl |
|---|---|
| Size | 78.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e31d8edc9b4fa4451b6ee647235dd4c04c29237b59f457f1b2973080638107e5
|
|
BLAKE2b-256 checksum How to use checksums |
30b99786802fafa0f1b1ae71e8b4e752d976dfc6ce32188bd2c4117f66551422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logSecurity for ase-calculator-kit 0.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ase_calculator_kit-0.6.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.