Submit manuscript...
eISSN: 2577-8242

Fluid Mechanics Research International Journal

Research Article Volume 2 Issue 3

Exact solution of plane Poiseuille flow in a channel filled with a porous medium

Amey Joshi

Director of Fidelity Investments, Bangalore, India

Correspondence: Amey Joshi, Director of Fidelity Investments, Pinehurst, Embassy Golf Links business park, Bangalore, 56007, Tel +91-8691-2046,

Received: May 03, 2018 | Published: June 14, 2018

Citation: Joshi A. Exact solution of plane Poiseuille flow in a channel filled with a porous medium. Fluid Mech Res Int. 2018;2(3):131-136. DOI: 10.15406/fmrij.2018.02.00029

Download PDF

Abstract

In this paper, I have presented an analytical solution to the problem of plane Poiseuille flow in a channel filled with a porous medium. Nield et al.,1 have expressed it in terms of elliptic integrals. I express it in an equivalent, but a more conventional form, in terms of Weierstrass elliptic function. I also present the R code to plot the velocity profile and compute the flux.

Introduction

The flow of an incompressible, Newtonian fluid through a porous medium of porosity εε  and permeability KK  is described by the equation2
ut+u.(uε)=(pερ)+νeΔu+F,ut+u.(uε)=(pερ)+νeΔu+F,                                           (1)
whereρρ is the density of the fluid, uu  is the velocity,pp  the pressure,νeνe  the effective viscosity,νν  the kinematic viscosity, ΔΔ denotes the Laplace operator and the total force is
F=FbενKuεF0Kuu.F=FbενKuεF0Kuu.                                                                 (2)
It is a sum of the body force FbFb  and the effect of the porosity of the medium. The geometric functionF0F0 in equation (2) depends only on the porosity and the nature of the solid particle matrix of the porous medium. For a fully developed and steady flow, the left hand side of equation (1) vanishes. Further, if the flow is driven only by a constant pressure gradient and not an external body force, then equation (1) becomes
νeΔuενKuεF0Kuu+εG=0,νeΔuενKuεF0Kuu+εG=0,                                                     (3)
where ρG=pρG=p . I will solve equation (3) for a flow between parallel solid plates with a porous medium between them.

The physical setup

Consider a steady, fully-developed flow of a fluid along the xx  axis between two infinite parallel plates, a distance HH apart. Let the plates concide with planes y=0y=0  and y=Hy=H . If the channel is long enough that the end effects are negligible along most of the channel's length then we can express the fluid's velocity along the xx  axis as u(y)u(y) . Equation (3), in this case, becomes
νeεu''νKuF0Ku2+εG=0,νeεu''νKuF0Ku2+εG=0,                                                      (4)
where u''u''  denotes the second derivative with respect to yy . Since the channel is bounded by solid walls, the usual no-slip boundary conditions apply. I will solve (4) subject to the conditions u(y=0)=0u(y=00)=  and u'(H/2)=0 , that is, the velocity has an extremum (actually, a maximum) at the center of the channel. Nield et al.,1 have given an analytical solution which expresses the coordinate y  as an elliptic integral in the velocity u . I will develop an equivalent solution in which u  is expressed as a Weierstrass elliptic function of y.

The solution

 We convert equation (4) in a non-dimensional form using the relations,
