Unit Conventions#

All internal calculations use SI units. The table below documents every convention used in YAML inputs, Cantera objects, and Calculation Note outputs. When a quantity appears in two forms (internal vs. display), both are listed.


Thermodynamic quantities#

Quantity

YAML / Cantera internal

Calculation Note display

Notes

Temperature

K

°C

T_wall_K, temperature in YAML are always K; display subtracts 273.15

Pressure

Pa

bar

pressure in YAML is Pa; 1 bar = 100 000 Pa

Enthalpy, internal energy

J/kg

kJ/kg

Cantera convention

Density

kg/m³

kg/m³

Heat capacity

J/(kg·K)

J/(kg·K)


Flow quantities#

Quantity

YAML / Cantera internal

Calculation Note display

Notes

Mass flow rate

kg/s

kg/d or kg/h (context-dependent)

mass_flow_rate in YAML is kg/s

Volumetric flow (actual)

m³/s

m³/h

Based on local T and P

Volumetric flow (normal)

Nm³/h

DIN 1343: 0 °C (273.15 K), 101 325 Pa

Residence time

s

s or ms

Normal volumetric flow convention#

Normal flow is reported under DIN 1343 conditions: 0 °C (273.15 K) and 101 325 Pa. This is the European industrial convention used in gas specifications and flow meter datasheets.

Do not confuse with NTP (20 °C, 101 325 Pa) or STP (0 °C, 101 325 Pa in IUPAC 2019 form — same pressure, same result in this case) or SATP (25 °C, 100 kPa).


Composition#

Form

Used where

Notes

Mole fraction X

Cantera TPX assignments; composition: in YAML

Cantera parses "CH4:0.94, N2:0.06" or "CH4:94, N2:6" (normalised)

Mass fraction Y

Cantera TPY assignments; KPI outputs

Mole fraction dict

gas.mole_fraction_dict()

Sparse; zero species omitted

Mass fraction dict

gas.mass_fraction_dict()

Sparse; zero species omitted


Molecular weight#

Cantera returns molecular weight in kg/kmol (= g/mol numerically). Do not multiply by 1 000 when converting to SI mass; gas.mean_molecular_weight is already in kg/kmol, and Cantera’s internal mass fractions / mole fractions are dimensionless.


Geometry#

Quantity

Unit

Length, diameter

m

Volume

Surface area

Absorption coefficient kappa_grey

1/m


Energy#

Quantity

Unit

Notes

Thermal power

kW

Calculation Note display

Heat loss

kW

_heat_loss_kW on RefractoryReactor (DesignPFR) and QuartzTubeReactor (DesignPFRThinShell)

LHV / HHV

MJ/kg (or MJ/Nm³)

heating_values() returns J/kg; divide by 1 000 for display


PFR thermal hypotheses#

Bloc ships PFR reactor kinds. Both attach a ct.Wall between the reactor and an ambient ct.Reservoir and both surface that wall in the post-solve visualization network; they only differ in how local gas temperature drives the radial heat loss.

See docs/reactor_types.md for the full physics description and the two-layer engine/model architecture.

Kind

Hypothesis

Solver

When to use

RefractoryReactor (legacy: DesignPFR)

Homogeneous shell — wall isothermal, total loss depends on spatial mean T_mean

Forward-Backward Sweep

SPRING reactors and any insulated, thick-shell vessel where axial wall conduction smears gradients

QuartzTubeReactor (legacy: DesignPFRThinShell)

Thin shell — heat loss depends on local T(z)

Single-pass spatial ODE (no FBS)

Quartz-tube reactors, lab tube furnaces, and any reactor where axial wall conduction is negligible

TubeFurnace (legacy: DesignTubeFurnace)

Prescribed wall-temperature profile — forced convection + grey-gas radiation

Adaptive net.step() march

Electrically heated tube furnaces with known T_wall(z) profile

Both kinds reuse thermal_resistance_stack() to build the radial resistance series (insulation layers + external convection/radiation), so the T_amb, eps_wall, T_wall_hyp, and insulation STONE fields have identical meaning across the two kinds.


Time#

Quantity

Unit

Advance time (advance_time)

s

Residence time

s

Simulation time axis

s