Age of air measures the time elapsed since air entered a space and is a basic ventilation metric. Boreas solves a scalar transport equation with zero age at the inlet and a source of 1 s/s along the flow. In a uniform plug-flow duct, the solution increases linearly with travel distance. This case directly checks the age-of-air transport equation, inlet condition, and outlet average against an analytical solution. The results shown are from Boreas v0.10.0 on CPU; the same decks were also run on GPU for comparison.
Model and boundary conditions
Age is zero at the inlet of the 4 m duct and increases at 1 s/s along the flow. Sidewalls use slip conditions. Schematic; not to scale.
Analytical solution
For steady plug flow at uniform velocity U, only advection and the unit source remain:
With U = 0.1 m/s and duct length L = 4 m, the outlet age is L/U = 40 s and the duct-wide average is 20 s. Slip conditions on the four lateral walls remove cross-sectional variation, so this solution applies directly.
Simulation setup
| Item | Boreas setting |
|---|---|
| Duct | Length 4 m, cross-section 0.2 × 0.2 m, slip conditions on all four lateral walls |
| Flow | Uniform inlet velocity U = 0.1 m/s, pressure outlet, residence time L/U = 40 s |
| Age of air | Model enabled, inlet age 0, source 1 s/s, initial age 0 |
| Mesh | Uniform h = 0.05 m (80 × 4 × 4 = 1,280 cells) |
| Time | dt = 0.25 s, 200 s total (five residence times), monitors every 5 s |
| Advection | Both semi-Lagrangian and upwind |
| Comparison | Four cell-center probes at x = 0.075, 1.075, 2.075, and 3.075 m; outlet mass average and duct volume average at steady state |
Axial profile

Top: four steady-state probes and the outlet mass average at x = 4 m. The solid line is the analytical solution; filled and open markers are CPU and GPU results. Bottom: Boreas minus analytical solution. Cell-center probes lie on the half-cell offset h/(2U) = 0.25 s (gray dashed line), while the face-based outlet average has zero offset.
The probes are consistently about 0.25 s above the analytical cell-center values. At steady state, first-order upwind and semi-Lagrangian cell values match the exact solution at the downstream face, x + h/2. The resulting half-cell travel-time offset is h/(2U) = 0.05/0.2 = 0.25 s and scales with mesh spacing. After removing it, probe errors are at most 0.002 s. The outlet mass average is a face value and agrees without this correction. At the first probe, x = 0.075 m, the 0.25 s absolute offset appears as a 33% relative error because the reference age is only 0.75 s.
Transient history

Semi-Lagrangian above, upwind below. Before inlet air arrives (t < x/U), age grows with elapsed time; afterward it stays at the theoretical steady value x/U. The black dashed line is the plug-flow transient solution. Dashed GPU curves overlap the CPU curves.
First-order numerical diffusion spreads the advancing front and delays the approach to steady state, but does not change the final value. The outlet reaches steady state at about 50 s, and all values remain stable through 200 s.
Quantitative results
| Metric | Analytical | Boreas semi | Boreas upwind |
|---|---|---|---|
| Outlet mass average [s] | 40 | 39.9969 | 39.9969 |
| Outlet relative error | — | −0.008% | −0.008% |
| Probe offset, four points [s] | 0.25 (half cell, h/2U) | +0.2484 to +0.2485 | +0.2484 to +0.2485 |
| Duct volume average [s] | 20 (plus 0.25 half-cell offset) | 20.2484 | 20.2485 |
| Maximum GPU − CPU difference at steady monitors [s] | — | 0.0002 | 0.0002 |
Semi-Lagrangian and upwind agree within 0.0001 s. The maximum GPU–CPU difference of 0.0002 s is attributable to single-precision field storage. The half-cell offset is expected to shrink with mesh spacing, but a mesh-refinement study was not performed here. This one-dimensional advection case does not establish age-of-air accuracy in rooms with recirculation or mixing.