Law of Hagen-Poiseuille
Module: tutorials.06_fluid.01_HagenPouseille_Stationary.run
Section author: Elias Karabelas <elias.karabelas@medunigraz.at>
This example demonstrates a simple application for fluid dynamics in a straight cylindrical pipe.
The law of Hagen-Poiseuille is a physical law that gives the
pressure drop for an incompressible Newtonian fluid in the laminar regime flowing through a long cylindrical pipe of constant cross section. This geometric
setup is depicted in figure Fig. 166.
The law states that
where
For the derivation we will use the Navier-Stokes equations
First we assume that and
constant. To derive Hagen-Poiseuille’s law we will rewrite the Navier-Stokes
equations in cylindrical coordinates
(65)
Additionally the following is assumed
First with this assumptions the continuity equation (fourth line of (65)) is trivially fulfilled. Further it follows that
(66)
From this we can deduce that . Plugging this into the last line of (66) we can solve for
by twice integrating and get
with some arbitrary integration constants . To get a closed representation we will use the following
observations
The first obervation yields and the second yields that
. Putting all
together we get a closed expression for
As a last assumption, let $p$ be decreasing linearly from to
yielding
. Now we can calculate the volumetric flux
through the cross section of the cylinder as
which gives the Law of Hagen-Poiseuille.
For the experiments we choose a cylindrical pipe with . We will vary the pressure drop
as well as the viscosity
. For simplicity we assume that
. We have three
different discretizations (coarse, medium, fine). The coarse discretization has a maximal edge length of
, the medium has
, and the fine has
.
![]() |
![]() |
![]() |
|
---|---|---|---|
Experiment 1 | 1.0 | 0.01 | 0.625 |
Experiment 2 | 5.0 | 0.01 | 3.125 |
Experiment 3 | 10.0 | 0.01 | 6.25 |
Experiment 4 | 15.0 | 0.01 | 9.38 |
Experiment 5 | 1.0 | 0.001 | 62.5 |
Experiment 6 | 5.0 | 0.001 | 312.5 |
Experiment 7 | 10.0 | 0.001 | 625.0 |
Experiment 8 | 15.0 | 0.001 | 937.5 |
The results for the coarse discretization are depicted in Table Tab. 22, the results for the
medium discretization are depicted in Table Tab. 23, and the results for the fine discretization
are depcited in Table Tab. 24. One can clearly see the influence of the Reynolds number on the
accuracy of the numeric solution. For in a cylindrical pipe the assumptions for the law
of Hagen-Poiseuille are not longer valid.
To run your own validation experiment just type in the command
./run.py --discretization TYPE --mu VALM --rho VALR --pressureDrop VALP --np NP
Here TYPE can be either coarse, medium or fine. This relates to the meshes used. The value VALM is the
value for the dynamic viscosity of the fluid in Pascal seconds. Value VALR is the value for the fluid
density
in kilogram per cubic meters. VALP denotes the value for the pressure drop
given in Pascal. At the inflow a value of
will be prescribed and at the outflow a value of
. Last, NP stands for the number of processors.
The above code uses the standard meshes provided with this run script. This cylindrical mesh has the default length
, and default radius
. You can also generate your own mesh. This is achieved via the
flags:
./run.py --discretization TYPE --mu VALM --rho VALR --pressureDrop VALP --np NP --generate 1 --radius R --length L
--radiusfactor HR
Here, R denotes the radius of your cylinder in centimeter, L denotes the length of your cylinder in meter and
HR gives the factor for calculating the average edgelength in the mesh. It should be between zero and one. The edgelength is calculated as
. To use this functionalty you need to have meshtool in your search path as well as gmsh.
The software package gmsh can be downloaded from here. Depending on the chosen parameters the
generation of the meshes can take some time.
Coarse
![]() |
![]() |
![]() |
|
---|---|---|---|
coarse (1) | 4.8157e-04 | 4.9087e-04 | 0.0190 |
coarse (2) | 2.4077e-03 | 2.4544e-03 | 0.0190 |
coarse (3) | 4.8157e-03 | 4.9087e-03 | 0.0190 |
coarse (4) | 7.2243e-03 | 7.3631e-03 | 0.0188 |
coarse (5) | 4.5198e-03 | 4.9087e-03 | 0.0792 |
coarse (6) | 2.0044e-02 | 2.4544e-02 | 0.1833 |
coarse (7) | 3.6429e-02 | 4.9087e-02 | 0.2579 |
coarse (8) | 5.0822e-02 | 7.3631e-02 | 0.3098 |
Medium
![]() |
![]() |
![]() |
|
---|---|---|---|
medium (1) | 4.8869e-04 | 4.9087e-04 | 0.0044 |
medium (2) | 2.4435e-03 | 2.4544e-03 | 0.0044 |
medium (3) | 4.8875e-03 | 4.9087e-03 | 0.0043 |
medium (4) | 7.3321e-03 | 7.3631e-03 | 0.0043 |
medium (5) | 4.8394e-03 | 4.9087e-03 | 0.0141 |
medium (6) | 2.3317e-02 | 2.4544e-02 | 0.05 |
medium (7) | 4.5841e-02 | 4.9087e-02 | 0.0661 |
medium (8) | 6.7741e-02 | 7.3631e-02 | 0.08 |
Fine
![]() |
![]() |
![]() |
|
---|---|---|---|
fine (1) | 4.9044e-04 | 4.9087e-04 | 0.0009 |
fine (2) | 2.4523e-03 | 2.4544e-03 | 0.0009 |
fine (3) | 4.9046e-03 | 4.9087e-03 | 0.0008 |
fine (4) | 7.3573e-03 | 7.3631e-03 | 0.0008 |
fine (5) | 4.9081e-03 | 4.9087e-03 | 0.0001 |
fine (6) | 2.3535e-02 | 2.4544e-02 | 0.0411 |
fine (7) | 4.6091e-02 | 4.9087e-02 | 0.0610 |
fine (8) | 6.9728e-02 | 7.3631e-02 | 0.0530 |