Skip to content

Ffield Analyzer Analysis

ReaxFF force-field (ffield) analysis utilities.

This module provides helper functions for extracting and interpreting sections of a ReaxFF ffield file via FFieldHandler.

Typical use cases include:

  • retrieving raw parameter tables for specific ffield sections
  • interpreting numeric atom indices (e.g. 1–1) into chemical symbols (e.g. C–C)
  • generating human-readable interaction labels for bonds, angles, torsions, and H-bonds

get_ffield_data(handler, *, section)

Retrieve a specific section of the ReaxFF force-field file as a DataFrame.

Works on

FFieldHandler — ffield

Parameters:

Name Type Description Default
handler FFieldHandler

Parsed force-field handler.

required
section str

Section name to retrieve (e.g. atom, bond, off_diagonal, angle, torsion, hbond). Aliases are supported.

required

Returns:

Type Description
DataFrame

Table of parameters for the requested section.

Examples:

>>> from reaxkit.io.handlers.ffield_handler import FFieldHandler
>>> from reaxkit.analysis.per_file.ffield_analyzer import get_ffield_data
>>> h = FFieldHandler("ffield")
>>> df = get_ffield_data(h, section="bond")

interpret_ffield_terms(handler, *, sections=None, sep='-')

Interpret numeric atom indices in ffield sections into chemical symbols.

Works on

FFieldHandler — ffield

Parameters:

Name Type Description Default
handler FFieldHandler

Parsed force-field handler.

required
sections iterable of str

Sections to interpret. Default interprets all relevant sections: bond, off_diagonal, angle, torsion, hbond.

None
sep str

Separator used when building human-readable interaction labels.

"-"

Returns:

Type Description
dict[str, DataFrame]

Mapping from section name to interpreted DataFrame. Each DataFrame includes: - *_symbol columns (e.g. i_symbol, j_symbol) - term column with readable labels (e.g. C-H, C-C-C)

Examples:

>>> from reaxkit.io.handlers.ffield_handler import FFieldHandler
>>> from reaxkit.analysis.per_file.ffield_analyzer import interpret_ffield_terms
>>> h = FFieldHandler("ffield")
>>> data = interpret_ffield_terms(h, sections=["bond", "angle"])
>>> bond_df = data["bond"]

interpret_one_section(handler, *, section, sep='-')

Interpret a single ffield section into symbol-based interaction labels.

Works on

FFieldHandler — ffield

Parameters:

Name Type Description Default
handler FFieldHandler

Parsed force-field handler.

required
section str

Section to interpret (e.g. bond, angle, torsion, hbond).

required
sep str

Separator used when building the term label.

"-"

Returns:

Type Description
DataFrame

Interpreted section DataFrame with *_symbol columns and a human-readable term column.

Examples:

>>> from reaxkit.io.handlers.ffield_handler import FFieldHandler
>>> from reaxkit.analysis.per_file.ffield_analyzer import interpret_one_section
>>> h = FFieldHandler("ffield")
>>> bond_df = interpret_one_section(h, section="bond")