A laminar boundary layer develops over a thin plate at zero angle of attack in a uniform free stream. With zero pressure gradient, the velocity profile depends on one similarity variable (Blasius, 1908), and skin friction and displacement thickness have known values. This external-flow case combines wall no-slip, near-wall diffusion, and advection to assess how accurately Boreas's semi-Lagrangian and upwind schemes resolve the boundary layer. Results are from Boreas v0.10.0 on GPU. The finest mesh contains 4.3 million cells; no CPU comparison was run for this case.
Model and boundary conditions
A 1 m/s free stream passes over a no-slip plate beginning at x = 0.2 m. The upstream floor uses a slip condition. Schematic; not to scale.
Similarity solution
For similarity variable η and dimensionless streamfunction f(η):
The velocity is u/U = f′(η). Skin-friction coefficient and displacement thickness are:
A shooting-method solution gives f″(0) = 0.332057, displacement-thickness coefficient 1.7208, and η₉₉ = 4.91, consistent with published values. Blasius is asymptotic as Re_x → ∞; at Re_x = 500–1500, leading-edge and displacement-flow corrections of order Re_x^−1/2 (about 3%) remain.
Simulation setup
| Item | Boreas setting |
|---|---|
| Domain | Two-dimensional slab, x ∈ [0, 1.2] m and y ∈ [0, 0.3] m |
| Boundaries | U = 1 m/s velocity inlet at x = 0; slip floor for x < 0.2 m; no-slip plate for x ∈ [0.2, 1.2] m; pressure outlets at downstream and upper boundaries |
| Fluid | ν = 5e-4 m²/s (plate-end Re_L = 2000); cell Reynolds numbers Uh/ν of 4, 2, and 1 keep upwind numerical viscosity (about Uh/2) at or below physical viscosity |
| Mesh | Uniform h = 2, 1, and 0.5 mm (0.18, 1.08, and 4.3 million cells) |
| Time | dt = 0.004 s, 6 s total (five flow-through times) |
| Advection | Semi-Lagrangian and upwind |
| Comparison | Cell columns 0.25, 0.5, and 0.75 m from the leading edge (Re_x ≈ 500, 1000, 1500); profile RMS of u/u_e versus f′(η) for η < 8, first-cell C_f, and δ* = Σ(1 − u/u_e)h |
The local velocity outside the boundary layer, u_e, is 3–4% above the inlet speed U. The inlet is only 0.2 m upstream of the leading edge, allowing stagnation pressure to reach it and the lower streamlines to enter with greater total head. As with measured boundary layers, comparisons are normalized by local u_e.
Velocity profiles

At h = 0.5 mm, markers (every third cell) show profiles near Re_e = 500, 1000, and 1500; solid lines show Blasius. Semi-Lagrangian is above and upwind below. All three stations collapse onto the similarity profile.
Skin friction

C_f from first-cell wall shear for three meshes and two advection schemes, versus Blasius 0.664/√Re_e. Upwind is nearly mesh independent from 2 mm; semi-Lagrangian approaches it under refinement.
Mesh convergence

At Re_e ≈ 1000: profile RMS error above, with a first-order dashed guide, and C_f error below.
| Advection | h [mm] | u_e/U | Profile RMS/u_e [%] | C_f error [%] | δ* error [%] |
|---|---|---|---|---|---|
| Upwind | 2 | 1.037 | 0.27 | −2.0 | +0.8 |
| Upwind | 1 | 1.037 | 0.19 | −2.1 | +0.3 |
| Upwind | 0.5 | 1.038 | 0.19 | −2.1 | +0.1 |
| Semi | 2 | 1.037 | 0.90 | −5.1 | +2.9 |
| Semi | 1 | 1.037 | 0.43 | −3.4 | +1.2 |
| Semi | 0.5 | 1.036 | 0.25 | −2.6 | +0.4 |
At Re_e ≈ 1000, 0.5 m from the leading edge, upwind is already nearly converged at 2 mm when cell Reynolds number is at most four. The remaining −2% C_f difference comes from the weak adverse pressure gradient and finite-Re corrections, rather than mesh error. Semi-Lagrangian approaches the upwind result at first order as the mesh is refined.
Transient history

Velocity at y = 0.02 m above three streamwise stations (solid upwind, dashed semi-Lagrangian). The upstream probe settles first. Changes from t = 5 to 6 s are 0.06%, 0.3%, and 1% respectively; the last station is still drifting slightly at 6 s.
Quantitative results
| Metric | Value |
|---|---|
| Profile RMS/u_e, upwind h = 0.5 mm at Re_e ≈ 1000 [%] | 0.19 |
| C_f error, upwind at Re_e ≈ 1000 [%] | −2.1 |
| δ* error, upwind at Re_e ≈ 1000 [%] | +0.1 |
| C_f error, upwind at Re_e ≈ 500 and 1500 [%] | +0.8 and −3.6 |
| Semi-Lagrangian mesh convergence order, h = 2 to 0.5 mm | 1 |
| Blasius f″(0), shooting method (published: 0.33206) | 0.332057 |
Interpretation and limits
- u_e exceeds U. With the inlet 0.2 m before the plate, u_e/U = 1.03–1.04 independently of mesh. Raising domain height from 0.3 to 1.2 m increases it to 1.056. Extending the upstream slip section from 0.2 to 0.6 to 1.2 m reduces it from 1.05 to 1.02 to 1.007. Thus the departure from uniform free stream originates near the inlet, not at the upper boundary. Normalizing by u_e makes the profile, δ*, and C_f conclusions insensitive to this setup.
- C_f decreases relative to Blasius downstream: +0.8%, −2.1%, and −3.6% at Re_e ≈ 500, 1000, and 1500 for upwind. This combines a weak adverse pressure gradient (u_e falls from 1.041 to 1.032) with finite-Re corrections.
- Only GPU was run for this case. CPU–GPU comparisons from the same v0.10.0 build are available in the Couette-flow and square-duct pages.