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
Parse a BURCAT NASA-7 .thr file into nasa7.json schema. |
|
Parse a BURCAT NASA-9 .thr file into nasa9.json schema. |
- class prometheus_equilibrium.thermo_data.parsers.burcat.Burcat7Parser
Bases:
NASA7ParserParse 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:
NASA9ParserParse 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
thermoheader orEND PRODUCTSterminator.Blank lines separate species; non-letter lines are skipped.
The interval parsing delegates entirely to
parse_nasa9_interval()from_common, which is also used bycea.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
CEAParseroutput:{ "id": "CO2_G", "name": "CO2", "alias": "<card-1 label>", "phase": "G", "elements": {...}, "format": "NASA-9", "source": "<source label>", "segments": [...] }