u=uU                                                                                            (5)
y=yH                                                                                           (6)
G=HGU2,                                                                                       (7)
where U  is the velocity at the center of the channel, and the dimensionless quantities
Re=HUν                                                                                        (8)
Da=KH2                                                                                        (9)
J=νeν.                                                                                           (10)
Re , Da  and J  are the Reynold's number, the Darcy number and the viscosity ratio of the flow. Dropping the  subscript for sake of notation clarity, we get,
u''A2u2B2u+C2=0,                                                             (11)
where
A2=F0εReJDa                                                                                  (12)
B2=εJDa                                                                                      (13)
C2=ε2ReGJ                                                                                  (14)
are all positive numbers. Introduce a new variable u1(y) ,
u1(y)=Au(y)+12B2A,                                                                   (15)
so that equation (11) becomes,
u''1Au21+(AC2+B44A)=0,                                                         (16)
Multiplying equation (16) by u'1 , the first derivative of u1(y) with respect to y , and integrating we get,
(u'1)223Au31+2(AC2+B44A)u1+36g3A2=0,                               (17)
where 36g3/A2  is a constant of integration. Introduce yet another variable, u2(y)=(A/6)u1(y) , to transform equation (17) to
(u'2)2=4u3213(A2C2+B44)u2g3.                                           (18)
This equation is of the form,
(u'2)2=4u32g2u2g3,                                                                (19)
where
g2=13(A2C2+B44)                                                                     (20)
Its solution is u2(y)=(y+k1;g2,g3) , where k1  is another constant of integration. The function  is the Weierstrass elliptic function with invariants g2  and g3 .3 Therefore, the solution of (11) is
u(y)=6A2[(y+k1|13(A2C2+B44),g3)B212]                        (21)
The constants g3 and k1  are found using the boundary conditions.

Some properties of Weierstrass elliptic function

The Weierstrass elliptic function is defined as the solution of the differential equation,
['(u)]2=43(u)g2(u)g3,  (22)
where u  is a complex variable and g2  and g3 are complex constants, called invariants of . Weierstrass elliptic function is a doubly periodic function. We follow Lawden4 and call the periods 2ω1  and 2ω3 . There is another half period 2ω2 , where ω2=ω1ω3 . Whittaker et al.,3 denote the fundamental periods by ω1  and ω2  and define ω3=ω1ω2 .) If the constants ej are defined as
ej=(ωj)                                                                                     (23)
then it can be shown that [by Lawden4 p.160] they are solutions of the cubic equation 4s3g2sg3=0 . Further, they are related to the invariants as
g2=4(e1e2+e2e3+e3e1)                                                             (24)
g3=4e1e2e3                                                                                   (25)
Additionally [Lawden4 p.159],
e1+e2+e3=0                                                                               (26)

The discriminant of the cubic equation 4t3g2tg3=0  is D=16(g3227g23) .
If

  1. D>0 , then all roots of 4t3g2tg3=0  are real and distinct.
  2. D=0 , then the roots of 4t3g2tg3=0  are real and not distinct.
  3. D<0 , then 4t3g2tg3=0  has one real root and two complex roots. The complex roots are conjugates of each other.

Theorem 1: If the invariants of Weierstrass elliptic function  are real and if the roots of the cubic 4s3g2sg3=0  are real then ω1  is real and ω3  is imaginary.

Proof: The constants e1,e2,e3  are solutions of the cubic 4s3g2sg3=0 . If they are all real, we can choose them to be such that e1>e2>e3 . Then (22) can be written as
{((u)e1)((u)e2)((u)e3)}1/2=12'(u)
that is,
d(u)4((u)e1)((u)e2)((u)e3)=du
equivalently,
dt4(te1)(te2)(te3)=du,
where t=(u) . Integrating this equation so that u  goes from 0 to U , and hence t  goes from (0)  to (U) , we have two possibilities because of the double pole of  at the origin,
(U)dt4(te1)(te2)(te3)=U                                              (27)
or
(U)dt4(te1)(te2)(te3)=U                                              (28)

Choose U=ω1  in equation (27), so that
ω1=(ω1)dt4(te1)(te2)(te3)=e1dt4(te1)(te2)(te3)
Since e1  is the largest root of 4(te1)(te2)(te3)=4t3g2tg3=0 , throughout the path of integration, the integrand stays finite. Further, the integrand is always real and hence ω1  is real.

Choose U=ω3  in equation (28), so that
ω3=(ω3)dt4(te1)(te2)(te3)=e3dt4(te1)(te2)(te3)
or,
ω3=ie3dt4(e1t)(e2t)(e3t)
Since e3  is the smallest root of 4(te1)(te2)(te3)=4t3g2tg3=0 , throughout the path of integration, the integrand stays finite. Further, the integrand is always real and hence ω3  is imaginary.

Remark: The converse of theorem 1 is also true [Lawden4 p.163]. That is, if ω1  is real and ω3  is imaginary then ej , the roots of 4s3g2sg3=0  are all real.

If ω1  is real and ω3  is imaginary then section 6.11 shows that4
Theorem 2:  takes real values on the the rectangle OXAY  in Figure 1, where O(0,0),X(ω1,0),A(ω1,ω3)  and Y(0,ω3) . Further, if u  is taken round OXAY , (u)  decreases from +  at O  to e1  at X , further decreases to e2  along XA , to e3  along AY  and finally to  as it reaches the origin along YA .

Figure 1 Positive discrimimant.

If the invariants g2 and g3  of the Weierstrass elliptic function are real but the discriminant of the cubic equation 4t3g2tg3=0  is negative, then referring to Figure 2 or Handbook of Mathematical Functions with Formulas5, the function  takes value +  at O . Its value decreases monotonically upto ω2 , where it is e2  and then rises once again to +  at 2ω2 . If the function has a singularity at the origin, it will have it at points 2ω2 , 2ω1  and 2ω3 because of its periodicity. The function also takes real values along the segment BD .

Figure 2 Negative discrimimant.

Finding g3andk1

Since the velocity has an extremum at the center of the channel, its derivative with respect to y  vanishes there. Therefore, derivatives of u1 and u2  also vanish at the center of the channel. If the magnitude of the non-dimensional velocity u  at the center is uc=1  then we immediately have uc1=A+B2/(2A)  and
uc2=A26+B212                                                                                (29)
Since at the center,
4[uc2]3g2uc2g3=0,
uc2  is one of the roots of the cubic equation 4s3g2sg3=0 . If e1,e2,e3  are the roots, without loss of generality, let
uc2=e2                                                                                           (30)
From these equations (24) to (26) we readily get,
e1=e2+g23e222                                                                     (31)
e3=e2g23e222,                                                                   (32)
Knowing e1,e2 and e3 equation (25) gives,
g3=4e1e2e3                                                                                   (33)
We will now use the second boundary condition u(0)=0  to find k1 . The equation u(0)=0  is equivalent to, (0+k1;g2,g3)=B2/12  or
k1=1(B212|g2,g3)                                                                    (34)

Computation of the velocity profile

The inverse of Weiestrass elliptic function can be readily evaluated on the wolframalpha website using the Mathematica® function.

Listing 1: Evaluation of 1 ,

InverseWeierstrassP[B^2/12, g_2, g_3] 

Let us assume that the equation 4s3g2sg3=0  has a positive discriminant. Then we saw in section 3.1 that  will take real values on the the rectangle OXAY  where O(0,0),X(ω1,0),A(ω1,ω3)  and Y(0,ω3) . Further, if u  is taken round OXAY , (u)  decreases from +  at O  to e1  at X , further decreases to e2  along XA , to e3  along AY  and finally to  as it reaches the origin along YA . Thus, k1  will lie on OX is it is greater than e1  or on XA  is it is between e1  and e2 or on AB  if it is less than e2 . It cannot be less than e3  because e3  is always less than zero while B2/12>0 .

Supposing e1B2/12e2 , that is, k1  lies on XA . Then we have to align the imaginary axis along the y  axis and plot values of
6A2(z|13(A2C2+B44),k0A236)12B2A2
where the complex variable z  is z=ω1+z0 , where z0  ranges from 0  to ±2Im(k1)i . Since k1  lies on XA , ω1  is identical to Rek1  and hence z=Re(k1)+z0 . The following R code, with the library 'elliptic' was used to generate the velocity profile of Figure 3.6

Listing 2: Velocity profile of flow in porous medium

Figure 3 Velocity profile for flow in a porous channel bounded by flat plates.

library(elliptic)
epsilon <- 0.1   # Porosity
Re <- 0.1          # Reynold's number
Da <- 5e-1       # Darcy number
J <- 1               # Viscosity ratio
G <- 1e-4        # Pressure gradient/density

F0 <- 1.75/sqrt(150 * epsilon^3)  # Geometric function

# Calculation of A, B, C
A <- sqrt((F0 * epsilon * Re)/(J * sqrt(Da)))
B <- sqrt(epsilon/(J * Da))
C <- sqrt(epsilon^2 * Re * G/J)

g2 <- (A^2*C^2 + B^4/4)/3
u2_center <- A^2/6 + B^2/12

# Choose e2 as u2_center
e2 <- u2_center

e1 <- (-e2 + sqrt(g2 - 3*1i*(-1i)*e2^2))/2
e3 <- (-e2 - sqrt(g2 - 3*1i*(-1i)*e2^2))/2

g3 <- 4*e1*e2*e3

# Get half periods
Omegas <- half.periods(g = c(g2, g3))

# Recreate e's so that they are consistent with R
es <- e1e2e3(g = c(g2, g3))

# Computed using Mathematica
k1 <- 8.020971603238442 + 3.116271691054093i

# Observe that k1 is equal to Omegas[2].

# Print Omegas. Let omega1 be the real period and omega3 be the imaginary period.
#
# We want to plot the Weierstrass function along the imaginary # axis. We know that P(omega1) = e1 while e1 >= P0. The function # P falls below e1 both above and below omega1 if we move along # the imaginary axis. If it takes a value B^2/12 a distance Im(k1) # above omega1, it will take the same value a distance Im(k1) below # omega1. Therefore, we plot the function from omega1 - 1i*Im(k1) # omega1 + 1i * Im(k1).

z <- Omegas[2] + seq(from = 0, to = -2*Im(k1), len = 100)*1i y <- -Im(z)

u <- 6/A^2*( P(z + Im(k1)*1i, g = c(g2, g3)) - B^2/12)

# We choose real part alone. Check that the imaginary part # is very small. Use the command max(abs(Im(u))) to check # it.

# If the imaginary part is indeed quite small xl <- 'Dimensionless velocity' yl <- 'y' ml <- 'Velocity profile with porous media' plot(Re(u), y, type = 'l', xlab = xl, ylab = yl, main = ml)

The same code can be used if the equation 4s3g2sg3=0  has a negative discriminant and k1  is complex. In the event k1  is real, the code should be modified so that the real axis is along the y  axis.

When we introduced the non-dimensional variables, we defined y=y/H . Therefore, y  should range from 0 to 1. However, we notice in Figure 3 that it does not. We will introduce another transformation that brings the non-dimensional displacement variable between 0 and 1 after proving its validity.

Theorem 3: If we introduce a new non-dimensional displacement variable ˜y  defined as
˜y=yα,
where α is a positive real number then this transformation keeps the form of equation (11) unchanged.

Proof: For sake of clarity, let us write the derivatives in full and re-introduce the  subscript for non-dimensional variables. Thus, equation (11) is written as
d2udy2A2u2B2u+C2=0  (35)
If the non-dimensionalization of y  is done with αH , where α  is a positive real number then
˜y=yαH=yα
If f  is a function of y  then
dfdy=dfd˜yd˜ydy=1αdfd˜y
and hence
d2udy2=1α2d2ud˜y2
If we denote the new dimensionless numbers with a tilde on top then from equations (8) to (10),
˜Re=αRe                                                                                       (36)
˜Da=Daα2                                                                                       (37)
˜J=J                                                                                             (38)

The new pressure gradient is ˜G=αG  while the new constants ˜A , ˜B  and ˜C  become
˜A2=F0ε˜Re˜J˜Da=α2A2                                                                      (39)
˜B2=ε˜J˜Da=α2B2                                                                         (40)
˜C2=ε2˜Re˜G˜J=α2C2                                                                     (41)

Therefore, equation (35) becomes,
1α2d2ud˜y2˜A2α2u2˜B2α2u+˜C2α2=0
or
d2ud˜y2˜A2u2˜B2u+˜C2=0
The vertical axis of the graph in Figure 3 extends from 0  to 2Im(k1) . To shrink it to 0  to 1 , we choose α=2*Im(k1) , in this case 6.232543 . After changing the constants A , B  and C  we proceed in similar fashion as before to get the plot in Figure 4.

Figure 4 Rescaled velocity profile for flow in a channel bounded by flat plates.

The code to generate the plot is

Listing 3: Velocity profile of flow in porous medium

library(elliptic)

epsilon <- 0.1     # Porosity
Re <- 0.1            # Reynold's number
Da <- 5e-1          # Darcy number
J <- 1                 # Viscosity ratio
G <- 1e-4           # Pressure gradient
F0 <- 1.75/sqrt(150 * epsilon^3)              # Geometric function

# Re-normalize y using this factor
alpha <- 6.232543

# Calculation of A, B, C
# However, for sake of simplicity, we call the variables A, B and C.
A <- sqrt((F0 * epsilon * Re)/(J * sqrt(Da))) * alpha
B <- sqrt(epsilon/(J * Da)) * alpha
C <- sqrt(epsilon^2 * Re * G/J) * alpha

g2 <- (A^2*C^2 + B^4/4)/3
u2_center <- A^2/6 + B^2/12
# Choose e2 as u2_center
e2 <- u2_center
e1 <- (-e2 + sqrt(g2 - 3*1i*(-1i)*e2^2))/2
e3 <- (-e2 - sqrt(g2 - 3*1i*(-1i)*e2^2))/2

g3 <- 4*e1*e2*e3

Omegas <- half.periods(g = c(g2, g3)) print(Omegas)

# Computed using Mathematica
k1 <- 1.286949924601859 + 0.5000000786725393i
P(k1, g = c(g2, g3), give.all.3 = T)

z <- Re(k1) + seq(from = 0, to = -2*Im(k1), len = 100)*1i
y <- -Im(z)
u <- 6/A^2*( P(z + Im(k1)*1i, g = c(g2, g3)) - B^2/12 )

# We choose real part alone. Check that the imaginary part # is very small. Use the command max(abs(Im(u))) to check # it.
xl <- 'Dimensionless velocity'
yl <- 'Dimensionless y'
ml <- 'Velocity profile with porous media' plot(Re(u), y, type = 'l', xlab = xl, ylab = yl, main = ml)

To compare the flow profiles with and without porous medium we choose the pressure gradient in the latter case so that the flow has the same peak velocity as in the former case. If we run the code in listing 4 after the one in listing 3, we can have the two profiles in the same plot as shown in Figure 5.

Listing 4: Comparison of velocity profiles

# To compare flows with and without porous media,
# adjusting the pressure gradient in the second
# case so that they have the same maximum velocity.
umax <- max(abs(Re(u)))
G.eq <- 2*mu*umax/(Im(k1)^2)
w.eq <- G.eq/mu * y * (Im(k1) - y/2)
xl <- 'Dimensionless velocity'
yl <- 'Dimensionless y'
ml <- 'Comparing flows with and without porous medium.'
plot(Re(u), y, type = 'l', col = 'blue', xlab = xl, ylab = yl, main = ml)

lines(w.eq, y, col = 'red')
legend.list <- c('With porous medium', 'Without porous medium'
legend(x = 'topright', legend.list, lty = c(1, 1), lwd=c(2.5,2.5),col=c('blue','red'))

Calculation of flux

The flux of volume of fluid past a section of the channel is probably more important in practice than the velocity profile. In this section, I will calculate the flux in the channel. If s  denotes the transverse dimension of the channel then the flux Q  is Q=h0uds,

where h  is the width of the channel and u  is velocity of the fluid. If the channel does not have porous medium then
u=G2μs(hs)
and hence the flux Q0 is
Q0=Gh312μ                                                                                       (42)
On the other hand if the channel is stuffed with porous medium then, the flux Q1 is
Q1=h06A2[(s+k1|13(A2C2+B44),g3)B212]ds                    (43)
In terms of non-dimensional parameters h=1  and hence Q0=G/(12μ) . If we adjust pressure gradient so that peak velocity matches with that when porous medium is present, then code listing 5 gives Q0=0.6665793 . Carrying out the integration in equation (43) and noting that s=iy , we get Q1=0.6321661 . As expected from Figure 5, Q1<Q0 . Note that listing 5 is meant to be run after running listing (4).

Figure 5 Comparison of velocity profiles.

Listing 5: Calculation of flux,

# Flux in presence of porous medium
# up denotes the 'velocity function' when porous medium is present
up <- function(x) {6/A^2*( P(x + Im(k1)*1i, g = c(g2, g3)) - B^2/12)}

# We multiply the integral by i because the integral was carried out along the imaginary axis.
Q1 <- integrate.segments(up, c(z[1], z[100]), close = F)*1i

# Flux in absence of porous medium
Q0 <- G.eq/(12*mu)

There is another way to compute the flux of flow in a porous medium. It uses the relation between Weierstrass  function and Weierstrass (not Riemann) ζ function.4
(y)=ζ'(y)

(44)

Therefore, we get an analytical expression for Q1 ,
Q1=6A2[ζ(k1|g2,g3)ζ(1+k1|g2,g3)]B22A2                          (45)

The library 'elliptic' allows us to evaluate Weierstrass ζ  function. The listing 5, if run after listing 5 computes
Q1=0.6321664 .6

Listing 6: Another way to compute flux

# We calculate the two terms in equation (45) separately.
Q11 <- 6/A^2*(zeta(z[1] + Im(k1)*1i, g = c(g2, g3)) - zeta(z[100] + Im(k1)*1i, g = c(g2, g3)))
Q12 <- B^2/(2*A^2)*(z[100] - z[1])

# We multiply the result by i because the integral was carried out along the imaginary axis.
Q1.using.zeta <- (Q11 - Q12)*1i

Acknowledgements

None.

Conflict of interest

Author declares there is no conflict of interest in publishing the article.

References

Creative Commons Attribution License

©2018 Joshi. This is an open access article distributed under the terms of the, which permits unrestricted use, distribution, and build upon your work non-commercially.