Viscous Flow

Real fluid behavior - friction, boundary layers, and turbulence

Introduction

Real fluids exhibit viscosity - internal resistance to deformation due to molecular momentum transfer. Viscous effects cause energy dissipation, velocity gradients near surfaces (boundary layers), and fundamentally different flow behavior than ideal fluids.

The Navier-Stokes equations, which include viscous terms, are the complete governing equations for Newtonian fluid flow - one of the most important and challenging equations in physics.

Viscosity

Newton's Law of Viscosity

For a Newtonian fluid, shear stress is proportional to velocity gradient:

$$\tau = \mu \frac{du}{dy}$$

μ = dynamic viscosity [Pa·s = kg/(m·s)]. This linear relationship defines Newtonian fluids.

Dynamic Viscosity (μ)

Absolute measure of fluid's resistance to shear. Water: ~0.001 Pa·s, Air: ~1.8×10⁻⁵ Pa·s

Kinematic Viscosity (ν)

ν = μ/ρ [m²/s]. Ratio of viscous to inertial effects. Appears in Reynolds number.

Non-Newtonian Fluids

Shear-thinning

Viscosity decreases with shear rate (paint, blood, ketchup)

Shear-thickening

Viscosity increases with shear rate (cornstarch in water)

Bingham Plastic

Requires yield stress to flow (toothpaste, mayonnaise)

Navier-Stokes Equations

The complete equations of motion for incompressible Newtonian fluids:

$$\rho\left(\frac{\partial \vec{v}}{\partial t} + (\vec{v} \cdot \nabla)\vec{v}\right) = -\nabla p + \mu \nabla^2 \vec{v} + \rho \vec{g}$$
$$\nabla \cdot \vec{v} = 0 \quad \text{(incompressibility)}$$

Component Form (Cartesian)

$$\rho\left(\frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} + w\frac{\partial u}{\partial z}\right) = -\frac{\partial p}{\partial x} + \mu\left(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} + \frac{\partial^2 u}{\partial z^2}\right) + \rho g_x$$

Similar equations for v and w components. These coupled, nonlinear PDEs are notoriously difficult to solve - proving existence and smoothness of solutions is a Millennium Prize Problem!

Why So Difficult?

  • Nonlinearity: The convective term (v·∇)v couples velocity components
  • Coupling: Pressure and velocity are coupled through continuity
  • Turbulence: At high Re, solutions become chaotic with wide range of scales

Reynolds Number and Flow Regimes

Reynolds Number

The ratio of inertial to viscous forces - the key dimensionless parameter:

$$Re = \frac{\rho v L}{\mu} = \frac{v L}{\nu} = \frac{\text{Inertial forces}}{\text{Viscous forces}}$$

v = characteristic velocity, L = characteristic length, ν = kinematic viscosity

Flow Regimes

Laminar Flow

Smooth, orderly layers sliding past each other

  • • Pipe flow: Re < 2300
  • • Flat plate: Rex < 5×10⁵
  • • Viscous forces dominate
  • • Predictable, steady (often)

Turbulent Flow

Chaotic, irregular motion with eddies

  • • Pipe flow: Re > 4000
  • • Flat plate: Rex > 5×10⁵
  • • Inertial forces dominate
  • • Enhanced mixing, higher friction

Transition Region

2300 < Re < 4000 for pipes - flow can be either laminar or turbulent depending on disturbances. Hysteresis effects possible.

Pipe Flow

Laminar Pipe Flow (Hagen-Poiseuille)

For fully developed laminar flow in a circular pipe:

$$u(r) = \frac{R^2}{4\mu}\left(-\frac{dp}{dx}\right)\left(1 - \frac{r^2}{R^2}\right) = u_{max}\left(1 - \frac{r^2}{R^2}\right)$$

Parabolic velocity profile. Maximum velocity at centerline is twice the average.

$$Q = \frac{\pi R^4}{8\mu}\left(-\frac{dp}{dx}\right) = \frac{\pi R^4 \Delta p}{8\mu L}$$

Flow rate proportional to R⁴ - halving diameter reduces flow 16×!

Friction Factor

Dimensionless pressure drop (Darcy-Weisbach equation):

$$\Delta p = f \frac{L}{D} \frac{\rho v^2}{2} \quad \text{where} \quad h_f = f\frac{L}{D}\frac{v^2}{2g}$$

Laminar

$$f = \frac{64}{Re}$$

Turbulent (Smooth)

$$f \approx 0.316 Re^{-1/4}$$

Blasius correlation for Re < 10⁵

Moody Diagram

The famous chart relating friction factor f to Reynolds number Re and relative roughness ε/D. Essential for pipe flow calculations. Uses Colebrook-White equation for turbulent flow with roughness effects.

Boundary Layers

Near solid surfaces, viscous effects create a thin boundary layer where velocity varies from zero (at wall, no-slip) to the free-stream value. Outside this layer, the flow can often be treated as inviscid.

Flat Plate Boundary Layer (Blasius)

