Skip to content
cfd-lab:~/en/posts/2026-07-16-magnus-effect…● online

Translated from the author's Korean original. Read the original (한국어)

NOTE #103DAY THU 유체역학DATE 2026.07.16UPDATED 2026.10.19READ 6 min read#Magnus-Effect#Circulation#Kutta-Joukowski#Vortex#Flow-Phenomena

Why a Spinning Ball Curves — the Magnus Effect and Circulation

Align the spin with the flight axis and the cross product is zero, so the side force drops out. The spin ratio S sets how far the path bends.

In 1742 Benjamin Robins watched musket balls refuse a straight line. Same gun, same powder, same aim. Some rounds went left. Some went right. The shot was spinning as it left the muzzle. Spin and deflection arrived as a pair.

A century later Gustav Magnus fixed the side force in an experiment. A rotating body drifts sideways in a flow. The quantity that writes the size of that force is circulation.

Slide spin from zero into backspin. The upper streamlines crowd together, and the force arrow points up.

Watch the stagnation point drop. Flip the spin and the arrow flips with it.

An old headache called the curving cannonball#

Gunners knew it before Robins. Cannonballs miss. Not only because of wind. Casting tolerances left a gap between the bore and the ball (the period term was windage), and at the moment of firing the ball ricocheted off the barrel wall and picked up an unpredictable spin. That spin bent its flight.

The stakes were high. Ballistics was a calculation that decided the survival of nations. Newton derived a parabolic trajectory in the Principia, but real shot left the parabola. Robins separated that departure experimentally: part of it was air drag, part of it was spin.

The core question is this. Why does spin create a sideways force?

The sideways push comes from circulation#

Start with the magnitude. When a rotating cylinder sits in a uniform stream of speed U∞U_\infty, the sideways force per unit length is astonishingly simple.

L′=ρ U∞ ΓL' = \rho\, U_\infty\, \Gamma

Here ρ\rho is the fluid density, U∞U_\infty the freestream speed, and Γ\Gamma the circulation. This relation is the Kutta–Joukowski theorem that ties lift to circulation. The lift depends only on the circulation. The body's shape enters only through how much circulation it generates.

Circulation is the velocity integrated around a closed loop.

Γ=∮Cu⋅dℓ\Gamma = \oint_C \mathbf{u}\cdot d\boldsymbol{\ell}

u\mathbf{u} is the flow velocity and dℓd\boldsymbol{\ell} is the tangent element along the path. A nonzero circulation means there is a net swirling flow around the body. A rotating cylinder of radius aa and angular speed ω\omega drags the fluid at its surface and builds exactly this net swirl.

Γ=2πa2ω\Gamma = 2\pi a^2 \omega

The direction is fixed by a cross product.

FM∝ω×U∞\mathbf{F}_M \propto \boldsymbol{\omega} \times \mathbf{U}_\infty

ω\boldsymbol{\omega} is the angular velocity vector. This expression is the key that later unlocks the secret of rifling.

Because Γ=2πa2ω\Gamma=2\pi a^2\omega, doubling ω\omega doubles the circulation. The steady side force L′=ρU∞ΓL'=\rho U_\infty\Gamma doubles with it. Shape does not appear in that line. The radius aa enters as a square, so the same spin rate builds circulation faster on a larger ball. The direction is ω×U∞\boldsymbol{\omega}\times\mathbf{U}_\infty. Parallel vectors give a zero product and the side force drops out. The alignment rifling uses later is that one line.

Why spin actually creates circulation#

Where does the circulation come from? The answer lies in viscosity and the no-slip condition (the fluid at a wall moves with the wall).

One face of a spinning ball turns in the same direction as the flow; the opposite face turns against it. On the co-rotating side the surface pushes the boundary layer along, so the flow separates later (delayed separation). On the counter-rotating side the flow separates early. The net result is a wake that tilts to one side.

If the wake tilts downward, the fluid gains downward momentum. By reaction, the ball is pushed upward. That is the essence of the Magnus force. The ball deflects the flow one way and pays for it with a force the other way.

The spin ratio decides how much it curves#

Set the Reynolds number aside for a moment. The dimensionless number that governs the strength of the Magnus effect is the spin ratio.

S=a ωU∞S = \frac{a\,\omega}{U_\infty}

The numerator is the surface speed, the denominator the freestream speed. SS tells you "how many times faster the ball's surface turns than the wind blows." As SS grows, so does the circulation and the lift coefficient. A baseball curveball runs around S≈0.2–0.4S \approx 0.2\text{–}0.4; a hard bent soccer kick is higher.

