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 aiida-eon
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.1.tar.gz (22.5 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.1-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aiida_eon-0.2.1.tar.gz
  • Upload date:
  • Size: 22.5 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.1.tar.gz
Algorithm Hash digest
SHA256 b4f5c10b4789244bbab32b9e00552df3b9793c54113e77bb858d87be02403d70
MD5 def3a370505bb45586b60305c93618f3
BLAKE2b-256 865121a165b9fbf15478a07440aae494dd3dfba2a293723c57c2a895248fd749

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aiida_eon-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 24.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9caa175aedde0bfa44e8b47196d7c874bdd4844e517aafe471860eec7fdc4567
MD5 c2d932a859562be279824e4a75ebf16d
BLAKE2b-256 d0ef5b6ac2b89f19ffe6aabbc120435a6f71a4226f2372c54058941342addd02

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