Skip to main content

aiida-eon

AiiDA 2 plugin for eOn. The scheduled executable is eonclient. The Python server (job = akmc) is not launched from this plugin; use WorkflowFactory("eon.akmc") for a provenance-tracked process-search campaign, or run the server yourself.

This replaces the 2021 cookiecutter stubs (DiffCalculation wrapping diff). The reserved registry name aiida-eonclient stays unused so the entry-point prefix stays eon.

Install

pip install -e .            # or pip install aiida-eon after the PyPI wheel
verdi plugin list aiida.calculations eon
verdi plugin list aiida.workflows
verdi devel validate-plugins

Register the binary on a laptop:

verdi code create core.code.installed \
  --label eonclient \
  --computer localhost \
  --filepath-executable "$(command -v eonclient)" \
  --default-calc-job-plugin eon

On Elja (login-node AiiDA + Slurm) see docs/elja.md.

Usage

from aiida import orm
from aiida.engine import run
from aiida.plugins import CalculationFactory, DataFactory, WorkflowFactory

ConData = DataFactory("eon.con")
EonCalculation = CalculationFactory("eon")
result = run(
    EonCalculation,
    code=orm.load_code("eonclient@localhost"),
    parameters=orm.Dict(
        dict={
            "Main": {"job": "minimization"},
            "Potential": {"potential": "lj"},
            "Optimizer": {"opt_method": "lbfgs", "converged_force": 0.01},
        }
    ),
    structure=ConData.from_path("pos.con"),
)
print(result["results"].get_dict()["potential_energy"])
print(result["scalars"].get_dict()["force_calls"])

Workchains pin Main.job and expose the CalcJob ports under calc:

Minimize = WorkflowFactory("eon.minimize")
Neb = WorkflowFactory("eon.neb")
Saddle = WorkflowFactory("eon.saddle")
Process = WorkflowFactory("eon.process_search")
Prefactor = WorkflowFactory("eon.prefactor")
Akmc = WorkflowFactory("eon.akmc")

Job surface

parameters["Main"]["job"] must be a client job. Aliases: neb -> nudged_elastic_band, finite_differences -> finite_difference, molecular_dynamics -> dynamics.

Token Inputs Outputs
minimization pos.con min.con
point pos.con Energy / Max_Force
saddle_search pos.con, optional displacement.con / direction.dat saddle.con, mode.dat
process_search pos.con, optional displacement reactant.con, saddle.con, product.con
nudged_elastic_band reactant.con + product.con neb.con, sp.con, neb.dat
prefactor reactant + saddle + product freq.dat
hessian pos.con hessian.dat
finite_difference pos.con curvature table
dynamics pos.con final.con
monte_carlo pos.con energy
basin_hopping pos.con min.con, bh.dat
global_optimization pos.con monitoring.dat
parallel_replica / tad / safe_hyperdynamics pos.con reactant / product
replica_exchange pos.con pos_out.con
gp_surrogate reactant + product neb.con (needs WITH_GP_SURROGATE)
oh_tst pos.con + product.con oh_tst_progression.dat
structure_comparison matter1.con (stub)

Not CalcJobs:

  • akmc / escape_rate / server PR wrappers: WorkChain or the Python server
  • eonclient --serve-*: long-lived potential RPC
  • forceBatch: engine path used by NEB and dimer (metatomic implements a true batch)
  • geometric NEB: there is no such job. Use nudged_elastic_band with [Nudged Elastic Band] elastic_band or a geometric path init (linear, idpp, idpp_collective, sidpp, sidpp_zbl, file)

Potentials are INI sections, not jobs: lj, emt, vasp, lammps, metatomic, xtb, rgpot ([RgpotPot] backends nwchemc, cpmdc, metatomic, xtb). Copy potfiles through the potfiles FolderData port.

verdi data eon jobs prints the catalog. Extra workdir files go in extra_files.

Registry

Package name aiida-eon, import aiida_eon, prefix eon. The aiida-registry key already exists; after a PyPI upload the listing needs pip_url: aiida-eon and a plugin_info URL. See docs/registry.md.

Tests

pip install -e ".[tests]"
pytest

tests/test_io.py and tests/test_jobs.py do not need a profile. Entry-point tests need aiida-core.

License

MIT. Contact: rog32@hi.is

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiida_eon-0.2.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

aiida_eon-0.2.0-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file aiida_eon-0.2.0.tar.gz.

File metadata

  • Download URL: aiida_eon-0.2.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for aiida_eon-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ee5b30f9c48e90ab96fca8b3117d079474d34b6dc02fc8a012948c52596a3056
MD5 9286b45ac09280f75bd06c6d46bd7815
BLAKE2b-256 0503c9095e29d21cff6dfdf7961467b571695c59139f93ddea1bbb251fb3cc4f

See more details on using hashes here.

File details

Details for the file aiida_eon-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: aiida_eon-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for aiida_eon-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e100cf1903a2da6fdc2b14339eb1680fe571ecc40029d114d7f7ec9e11f90c5
MD5 0d2ecb415bea35a8f6e1b28bc1a6f60b
BLAKE2b-256 2cfc1c047dd328c75e5fb2d721475c374eba8b2291089951bf7162349055673d

See more details on using hashes here.

Supported by

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