Let's integrate a simple two-dimensional flight and plot the trajectory. Only drag and the Magnus force go in.

import numpy as np
 
def magnus_trajectory(u0, spin, cm=0.16, cd=0.006, dt=0.012, steps=900):
    # Top-down plane. x is forward, y is sideways.
    pos = np.array([0.0, 0.0])
    vel = np.array([u0, 0.0])   # launched straight
    path = [pos.copy()]
    for _ in range(steps):
        sp = np.hypot(*vel) + 1e-9
        # Magnus: perpendicular to velocity (-vy, vx), sign set by spin
        a_magnus = cm * spin * np.array([-vel[1], vel[0]])
        a_drag   = -cd * sp * vel          # drag: opposite the velocity
        vel = vel + (a_magnus + a_drag) * dt
        pos = pos + vel * dt
        path.append(pos.copy())
        if pos[0] > 30:
            break
    return np.array(path)
 
for s in (0.0, 1.0, 2.0):
    p = magnus_trajectory(14.0, s)
    print(f"spin={s}:  sideways miss = {p[-1, 1]:6.2f} m")
# spin=0.0:  sideways miss =   0.00 m
# spin=1.0:  sideways miss =   3.71 m
# spin=2.0:  sideways miss =   6.90 m

Doubling the spin does not exactly double the miss. When the path curves, the velocity direction changes, so the force direction keeps rotating too. It is nonlinear.

The run uses u0=14u_0=14, cm=0.16c_m=0.16, cd=0.006c_d=0.006, Δt=0.012\Delta t=0.012, at most 900 steps, and stops once x>30x>30. The printout is a sideways miss of 0.00 m at spin 0, 3.71 m at spin 1, and 6.90 m at spin 2. Twice 3.71 is 7.42. The printed 6.90 m is 0.52 m short of that. As soon as the path bends, the Magnus acceleration (−vy,vx)(-v_y, v_x) turns with the velocity. The force is not locked to the original sideways axis, so the miss does not grow linearly. In the spin ratio S=aω/U∞S=a\omega/U_\infty, a smaller denominator raises SS. Drop the launch speed and the same ω\omega bends more. A baseball curveball sits near S≈0.2–0.4S\approx 0.2\text{–}0.4. Reynolds was set aside because the lift line has no Re in it.

Move the spin slider from the left end to the right and drop the launch speed. The blue path flips across the dashed line, and the same spin misses by more.

Move the spin from the left end to the right end and the blue path flips to the opposite side of the dashed no-spin reference. Lower the launch speed and the same spin curves more sharply. The surface speed grows relative to the flow, so SS climbs.

Rifling, the backward solution#

Here comes the paradox. The fix Robins found was not to kill the spin but to control it. Cut spiral grooves into the barrel (rifling) so the round spins about its flight axis.

Why does this work? The Magnus force scales as ω×U∞\boldsymbol{\omega} \times \mathbf{U}_\infty. The spin axis that rifling imposes is the flight direction, so ω\boldsymbol{\omega} is parallel to U∞\mathbf{U}_\infty. When two vectors are parallel, their cross product is zero. The sideways force disappears.

At the same time this axial spin gives gyroscopic stability, like a top. It binds the random spin that the round used to pick up as it tumbled into one fixed axis. The random Magnus vanishes and the round flies straight. Not by removing spin, but by aligning it to the angle where the sideways force is zero.

Miss the flight axis with the rifling spin and the side force stays#

The Magnus force is ω×U∞\boldsymbol{\omega}\times\mathbf{U}_\infty. Rifling that puts the spin axis along the flight direction makes the two vectors parallel, and the cross product is zero. The side force drops out. That axial spin is also gyroscopic stability, like a top. It binds onto one axis the random spin the ball used to pick up off the barrel wall. The spin was not removed. It was turned to the angle where the side force is zero.

Nonzero circulation means a net swirl around the body. A cylinder builds that swirl at the surface as Γ=2πa2ω\Gamma=2\pi a^2\omega. A wake that tilts down gives the fluid downward momentum, and the ball is pushed up. Putting Reynolds in the line that writes the size of this force fights SS. The account of how the Reynolds number splits the scale of a flow belongs in separation, not in the line L′=ρU∞ΓL'=\rho U_\infty\Gamma.

Share if you found it helpful.