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.
File I/O is not reimplemented here. config.ini is
rgpycrumbs.eon.helpers.write_eon_config /
eon_schema.config.write_ini. results.dat is
eon_schema.jobs.results_dat_to_dict. Saddle codes are
chemparseplot.parse.eon.saddle_search.EONSaddleStatus. CON to ASE is
chemparseplot.parse.eon.con_io.
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 servereonclient --serve-*: long-lived potential RPCforceBatch: engine path used by NEB and dimer (metatomic implements a true batch)- geometric NEB: there is no such job. Use
nudged_elastic_bandwith[Nudged Elastic Band] elastic_bandor 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiida_eon-0.3.0.tar.gz.
File metadata
- Download URL: aiida_eon-0.3.0.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1a34f48ca9975f768a9b6f904807b9eda55bf6066c2d56804e6cceeac619741
|
|
| MD5 |
0bdd9f377b71eb940ed574965a732785
|
|
| BLAKE2b-256 |
a2ca0723fa1b26bdb2d911d225770a18b4d1504a2e705a961b5b9e98bc322fce
|
File details
Details for the file aiida_eon-0.3.0-py3-none-any.whl.
File metadata
- Download URL: aiida_eon-0.3.0-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
256896ea486c398c693637f4f9467f93bb2a4dc59c4e78e72b386353819e3d68
|
|
| MD5 |
a168752a596ca3c1cd9ef8c6b3d33902
|
|
| BLAKE2b-256 |
547d36a7b5b5c7124e60aa866c16992c2b26d8593bd9372cace385b81ff28b36
|