Last updated: 2026-11-04 7 min read

In startup Couette flow, fluid initially at rest between two plates is driven when the upper plate starts moving at speed U at t = 0. Because the flow is independent of the streamwise direction, advection vanishes and momentum reduces to one-dimensional diffusion with a series solution. This directly checks Boreas's diffusion solver, moving-wall condition, and temporal and spatial discretization. The results shown are from Boreas v0.10.0 on CPU; two decks were also run on GPU for comparison.

Model and boundary conditions

couette-flow model and boundary conditions

The upper wall begins moving at 0.1 m/s above initially stationary fluid; the lower wall remains fixed. Plate spacing is 0.1 m. Schematic; not to scale.

Analytical solution

For a channel with only the upper wall moving, ∂u/∂t = ν ∂²u/∂y², with u(0) = 0, u(H) = U, and initially u(y, 0) = 0:

u(y,t)U=yH+∑n=1∞2(−1)nnπ sin⁡ ⁣(nπyH)exp⁡ ⁣(−n2π2νtH2)\frac{u(y,t)}{U} = \frac{y}{H} + \sum_{n=1}^{\infty} \frac{2(-1)^n}{n\pi}\, \sin\!\left(\frac{n\pi y}{H}\right) \exp\!\left(-\frac{n^2\pi^2 \nu t}{H^2}\right)

As t → ∞, the exponential terms vanish and the profile becomes the steady linear solution u = Uy/H.

Simulation setup

ItemBoreas setting
ChannelHeight H = 0.1 m; stationary lower wall; upper wall moves at U = 0.1 m/s from t = 0
Fluidν = 1e-3 m²/s (Re = UH/ν = 10); diffusion time H²/ν = 10 s
MeshUniform h = H/N, with N = 8, 16, 32, and 64
Timedt = 0.001–0.1 s; 30 s total (three diffusion times)
AdvectionSemi-Lagrangian and upwind; both give the same result because advection is zero
ComparisonCenter-column cell velocities against the series solution at the same positions at t = 0.5, 1, 2, 5, and 29.9 s; error reported as RMS/U

Velocity profiles

Boreas startup Couette velocity profiles compared with the series solution

N = 64, dt = 0.001 s. Markers are Boreas cell values (every other cell); solid lines are the series solution. They overlap from the S-shaped profile at νt/H² = 0.05 to the steady linear profile at t = 29.9 s.

Convergence

Boreas error convergence with time step and mesh spacing

Top: reducing the time step at N = 64. Bottom: refining the mesh at dt = 0.001 s. Both show RMS error at t = 1 s; dashed guides have first- and second-order slopes.

dt [s] at N = 640.10.050.020.010.0050.00250.001
RMS error/U at t = 1 s8.75e-34.44e-31.80e-39.31e-44.93e-41.94e-41.41e-4

From dt = 0.1 to 0.005 s, error is proportional to dt, as expected for first-order implicit Euler integration. At dt ≤ 0.0025 s, the N = 64 spatial error of about 1e-4 becomes visible and flattens the curve.

N at dt = 0.001 s8163264
RMS error/U at t = 1 s3.50e-39.31e-42.98e-41.41e-4
Error ratio from previous mesh—3.763.122.11

The error ratio approaches four as N doubles, consistent with second-order centered diffusion. The ratio falls at N = 64 because the remaining temporal error contributes.

CPU–GPU comparison

Center-channel velocity history: CPU, GPU, and series solution

Velocity at y/H = 0.508 for N = 64 and dt = 0.001 s. Semi-Lagrangian and upwind overlap the dashed series solution.

Two decks at N = 64 and dt = 0.005 s were also run on GPU. The maximum GPU–CPU difference over all times and positions is 1.6e-4 U, below the validation error of 4.9e-4 for the same decks.

Quantitative results

MetricValue
RMS error/U at t = 1 s (N = 64, dt = 0.001 s)1.41e-4
Time-step convergence order (dt = 0.1 to 0.005 s)1
Mesh convergence order (N = 8 to 32)Approximately 2
Maximum GPU − CPU difference/U1.6e-4

At steady state (t ≈ 30 s), error is at most 2e-5 U. This floor rises slightly as dt decreases for an unknown reason, but remains one to three orders of magnitude below the errors used for the convergence assessment.