check_duplicate_processes

soda_analyzer.check_duplicate_processes(h5_lib, tolerance=0.001, cell_tolerance=1e-06, print_report=True, max_rows=20, *, barrier_tolerance=None, runtime_comparison=False, max_state=None)

Check process duplicates within each state using saddle and product equivalence.

Parameters:
  • h5_lib (h5py.File) – Open SODA HDF5 file. Keep it open while using views derived from it.

  • tolerance (float, optional) – Maximum matched-atom distance in angstrom, using minimum-image distances. Default: 0.001.

  • cell_tolerance (float, optional) – Cell comparison tolerance in angstrom for legacy geometry mode. Runtime mode follows its own branch-specific cell rules. Default: 1e-06.

  • print_report (bool, optional) – Print the formatted report in addition to returning its dictionary. Default: True.

  • max_rows (int, optional) – Maximum issue rows shown in formatted output; the underlying analysis is not truncated. Default: 20.

  • barrier_tolerance (float or None, optional) – Maximum difference in persisted forward barriers in eV. Set this from [Structure Comparison] energy_difference to apply the runtime energy window. None preserves the geometry-only check. Missing or non-finite barriers are reported as read errors when this filter is enabled.

  • runtime_comparison (bool, optional) – Replay runtime process predicates: barrier gate, same-reference saddle and product deltas (atom IDs, displacement, species/fixed fields), or ordered reconstructed structures for different references. This filter preserves atom IDs regardless of indistinguishable_atoms. Requires a barrier_tolerance; cell_tolerance only applies to legacy geometry mode.

  • max_state (int or None, optional) – Only inspect source state IDs below this exclusive bound.

Returns:

dict – Structured results and diagnostics; inspect reported issues before using converted settings or interpreting acceptance.

Notes

A duplicate is reported only when both the saddle structures and the product structures match an earlier process ID in the same state. With barrier_tolerance set, their process_table.barrier values must also differ by no more than that threshold. These persisted barriers use the state’s reference energy, as in runtime process filtering; they can differ from barriers calculated using each search’s local reactant energy.

The default remains a reconstructed-geometry diagnostic. Runtime mode tests the persisted data against the filtering predicates; it cannot establish which candidates were visible in memory at the time a search was filtered. Reverse-process pairs are included and identified in the report so they can be distinguished from independent unique searches.