prometheus.thermo_data.parsers.burcat

Parsers for BURCAT NASA-7 and NASA-9 thermodynamic data files (.thr).

Both parsers produce dicts keyed by canonical Hill-order species ID ({HillFormula}_{Phase}) in the same JSON schemas loaded by SpeciesDatabase._load_nasa7 and SpeciesDatabase._load_nasa9.

The NASA-9 three-line interval format is identical to the CEA format; parse_nasa9_descriptor() and parse_nasa9_interval() from _common are shared with cea.

Raw source files: burcat7.thr (NASA-7), burcat9.thr (NASA-9). Maintained by A. Burcat and B. Ruscic — http://garfield.chem.elte.hu/Burcat/burcat.html

Classes

Burcat7Parser()

Parse a BURCAT NASA-7 .thr file into nasa7.json schema.

Burcat9Parser()

Parse a BURCAT NASA-9 .thr file into nasa9.json schema.

class prometheus_equilibrium.thermo_data.parsers.burcat.Burcat7Parser

Bases: NASA7Parser

Parse a BURCAT NASA-7 .thr file into nasa7.json schema.

Each 4-line block encodes one species:

  • Line 1: name, 20-char formula field, phase char, temperature bounds

  • Line 2: high-T coefficients 1–5

  • Line 3: high-T coefficients 6–7, then low-T coefficients 1–3

  • Line 4: low-T coefficients 4–7

parse(path: str, source: str = '') Dict[str, dict]

Parse path and return a dict keyed by canonical species ID.

Parameters:
  • path – Path to the burcat7.thr file.

  • source – Human-readable label for this data source (e.g. "Burcat-2024"). Stored in each record under the "source" key so the origin is visible in the compiled JSON and in conflict messages.

Schema:

{
  "id": "CO2_G",
  "name": "CO2",
  "alias": "<original label>",
  "phase": "G",
  "elements": {"C": 1.0, "O": 2.0},
  "format": "NASA-7",
  "source": "<source label>",
  "hf298_j_mol": null,
  "t_low": 200.0, "t_mid": 1000.0, "t_high": 6000.0,
  "coeffs": {"low": [...7], "high": [...7]}
}
class prometheus_equilibrium.thermo_data.parsers.burcat.Burcat9Parser

Bases: NASA9Parser

Parse a BURCAT NASA-9 .thr file into nasa9.json schema.

The per-species structure mirrors the CEA format (card-2 + n × 3-line intervals). The only file-level differences from CEA are:

  • No thermo header or END PRODUCTS terminator.

  • Blank lines separate species; non-letter lines are skipped.

The interval parsing delegates entirely to parse_nasa9_interval() from _common, which is also used by cea.CEAParser.

parse(path: str, source: str = '') Dict[str, dict]

Parse path and return a dict keyed by canonical species ID.

Parameters:
  • path – Path to the burcat9.thr file.

  • source – Human-readable label for this data source (e.g. "Burcat-2024"). Stored in each record under the "source" key.

Schema identical to CEAParser output:

{
  "id": "CO2_G",
  "name": "CO2",
  "alias": "<card-1 label>",
  "phase": "G",
  "elements": {...},
  "format": "NASA-9",
  "source": "<source label>",
  "segments": [...]
}