Summary
thermo.Chemical('melamine') stores Tb = 704.0 K (430.9 °C), treating melamine as a normal solid→liquid→gas compound. In reality, melamine sublimes at its melting temperature (~618 K / 345 °C) under atmospheric pressure; no stable liquid phase exists at 1 atm.
The consequence: Chemical('melamine', T=663.15, P=360e3) returns phase='l' when the correct phase at relevant industrial operating conditions is gas.
A related symptom: the H(T) enthalpy curve shows two separate jumps (s→l at Tm + l→g at Tb) instead of the single jump expected for a subliming compound (s→g at ~Tm).
Environment
thermo version: 0.6.0
- Python: 3.13.9
Reproducer
from thermo.chemical import Chemical
m = Chemical('melamine')
print(f'Tb: {m.Tb:.1f} K ({m.Tb-273.15:.1f} °C)') # 704.0 K (430.9 °C)
print(f'Tm: {m.Tm:.1f} K ({m.Tm-273.15:.1f} °C)') # 618.1 K (345.0 °C)
# Phase scan at 101.325 kPa — shows s→l→g (wrong for a subliming compound)
for Tc in [610, 618, 620, 630, 650, 663, 680, 698, 704, 720]:
m3 = Chemical('melamine', T=Tc, P=101325)
print(f' T={Tc}K ({Tc-273.15:.0f}°C): phase={m3.phase}')
# Observed: s (610K) → l (620K) → g (698K)
# Expected for sublimation: s (610K) → g (698K) — no liquid phase at 1 atm
# Industrial operating conditions
m_op = Chemical('melamine', T=390+273.15, P=360e3)
print(f'Phase at 390°C / 360 kPa: {m_op.phase}') # 'l' ← should be 'g'
Evidence 1: Hirt (1960) vapor pressure equation
The classic Hirt, Steger et al. (1960) paper (Journal of Polymer Science) experimentally measured melamine vapor pressure by Knudsen effusion and reported the correlation:
log₁₀(P) = 12.52 − 6440/T (P in mmHg, T in K)
This is the NIST reference for melamine vapor pressure and sublimation enthalpy.
The Hirt equation predicts sublimation, not liquid→gas
At thermo's stored Tm = 618 K, the sublimation vapor pressure is:
P_sub(Tm) = 10^(12.52 − 6440/618) = 126 mmHg = 16.8 kPa
This ~17 kPa is the triple-point pressure of melamine. At 1 atm (101 kPa) ≈ 6× the triple-point pressure, one might expect a stable liquid. However, melamine's high sublimation rate near its melting point means the liquid phase is practically non-existent at atmospheric conditions — the compound goes directly from solid to gas.
Cross-check against stored Tb
If Tb = 704 K is treated as a normal boiling point (where P_sat = 1 atm), the Hirt equation gives:
P(704K) = 10^(12.52 − 6440/704) = 10^3.372 = 2355 mmHg = 3.1 atm
→ At 704 K, the Hirt equation predicts P_sat = 3.1 atm, not 1 atm. The equation is an excellent fit for experimentally validated data (ΔH_sub = 123.2 kJ/mol from slope vs NIST 120±4 kJ/mol), so the error is in the stored Tb, not the equation.
Equation validation
| Source |
ΔH_sub (kJ/mol) |
Method |
| Hirt equation slope |
123.2 |
From 6440 × ln(10) × R |
| Hirt, Steger et al. (1960), NIST |
120 ± 4 |
Knudsen effusion, direct |
| Stephenson & Malanowski (1987) |
121.3 ± 4.2 |
Literature compilation |
Thermo's own Hsubm |
120.0 |
(stored value, matches NIST) |
(Note: Thermo also stores Joback-estimated Hsub = 951.5 kJ/mol and Hvap_Tb = 603.5 kJ/mol, which overestimate ~8× for the triazine ring; the m-suffixed properties are the correct literature values.)
Evidence 2: Industrial practice
The urea-to-melamine pyrolysis process operates at 380–400 °C and ~360 kPa, with melamine collected as a gas-phase product. At these conditions (T=390°C, P=360 kPa), Chemical('melamine') returns phase='l', contradicting industrial practice.
The phase misprediction has a significant enthalpy impact: the liquid-phase enthalpy at 390°C excludes the vaporization enthalpy (~92 kJ/mol from Hsubm − Hfusm), causing errors of ~1 GJ per tonne of melamine in reaction enthalpy calculations.
Evidence 3: H vs T enthalpy scan — two jumps instead of one
The H vs T scan at 1 atm reveals the problem visually: thermo produces two separate enthalpy jumps at the positions of Tm and Tb, when a subliming compound should show a single jump at the sublimation temperature.
| Transition |
Temperature |
Enthalpy change |
| s → l |
620 K (3°C above Tm) |
+29.2 kJ/mol (Hfus) |
| l → g |
700 K (4°C below Tb) |
+77.5 kJ/mol (Hvap) |
| Sum (s→g) |
— |
106.7 kJ/mol |
| Expected s→g |
~618 K |
~120 kJ/mol (Hsub) |
The two jumps sum to 106.7 kJ/mol — close to the expected Hsub of 120 kJ/mol, but split incorrectly into melting + vaporization at the wrong temperatures. The 13 kJ/mol gap is due to the sensible heat of the spurious liquid phase that shouldn't exist at 1 atm.
import numpy as np
import matplotlib.pyplot as plt
from thermo.chemical import Chemical
species = 'melamine'
P = 101325 # Pa (1 atm)
T_min, T_max, N = 580, 730, 150
temps = np.linspace(T_min, T_max, N)
H_vals, phases = [], []
for T in temps:
m = Chemical(species, T=T, P=P)
H_vals.append(m.H)
phases.append(m.phase)
H_vals = np.array(H_vals)
fig, ax = plt.subplots(figsize=(10, 5))
colors = {'s': '#4a90d9', 'l': '#e67e22', 'g': '#e74c3c'}
for ph in ('s', 'l', 'g'):
mask = np.array(phases) == ph
if mask.any():
ax.scatter(temps[mask], H_vals[mask], c=colors[ph], s=8,
label={'s':'Solid','l':'Liquid','g':'Gas'}[ph])
m0 = Chemical(species)
for name, Tv in [('Tm', m0.Tm), ('Tb', m0.Tb)]:
ax.axvline(Tv, color='#2c3e50', ls='--', lw=0.8, alpha=0.5)
ax.text(Tv+3, ax.get_ylim()[1]*0.95, f'{name}={Tv:.0f}K', fontsize=8)
ax.set_xlabel('T (K)'); ax.set_ylabel('H (J/kg)')
ax.set_title(f'{species} — H vs T (P={P/101325:.2f} atm)')
ax.legend(); ax.grid(alpha=0.3)
fig.tight_layout()
fig.savefig('/tmp/melamine_H_vs_T.png', dpi=150)
Suggested Fix
Melamine should be treated as a subliming compound. At atmospheric pressure, it does not have a stable liquid phase. The Hsub and Tb parameters should be consistent with sublimation behavior.
- Set
Tb to match Tm (~618 K / 345 °C), since melamine sublimes at its melting temperature. The solid→gas transition temperature is ~618 K, not 704 K.
- Alternatively, mark melamine as a subliming compound, so the
s→l→g phase sequence is replaced by direct s→g.
Additionally: the inflated Joback-estimated values (Hsub = 951.5 kJ/mol, Hfus = 220.4 kJ/mol, Hvap_Tb = 603.5 kJ/mol) should be corrected to match the literature data already stored in the m-suffixed properties (Hsubm = 120.0, Hvapm = 127.3, Hfusm = 27.8).
References
-
Hirt, R. C., Steger, J. E., et al. Vapor Pressure of Melamine. Journal of Polymer Science, 1960.
— Primary source of the vapor pressure correlation. Knudsen effusion, ΔsubH° = 120 ± 4 kJ/mol.
-
Stephenson, R. M., Malanowski, S. Handbook of the Thermodynamics of Organic Compounds. Elsevier, 1987.
— ΔsubH° = 121.3 ± 4.2 kJ/mol.
-
Dorofeeva, O. V. Quantum-chemical study of gas-phase enthalpies of formation of urea-derived compounds. Struct. Chem. 28, 1541–1550 (2017). DOI: 10.1007/s11224-017-0937-4
— QC-derived ΔsubH° ≈ 142 kJ/mol, same order of magnitude.
Reported from industrial chemical engineering context. Happy to provide additional validation data or participate in discussion.
Summary
thermo.Chemical('melamine')storesTb = 704.0 K (430.9 °C), treating melamine as a normal solid→liquid→gas compound. In reality, melamine sublimes at its melting temperature (~618 K / 345 °C) under atmospheric pressure; no stable liquid phase exists at 1 atm.The consequence:
Chemical('melamine', T=663.15, P=360e3)returnsphase='l'when the correct phase at relevant industrial operating conditions is gas.A related symptom: the H(T) enthalpy curve shows two separate jumps (s→l at Tm + l→g at Tb) instead of the single jump expected for a subliming compound (s→g at ~Tm).
Environment
thermoversion: 0.6.0Reproducer
Evidence 1: Hirt (1960) vapor pressure equation
The classic Hirt, Steger et al. (1960) paper (Journal of Polymer Science) experimentally measured melamine vapor pressure by Knudsen effusion and reported the correlation:
log₁₀(P) = 12.52 − 6440/T (P in mmHg, T in K)
This is the NIST reference for melamine vapor pressure and sublimation enthalpy.
The Hirt equation predicts sublimation, not liquid→gas
At thermo's stored
Tm = 618 K, the sublimation vapor pressure is:This ~17 kPa is the triple-point pressure of melamine. At 1 atm (101 kPa) ≈ 6× the triple-point pressure, one might expect a stable liquid. However, melamine's high sublimation rate near its melting point means the liquid phase is practically non-existent at atmospheric conditions — the compound goes directly from solid to gas.
Cross-check against stored Tb
If
Tb = 704 Kis treated as a normal boiling point (where P_sat = 1 atm), the Hirt equation gives:→ At 704 K, the Hirt equation predicts P_sat = 3.1 atm, not 1 atm. The equation is an excellent fit for experimentally validated data (ΔH_sub = 123.2 kJ/mol from slope vs NIST 120±4 kJ/mol), so the error is in the stored Tb, not the equation.
Equation validation
6440 × ln(10) × RHsubm(Note: Thermo also stores Joback-estimated
Hsub = 951.5 kJ/molandHvap_Tb = 603.5 kJ/mol, which overestimate ~8× for the triazine ring; them-suffixed properties are the correct literature values.)Evidence 2: Industrial practice
The urea-to-melamine pyrolysis process operates at 380–400 °C and ~360 kPa, with melamine collected as a gas-phase product. At these conditions (
T=390°C, P=360 kPa),Chemical('melamine')returnsphase='l', contradicting industrial practice.The phase misprediction has a significant enthalpy impact: the liquid-phase enthalpy at 390°C excludes the vaporization enthalpy (~92 kJ/mol from
Hsubm − Hfusm), causing errors of ~1 GJ per tonne of melamine in reaction enthalpy calculations.Evidence 3: H vs T enthalpy scan — two jumps instead of one
The H vs T scan at 1 atm reveals the problem visually: thermo produces two separate enthalpy jumps at the positions of Tm and Tb, when a subliming compound should show a single jump at the sublimation temperature.
The two jumps sum to 106.7 kJ/mol — close to the expected Hsub of 120 kJ/mol, but split incorrectly into melting + vaporization at the wrong temperatures. The 13 kJ/mol gap is due to the sensible heat of the spurious liquid phase that shouldn't exist at 1 atm.
Suggested Fix
Melamine should be treated as a subliming compound. At atmospheric pressure, it does not have a stable liquid phase. The
HsubandTbparameters should be consistent with sublimation behavior.Tbto matchTm(~618 K / 345 °C), since melamine sublimes at its melting temperature. The solid→gas transition temperature is ~618 K, not 704 K.s→l→gphase sequence is replaced by directs→g.Additionally: the inflated Joback-estimated values (
Hsub = 951.5 kJ/mol,Hfus = 220.4 kJ/mol,Hvap_Tb = 603.5 kJ/mol) should be corrected to match the literature data already stored in them-suffixed properties (Hsubm = 120.0,Hvapm = 127.3,Hfusm = 27.8).References
Hirt, R. C., Steger, J. E., et al. Vapor Pressure of Melamine. Journal of Polymer Science, 1960.
— Primary source of the vapor pressure correlation. Knudsen effusion, ΔsubH° = 120 ± 4 kJ/mol.
Stephenson, R. M., Malanowski, S. Handbook of the Thermodynamics of Organic Compounds. Elsevier, 1987.
— ΔsubH° = 121.3 ± 4.2 kJ/mol.
Dorofeeva, O. V. Quantum-chemical study of gas-phase enthalpies of formation of urea-derived compounds. Struct. Chem. 28, 1541–1550 (2017). DOI: 10.1007/s11224-017-0937-4
— QC-derived ΔsubH° ≈ 142 kJ/mol, same order of magnitude.
Reported from industrial chemical engineering context. Happy to provide additional validation data or participate in discussion.