For laminar flow over a flat plate:

$$\delta = \frac{5x}{\sqrt{Re_x}} \quad \text{where} \quad Re_x = \frac{U_\infty x}{\nu}$$

Boundary layer thickness grows as √x. At higher Rex, the layer is thinner.

Wall Shear Stress

$$\tau_w = 0.332 \rho U_\infty^2 Re_x^{-1/2}$$

Skin Friction Coefficient

$$C_f = \frac{0.664}{\sqrt{Re_x}}$$

Boundary Layer Thickness Definitions

δ (99%)

Distance where u = 0.99U

δ* (Displacement)

Effect on outer flow: δ* = ∫(1-u/U)dy

θ (Momentum)

Momentum deficit: θ = ∫(u/U)(1-u/U)dy

Boundary Layer Separation

Adverse pressure gradients (dp/dx > 0) can cause flow reversal near the wall, leading to boundary layer separation. This creates wakes, increases drag dramatically, and can cause stall in airfoils.

Turbulence

Turbulent flows exhibit chaotic, irregular fluctuations with a wide range of length and time scales. Direct simulation (DNS) of all scales is often impractical, leading to modeling approaches.

Reynolds Decomposition

Split velocity into mean and fluctuating parts:

$$u = \bar{u} + u' \quad \text{where} \quad \bar{u'} = 0$$

Reynolds-Averaged Navier-Stokes (RANS)

Time-averaging introduces Reynolds stresses:

$$\rho\left(\frac{\partial \bar{u}_i}{\partial t} + \bar{u}_j\frac{\partial \bar{u}_i}{\partial x_j}\right) = -\frac{\partial \bar{p}}{\partial x_i} + \mu\nabla^2\bar{u}_i - \rho\frac{\partial \overline{u'_i u'_j}}{\partial x_j}$$

The Reynolds stress tensor -ρu'iu'j requires closure models (k-ε, k-ω, etc.)

Kolmogorov Scales

Smallest scales η = (ν³/ε)1/4 where dissipation occurs. Energy cascades from large eddies to small ones.

Turbulent Viscosity

Eddy viscosity μt models enhanced mixing: τturb = μt ∂ū/∂y

Interactive Simulations

Poiseuille Flow: Velocity Profile and Flow Rate

Python
script.py46 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

Reynolds Number and Boundary Layer Thickness

Fortran
program.f9057 lines

Click Run to execute the Fortran code

Code will be compiled with gfortran and executed on the server

Detailed Derivations

Derivation: Plane Couette Flow

1

Consider flow between two infinite parallel plates separated by distance h. The bottom plate is stationary and the top plate moves with velocity U. Flow is steady, fully developed, incompressible, with no pressure gradient.

2

Simplify the x-momentum Navier-Stokes equation. Fully developed means ∂u/∂x = 0. Steady means ∂u/∂t = 0. No pressure gradient: ∂p/∂x = 0. No gravity in x. Only u(y) is nonzero:

$$0 = \mu\frac{d^2u}{dy^2}$$
3

Integrate twice:

$$\frac{du}{dy} = C_1 \implies u(y) = C_1\,y + C_2$$
4

Apply boundary conditions: u(0) = 0 (no-slip at bottom) and u(h) = U (no-slip at top):

$$C_2 = 0, \quad C_1 = \frac{U}{h}$$
5

Final velocity profile — linear:

$$\boxed{u(y) = U\,\frac{y}{h}}$$

The shear stress is uniform: τ = μU/h. This is the simplest viscous flow and models lubrication, bearings, and viscometry.

Derivation: Hagen-Poiseuille Flow in a Pipe

1

For steady, fully developed, axisymmetric flow in a pipe of radius R, the Navier-Stokes equation in cylindrical coordinates (r, θ, z) reduces to:

$$0 = -\frac{dp}{dz} + \mu\frac{1}{r}\frac{d}{dr}\!\left(r\frac{du}{dr}\right)$$

where u = u(r) is the axial velocity and dp/dz = −ΔP/L = const.

2

Rearrange and integrate once in r:

$$\frac{d}{dr}\!\left(r\frac{du}{dr}\right) = \frac{1}{\mu}\frac{dp}{dz}\,r \implies r\frac{du}{dr} = \frac{1}{2\mu}\frac{dp}{dz}\,r^2 + C_1$$
3

Boundedness at r = 0 requires C₁ = 0. Integrate again:

$$u(r) = \frac{1}{4\mu}\frac{dp}{dz}\,r^2 + C_2$$
4

No-slip at r = R: u(R) = 0. Substituting dp/dz = −ΔP/L:

$$\boxed{u(r) = \frac{\Delta P}{4\mu L}\left(R^2 - r^2\right)}$$

Parabolic velocity profile. Maximum at centreline: umax = ΔP R²/(4μL).

5

Volume flow rate by integrating over the cross-section:

$$Q = \int_0^R u(r)\,2\pi r\,dr = \frac{\pi\Delta P}{8\mu L}\int_0^R (R^2 - r^2)\,r\,dr$$
6

