Runner (orchestration)

Atom-HiFi workflow runner.

Single source of truth for the L/R representative-selection pipeline. The CLI (atom-hifi run), the tutorial wrapper, and the tests all call run() with a config dict — the same orchestration that previously lived inline in hifi_workflow_tutorial.py.

Config shape is the nested mapping produced by atom_hifi.config.load_config() (see that module / atom-hifi init for the full key set). Partial dicts are accepted: run() merges its argument under the template defaults. A custom descriptor is supported here (and only here) via config['descriptor']['custom_fn'] set to a callable fn(List[Atoms]) -> ndarray.

atom_hifi.runner.collapsed_elements(n_groups_per_el, min_groups=1)[source]

Focus elements whose clustering collapsed (<= min_groups groups).

A collapsed element resolves no environment diversity at the operating point — every atom of that element shares one group — so the representative set captures nothing distinctive for it even when |S| looks healthy.

Counts density-supported groups only. Promoted rare-environment groups (issue #63) are one-atom outliers, not resolved diversity, so including them would mask a genuine collapse: PtOH_big O would report 64 groups while still being a single density blob.

atom_hifi.runner.run(config)[source]

Execute the full L/R workflow described by config.

Returns a small summary dict (metrics + output paths). REFIT modes return early after re-fitting at the saved state.

Parameters:

config (dict)

Return type:

dict