Geo Handler Engine Utility
ReaxFF geometry structure (geo) file handler.
This module provides a handler for parsing ReaxFF .geo structure
files in XTLGRF format, which define atomic coordinates, optional
periodic cell parameters, and descriptive metadata for a system.
Typical use cases include:
- loading initial or relaxed geometries
- extracting atomic coordinates for analysis or visualization
- accessing unit cell parameters for periodic systems
Usage context
- ReaxFF parsing: Read ReaxFF text outputs into normalized tabular structures.
- Workflow ingestion: Provide canonical handler interfaces used by adapters/workflows.
- Diagnostics/export: Preserve parsed metadata for reporting and downstream conversion.
Class: GeoHandler
Bases: BaseHandler
Parser for ReaxFF geometry structure files (.geo / XTLGRF format).
This class parses .geo files and exposes atomic coordinates and
associated structural metadata as structured Python objects.
Parsed Data
Atom table
One row per atom, returned by dataframe(), with columns:
["atom_id", "atom_type", "x", "y", "z"]
Connectivity table
One row per declared CONECT edge, returned by connectivity(),
with columns:
["source_atom_id", "target_atom_id"]
Metadata
Returned by metadata(), containing:
{
"descriptor": str | None, # from DESCRP line
"remark": str | None, # concatenated REMARK lines
"cell_lengths": { # from CRYSTX (a, b, c)
"a": float,
"b": float,
"c": float,
} | None,
"cell_angles": { # from CRYSTX (alpha, beta, gamma)
"alpha": float,
"beta": float,
"gamma": float,
} | None,
"n_atoms": int,
}
Notes
- Only
ATOMandHETATMrecords are parsed into the atom table. CONECTrecords (afterFORMAT CONECT) are parsed into a separate connectivity table.- Cell parameters are optional and may be absent for non-periodic systems.
- Non-structural lines (e.g.
XTLGRF,FORMAT) are ignored. - This handler is not frame-based; the file represents a single structure.