6. Cylinder wakes
The question
Section titled “The question”Fluid leaving a cylinder carries momentum and vorticity downstream. To describe that process, restore temporal storage and advective momentum transport to the steady model. First inspect the destination; then derive what changed.

The Gallery video follows the same type of observation through successive states. Read the colour scale: vorticity is a signed quantity with units of inverse seconds, not speed.
Restore the missing momentum terms
Section titled “Restore the missing momentum terms”For constant density,
Incompressibility makes the advective divergence equal to in the smooth continuum equations. The product of velocity with itself makes this term nonlinear. Retaining but omitting this transport term gives unsteady Stokes flow; the presence of a time integrator alone does not make it Navier–Stokes flow.
In two dimensions, define scalar vorticity . Taking the curl of momentum for constant properties and a conservative body force yields
Pressure drops out of this interior equation because the curl of a gradient is zero. Pressure remains essential to incompressibility and boundary forces. Viscous wall motion and no-slip conditions are also essential to how vorticity enters the flow; this equation alone is not a complete boundary specification.
Calculate the scales before running
Section titled “Calculate the scales before running”The example uses , mean inlet speed , and . The maximum of its parabolic inlet is . Therefore
Their ratio compares viscous diffusion over one diameter with convection over that diameter. The channel has a different advection scale, approximately at the mean inlet speed. A run lasting one diameter transit is short compared with a channel transit.
The cylinder centre is at , slightly below the channel centre . Exact reflection symmetry is therefore absent in this geometry. In a different, perfectly symmetric setup, an exactly symmetric initial state can conceal an unstable antisymmetric mode until a perturbation is introduced or grows. Record such changes as changes to the experiment.
Read the direct source, then identify the reusable pieces
Section titled “Read the direct source, then identify the reusable pieces”public operator outer_product(input left: spatial[1], input right: spatial[1]): spatial[2] = component(left, 0) * component(right, 1);
public component TransientFlowPastCylinder( support fluid: volume(ambient_dimension = 2), support inlet: boundary(parent = fluid), support outlet: boundary(parent = fluid), support walls: boundary(parent = fluid), support cylinder: boundary(parent = fluid), parameter density: kg / m ^ 3, parameter dynamic_viscosity: kg / (m * s), parameter zero_pressure: kg / (m * s ^ 2), parameter inlet_speed: m / s, parameter channel_height: m) { state velocity: vector<m / s, 2> on fluid; variable pressure: kg / (m * s ^ 2) on fluid; variable force_potential: kg / (m * s ^ 2) on fluid; variable inlet_profile: m / s on fluid;
relation force_definition on fluid { force_potential - zero_pressure = 0; } relation inlet_profile_definition on fluid { inlet_profile - 4 * inlet_speed * coordinate(1) * (channel_height - coordinate(1)) / channel_height ^ 2 = 0; } relation momentum on fluid { density * derivative(velocity) + div(density * outer_product(left = velocity, right = velocity)) - div( 2 * dynamic_viscosity * symmetric_part(grad(velocity)) - isotropic_lift(pressure) ) - grad(force_potential) = 0; } relation incompressibility on fluid { div(velocity) = 0; }
relation inlet_velocity on inlet { trace(velocity) + normal(isotropic_lift(inlet_profile)) = 0; } relation outlet_traction on outlet { normal( 2 * dynamic_viscosity * symmetric_part(grad(velocity)) - isotropic_lift(pressure) ) = 0; } relation wall_velocity on walls { trace(velocity) = 0; } relation cylinder_velocity on cylinder { trace(velocity) = 0; }}Compared with the steady source, velocity is now a state, density is an
explicit parameter, and the momentum relation contains both its derivative and
advective flux. The same Newtonian stress and boundary relations remain visible.
The local outer_product declaration supplies the tensor product used by that
flux.
Open the transient model. After understanding the direct equations, compare the standard inertial-flow component: it packages temporal inertia and viscous balance but omits advective transport. Its shorter name cannot substitute for inspecting which terms it supplies.
Run and interpret physical time
Section titled “Run and interpret physical time”Use the same source installation and extras as
Chapter 5.
From the folder containing .venv and eqiora-source, run:
uv run --no-project --python .venv/bin/python python eqiora-source/examples/python/karman_vortex_street.py --vorticity-png wake.pngThe complete workflow begins from a steady Stokes field, advances 700 steps of , then samples another 200 steps. It saves observations every two steps during the final interval. Thus the final time is and sample spacing is . The warm-up time is part of the physical trajectory, even though most of those states are not retained for plotting.
Read initialization, time stepping and observation code. A short run can exercise the workflow but cannot answer a question about a long-time oscillation. Likewise, increasing video frames per second changes playback; it does not reduce the integration step or lengthen physical time.
Measure force and frequency
Section titled “Measure force and frequency”The force of fluid on the cylinder is opposite to the force of the cylinder on the fluid. With the fluid region’s outward normal at the hole, . The prime emphasizes force per unit span in . The workflow selects the force on the cylinder and computes
is an oscillation period in seconds. The script estimates it from repeated rising crossings of the mean-centred lift signal. Too few crossings leave the estimate undefined; a numerical value from a short window may still depend on startup, window placement and sampling. Examine the trace before interpreting its frequency.
A uniform pressure offset cancels from the force integrated around a closed cylinder because . It also cancels from front-minus-rear pressure. This does not permit changing pressure alone while retaining an incompatible outlet traction.
Compare like physical problems
Section titled “Compare like physical problems”The DFG 2D-2 specification provides the channel geometry and Reynolds-100 comparison problem. Before comparing numbers, inspect its outlet law, initialization and measurement window. Its do-nothing outlet uses , whereas this model prescribes the full symmetric Newtonian traction. Those boundary expressions must not be identified merely because the interior incompressible equations can both be written using a velocity Laplacian.
The present method is MINI/P1 with Backward Euler. Backward Euler adds temporal damping; the selected spatial method and geometric approximation also affect forces and oscillations. A useful next experiment separates these effects: reduce the time step at fixed mesh and physical window, then compare meshes at a suitably small time step. Finally shift or extend the observation window to examine whether the measured oscillation has settled. Visual similarity of two wakes does not answer those quantitative questions.
Exercises
Section titled “Exercises”- Recompute Reynolds number incorrectly using the maximum inlet speed. What value results, and which convention caused the discrepancy?
- A lift trace has a period of at the stated and . Compute its Strouhal number. Treat this as a hypothetical signal.
- Halve the time step while preserving physical warm-up and sampling durations. How must the step counts change? What about the output stride if you want the same physical sample spacing?
- A refined mesh gives a smoother wake but unchanged observation duration. Which possible errors remain unresolved?
Check your reasoning. Exercise 1 gives 150 instead of the mean-speed value 100. Exercise 2 gives . In exercise 3, double both step counts and the output stride. More cells alone do not resolve time discretization or an unsettled observation window.
Previous: Computing incompressible flow · Book map · References and further study