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.5.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.5-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.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: pyeonclient-0.3.5.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.5.tar.gz
Algorithm Hash digest
SHA256 e918a87011b3e985daa18ba8d5b04a2354efb37c49e76e0197b90545a5110ead
MD5 a325740e78e838575b4382f7fcb304c0
BLAKE2b-256 9d3393274602850f5603ecf607c24dd32a584e9cd65dfd95a1ece2d4826dd5ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.5.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.5-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.5-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71996417aff4149fc06bfe65860a0f78ac27277e543ac58face1d3a9fd213beb
MD5 aca5efe9dc1c16472af4be94c4b9e824
BLAKE2b-256 d3d5d92ac1dcd38fa5ba1e5a782380530b7533032d4101c78095904d562b93f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.5-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.5-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.5-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 84dc27b6655c4ff0ea084a5ce871ad21a36fd3f15be3afc5b0c4a3746105fe0d
MD5 3903589d52f3c6ffb67bcf7ca4724563
BLAKE2b-256 ea94be219b0c91aa2dcae10eb2ef8c504c7e2fc1e990461d6ea3aa263b9dd58d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.5-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.5-cp312-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyeonclient-0.3.5-cp312-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 33bfad6091c2e100d6c15f987e799fa209a4743a1b044dd438262ea36aae76d3
MD5 886f96018c20ab33a940daac126d143a
BLAKE2b-256 9056bdd48ae4d5f5a02aa9cbf04f349b6ac579c528bbd63a1f242abdf55fcecf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeonclient-0.3.5-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