Skip to main content

Nanobind bindings to the eOn C++ client (Matter, Parameters, Potential, Jobs, NEB, RGPOT)

Project description

pyeonclient

In-process eOn client for Python. First-class algorithm objects on Matter (not a workdir wrapper).

Class / function Role
Matter Geometry + PEF (ASE Atoms analogue)
ImprovedDimer / Dimer / Lanczos / Davidson Min-mode
MinModeSaddleSearch Single-ended saddle search
NudgedElasticBand NEB band (list[Matter])
Hessian / get_prefactors Vibrational analysis / HTST
make_job + Job.run Full JobType factory (workdir jobs)

Docs: Python API

Install

pip install pyeonclient
pip install 'pyeonclient[ase]'           # Matter ↔ ASE geometry helpers
pip install 'pyeonclient[models]'        # optional Pydantic DimerSpec / NebSpec
# uv: uv pip install 'pyeonclient[models]'
# Core Dimer/NEB work without pydantic; C++ + light Python still enforce
# accelerant="gp" only with method="improved".

Example (dimer → saddle)

import numpy as np
import pyeonclient as pyec

params = pyec.Parameters()
params.potential = pyec.PotType.LJ
pot = pyec.make_potential(params.potential, params)
matter = pyec.Matter(pot, params)
# ... set positions / cell / numbers ...

matter.relax()
mode0 = np.random.default_rng(0).normal(size=matter.positions.shape)
dimer = pyec.ImprovedDimer(matter, params, pot)
dimer.compute(matter, mode0)

ss = pyec.MinModeSaddleSearch(
    matter, dimer.eigenvector, matter.potential_energy, params, pot
)
status = ss.run()
print(pyec.saddle_status_message(status), ss.eigenvalue)

NEB

path = [pyec.from_ase(img, pot, params) for img in images]
neb = pyec.NudgedElasticBand(path, params, pot)
neb.compute()
# Stamped ConFrames for plots (no neb.con write required):
frames = neb.path_frames()  # list[readcon.ConFrame]
path = list(neb.path_images())

Min / saddle movies (in-memory)

out, ok = matter.relax(retain_frames=True)  # default inplace=False returns working copy
movie = out.movie_frames()  # list[readcon.ConFrame]

ss = pyec.MinModeSaddleSearch(matter, mode, e0, params, pot)
ss.run_retain_frames()
climb = ss.climb_frames()

Build

meson setup build -Dwith_pyeonclient=true
meson compile -C build
pytest tests/test_pyeonclient_eigenmode.py tests/test_pyeonclient_neb.py -v

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

pyeonclient-0.3.4.tar.gz (24.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyeonclient-0.3.4-cp314-cp314t-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyeonclient-0.3.4-cp313-cp313t-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

pyeonclient-0.3.4-cp312-abi3-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.28+ x86-64

File details

Details for the file pyeonclient-0.3.4.tar.gz.

File metadata

  • Download URL: pyeonclient-0.3.4.tar.gz
  • Upload date:
  • Size: 24.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyeonclient-0.3.4.tar.gz
Algorithm Hash digest
SHA256 36b77265c1ad67324bf5ff3e5a9581f24c2f3248a6db12c27307484104691a8c
MD5 f22ff4e1348ed909aa7fd22cc03d4e52
BLAKE2b-256 f3a4db3cb6e7aa80347fee011516c784c26a696cdd5883ea1db5c12f54a04d6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.4.tar.gz:

Publisher: pyeonclient-wheels.yml on TheochemUI/eOn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeonclient-0.3.4-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.4-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47f94de743198c970c01a1a85c18d06e44f0d6769a05e241db0df30b98bbbb9b
MD5 d2cd8ce9bf1dd6d7544534e0bfe14e45
BLAKE2b-256 79a7906052549d0c3bdc676338e51e3887cb39041949b76f198b58bc33412fe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.4-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: pyeonclient-wheels.yml on TheochemUI/eOn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeonclient-0.3.4-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.4-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab2976bfbff6a68b5fbcbba0e4346f5968af0cda163f51793a5ab454e8dcf958
MD5 2432f09c291f323d733bb339ab40d3d5
BLAKE2b-256 f6e1c99e02ebcda919443154a83c6dadebe95d67db5b41be25004f08ad6422da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.4-cp313-cp313t-manylinux_2_28_x86_64.whl:

Publisher: pyeonclient-wheels.yml on TheochemUI/eOn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeonclient-0.3.4-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.4-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8fb80b9d64961d2c759f0e009bc29452d0b62c5ff5f3917d3c334ceb04a028a4
MD5 44c848958bce336709bc7f3681e8cf26
BLAKE2b-256 5e5ea2e542757b0a3c09ca722487b327f2adec4dcbbbe2c372d04494bef80b53

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.4-cp312-abi3-manylinux_2_28_x86_64.whl:

Publisher: pyeonclient-wheels.yml on TheochemUI/eOn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page