Capillary Flow

Quick Start

It is surprisingly tricky to fill a capillary in the required time if it contains some sort of reservoir shape. You need to get Length, Width Radius, Position, Height, Viscosity, Contact Angle right.

The app is a great way to test your intuitions about what affects what. When I first wrote it, my intuitions were shown to be mostly wrong!

Capillary Fill Time

Length L mm
Width μm
Height H μm
Viscosity η cP
SurfTen σ mN/m
Contact Angle θ°
Vmax mm/s
tmax msec
R μm
Y mm
Av. v mm/s
Av. Shear /s
Av. Re
Av. Ca

Filling a capillary of radius r with a liquid of surface tension σ, making a contact angle θ with the wall seems simple enough. However, as the app shows, things are somewhat more complicated than we might like and experience shows that our intuitions are often unreliable. The basic theory and the complications are discussed below.

The capillary pressure pulls in the liquid with a force given by:


The flow at velocity v when the capillary is filled to length l and the liquid viscosity is μ is resisted by the Poiseuille pressure:


So we have the classic Washburn equation (we are assuming a horizontal capillary, so gravity is ignored) for the velocity at this stage of filling and for the time, t, to fill to length L:

`v=(2σcos(θ)r)/(8µl)` and `t=(2μL^2)/(σr)`

But it is more complicated than this:

  1. We are interested here in a rectangular capillary and it might have, say, a circular portion somewhere along it to hold a reagent.
  2. Embarrasingly, the Washburn formula says that the velocity when l=0 is infinite.
  3. Fortunately the "vena contracta" at the mouth provides some resistance to counter the infinity term and also the flow isn't fully developed for a short length so the simple formulae don't work anyway at these short lengths
  4. The contact angle depends on velocity (see the app), so we have to add Dynamic Contact Angle (DCA) terms.

This app lets you play with the various terms to see what effect they have on the velocity, V, and the distance travelled, l, at time, t, along a rectangular capillary of length L, with width W and height (thickness in the z-direction) H. Often the results are rather boring, but, as mentioned above, experience shows that our intuitions about what happens when a key variable is changed are not always accurate!

For the capillary and Poiseuille pressures, the radius, r, is approximated by `1/r=2/W+2/H`.

A circular reservoir of radius R can be placed at position Y. If R is less than the half-width of the capillary it does not show in the diagram.

The graph shows the velocity and distance along the tube as a % of their input values.The mouse readout gives their actual values.

The various outputs may be useful: the total volume of the capillary, the time (t) taken to fill (or if unfilled, tmax), the Average values of velocity (v), Shear, Reynolds (Re), Capillary Number (Ca).

The DCA term (you can turn the option off to see the effect) is calculated via the Van Remoortere approximation via the Capillary Number, `Ca = (vμ)/σ`:

`cos(θ)_"dynamic"= cos(θ)-2(1+cos(θ))Ca^0.5`

The code behind this app was developed many years ago by myself and Prof Phil Gaskell, then at U. Leeds. It has been translated from the original Visual Basic and somewhat simplified. The phrase above: "..experience shows that our intuitions are often unreliable" was amply justified during the project during which the code was developed.