eon.amsel_superbasin_gate

Optional amsel discover_decide gate before Superbasin.step MCAMC solve (L6).

When enabled and the amsel Python package is importable, builds the candidate basin graph from the superbasin process tables and calls amsel.discover_decide_status. Outcomes:

  • accepted / retightened — proceed with the existing MCAMC step.

  • split_required — restrict MCAMC to the primary transient set returned by amsel (primary basin only); log sibling components.

  • rejected_no_metastable_basin — raise AmselSuperbasinReject so the AKMC driver can fall back to ordinary single-state KMC (no superbasin acceleration on a non-metastable candidate).

This is Python (eOn’s Superbasin controller is Python). There is no C++ Superbasin::step in upstream eOn; eonclient Hessian/saddle jobs remain separate. Optional soft-dependency: if amsel is missing or the gate is off, behaviour is unchanged from legacy MCAMC.

Module Contents

Functions

build_graph_from_superbasin

Return (candidate_states, rate_triples, ts_energies) for amsel.

discover_decide_for_superbasin

Run amsel.discover_decide_status; return a structured result dict.

apply_gate_to_superbasin

Mutate superbasin in-place for split_required; raise on reject.

Data

API

eon.amsel_superbasin_gate.logger

‘getLogger(…)’

exception eon.amsel_superbasin_gate.AmselSuperbasinReject(status: str, detail: str = '')[source]

Bases: RuntimeError

Raised when discover_decide rejects the candidate superbasin.

Initialization

Initialize self. See help(type(self)) for accurate signature.

eon.amsel_superbasin_gate.build_graph_from_superbasin(superbasin: Any, entry_number: int) tuple[list[int], list[tuple[int, int, float]], list[float]][source]

Return (candidate_states, rate_triples, ts_energies) for amsel.

eon.amsel_superbasin_gate.discover_decide_for_superbasin(superbasin: Any, entry_state: Any, *, e_min_init: float = 0.5, e_min_step: float = 0.05, e_min_floor: float = 0.05, cv_threshold: float = 10.0) dict[str, Any][source]

Run amsel.discover_decide_status; return a structured result dict.

Keys: status (str), primary_transient (list[int]|None), raw (tuple|None), available (bool). If amsel is not importable, available=False and status is unavailable (caller should proceed with legacy MCAMC).

eon.amsel_superbasin_gate.apply_gate_to_superbasin(superbasin: Any, entry_state: Any, decision: Mapping[str, Any]) str[source]

Mutate superbasin in-place for split_required; raise on reject.

Returns the status string for logging.