Evaluating the integral:

$$\boxed{Q = \frac{\pi R^4 \Delta P}{8\mu L}}$$

Hagen-Poiseuille law. Flow rate is proportional to R⁴ — halving the radius reduces flow by a factor of 16.

Derivation: Stokes' Law for Creeping Flow Past a Sphere

1

For very slow flow (Re « 1, "creeping flow"), inertial terms in Navier-Stokes are negligible compared to viscous terms. The governing equations simplify to:

$$\nabla p = \mu\nabla^2\vec{v}, \quad \nabla\cdot\vec{v} = 0$$
2

For flow past a sphere of radius R moving at velocity U (or equivalently uniform flow U past a stationary sphere), assume the solution has axial symmetry. Use a stream function approach in spherical coordinates (r, θ):

$$\psi(r,\theta) = U\sin^2\!\theta\left(\frac{r^2}{2} - \frac{3Rr}{4} + \frac{R^3}{4r}\right)$$
3

The drag has two contributions. Integrating the pressure distribution over the sphere gives the form (pressure) drag. Integrating the shear stress gives the friction drag:

$$F_{\text{pressure}} = 2\pi\mu RU, \quad F_{\text{friction}} = 4\pi\mu RU$$
4

Total drag force (Stokes' law):

$$\boxed{F_D = 6\pi\mu R U}$$

Two-thirds of the drag is friction, one-third is pressure. The drag coefficient is CD = 24/Re. Valid for Re < 1.

Derivation: Blasius Boundary Layer Solution

1

For steady laminar flow over a flat plate at zero incidence, the boundary layer equations (Prandtl, 1904) are:

$$u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} = \nu\frac{\partial^2 u}{\partial y^2}, \quad \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y} = 0$$
2

Blasius introduced the similarity variable and stream function:

$$\eta = y\sqrt{\frac{U_\infty}{\nu x}}, \quad \psi = \sqrt{\nu x U_\infty}\,f(\eta)$$

Then u = Uf'(η) and the two PDEs collapse to a single ODE.

3

The Blasius equation (third-order nonlinear ODE):

$$\boxed{f''' + \frac{1}{2}f\,f'' = 0}$$

BCs: f(0) = 0, f'(0) = 0 (no-slip), f'(∞) = 1 (freestream).

4

Numerical solution shows u/U = 0.99 at η ≈ 5.0, giving the boundary layer thickness:

$$\boxed{\frac{\delta}{x} = \frac{5.0}{\sqrt{Re_x}}}$$
5

Displacement and momentum thicknesses:

$$\delta^* = \frac{1.72\,x}{\sqrt{Re_x}}, \quad \theta = \frac{0.664\,x}{\sqrt{Re_x}}$$

The wall shear stress: τw = 0.332 ρU² Rex−1/2. Skin friction coefficient: Cf = 0.664/√Rex.

Derivation: Critical Reynolds Number for Flow Transition

1

The Reynolds number represents the ratio of inertial to viscous forces. From the Navier-Stokes equations, non-dimensionalise using characteristic scales L, U, ρU² for length, velocity, and pressure:

$$\frac{\partial \vec{v}^*}{\partial t^*} + (\vec{v}^*\cdot\nabla^*)\vec{v}^* = -\nabla^* p^* + \frac{1}{Re}\nabla^{*2}\vec{v}^*$$

where Re = UL/ν. At low Re, the viscous term (1/Re)∇²v dominates; at high Re, the inertial convective term dominates.

2

Pipe flow (Osborne Reynolds, 1883): Reynolds' dye experiment showed laminar flow transitions to turbulent flow. The critical Reynolds number based on pipe diameter D and mean velocity V is:

$$\boxed{Re_{cr} = \frac{V D}{\nu} \approx 2300}$$

Below 2300: laminar. Above ~4000: fully turbulent. The range 2300–4000 is the transition region where intermittent turbulence (puffs, slugs) appears.

3

Flat plate boundary layer: Linear stability analysis of the Blasius profile shows that small disturbances (Tollmien-Schlichting waves) grow when:

$$\boxed{Re_{x,cr} = \frac{U_\infty x_{cr}}{\nu} \approx 5 \times 10^5}$$

This depends on freestream turbulence, surface roughness, and pressure gradients. In very quiet environments, transition can be delayed to Rex > 10⁶.

Velocity Profiles: Couette, Poiseuille & Boundary Layer

Side-by-side comparison of the three fundamental viscous flow velocity profiles.

Couette FlowUy=0y=hu = U(y/h)Poiseuille Flowu_maxu = u_max(1-r²/R²)Boundary LayerU∞δδ/x = 5/√Re_x

Advanced Simulations

Couette & Poiseuille Velocity Profiles

Python
script.py71 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

Blasius Boundary Layer Solution (Numerical)

Python
script.py87 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

Drag Coefficient vs Reynolds Number for a Sphere

Python
script.py88 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server