Laminar Flow of Newtonian, Pseudoplastic and Dilatant Fluids in Horizonal Pipe and Annulus
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Acknowledgement :
Since in these laminar flow problems we have split boundary conditions, their resolution is based on the Shooting Method developed in Mathematica by Professor Brian Higgins (Chemical Engineering Department, University of California, Davis, http://www.higgins.ucdavis.edu/chemmath.php  ).

Flow of dilatant, pseudoplastic and Newtonian fluids in a horizontal pipe.

Analytical Solution

(Subscript[v, analytical])[r_] := 
      n/(n + 1) (ΔP/(2 K L))^(1/
              n) R^((n + 1)/
              n) (1 - (r/R)^((n + 1)/n) )

Dilatant Fluid

K = 1 10^-6; n = 2; ΔP = 100; L = 50; 
    R = 0.02;

system[Ω_] = {D[
              r (Subscript[τ, rx])[r], {r, 1}] ==  ΔP/L r, 
          D[(Subscript[v, x])[r], {r, 1}] ==   If[(Subscript[τ, rx])[r] ≥  
                0, -((Subscript[τ, rx])[r]/K)^(1/
                      n), (-(Subscript[τ, rx])[r]/K)^(1/
                    n)], (Subscript[τ, rx])[10^-5] ==  0, 
          (Subscript[v, x])[10^-5] == Ω};
myODEsoln[Ω_] := 
      NDSolve[system[Ω], {(Subscript[v, x]), (Subscript[τ, rx])}, {r, 10^-5, 
          R}]
yend[Ω_?NumericQ] := 
      Flatten[((Subscript[v, x])[r] /. myODEsoln[Ω]) /. 
          r -> R]
bc = FindRoot[
            yend[Ω] == 0, {Ω, 0, 
              0.5}][[1, 2]];

sol1 = myODEsoln[bc]

plt1 = 
      Plot[(Subscript[v, x])[r] /. sol1, {r, 0.00001, R}, 
        PlotStyle -> RGBColor[0, 0, 1]]

Comparing numerical result with analytical solution for dilatant fluid

plt2 = 
      Plot[(Subscript[v, analytical])[r], {r, 0.00001, R}, 
        PlotStyle -> RGBColor[1, 0, 0]]

Show[plt1, plt2]

Pseudoplastic Fluid

K = 1 10^-2; n = 0.5; ΔP = 100; L = 10; 
    R = 0.02;

system[Ω_] = {D[
              r (Subscript[τ, rx])[r], {r, 1}] ==  ΔP/L r, 
          D[(Subscript[v, x])[r], {r, 1}] ==   If[(Subscript[τ, rx])[r] ≥  
                0, -((Subscript[τ, rx])[r]/K)^(1/
                      n), (-(Subscript[τ, rx])[r]/K)^(1/
                    n)], (Subscript[τ, rx])[10^-5] ==  0, 
          (Subscript[v, x])[10^-5] == Ω};
myODEsoln[Ω_] := 
      NDSolve[system[Ω], {(Subscript[v, x]), (Subscript[τ, rx])}, {r, 10^-5, 
          R}]
yend[Ω_?NumericQ] := 
      Flatten[((Subscript[v, x])[r] /. myODEsoln[Ω]) /. 
          r -> R]
bc = FindRoot[
            yend[Ω] == 0, {Ω, 0, 
              0.5}][[1, 2]];

sol2 = myODEsoln[bc]

plt3 = 
      Plot[(Subscript[v, x])[r] /. sol2, {r, 0.00001, R}, 
        PlotStyle -> RGBColor[1, 0, 0]]

Newtonian Fluid

μ = 8.9 10^-4; n = 1; ΔP = 100; L = 50; 
    R = 0.02;

system[Ω_] = {D[
              r (Subscript[τ, rx])[r], {r, 1}] ==  ΔP/L r, 
          D[(Subscript[v, x])[r], {r, 
                1}] ==   -((Subscript[τ, rx])[r]/μ), (Subscript[τ, rx])[
              10^-5] ==  0, 
          (Subscript[v, x])[10^-5] == Ω};
myODEsoln[Ω_] := 
      NDSolve[system[Ω], {(Subscript[v, x]), (Subscript[τ, rx])}, {r, 10^-5, 
          R}]
yend[Ω_?NumericQ] := 
      Flatten[((Subscript[v, x])[r] /. myODEsoln[Ω]) /. 
          r -> R]
bc = FindRoot[
            yend[Ω] == 0, {Ω, 0, 
              0.5}][[1, 2]];

sol3 = myODEsoln[bc]

plt4 = 
      Plot[(Subscript[v, x])[r] /. sol3, {r, 0.00001, R}, 
        PlotStyle -> RGBColor[0, 1, 0]]

Comparing numerical result with analytical solution for Newtonian fluid

K = μ

plt5 = 
      Plot[(Subscript[v, analytical])[r], {r, 0.00001, R}, 
        PlotStyle -> RGBColor[0, 1, 1]]

Show[plt4, plt5]

Comparing velocity profiles obtained for the dilatant, pseudoplastic and Newtonian fluids.

Show[plt4, plt3, plt1]

Flow of dilatant, pseudoplastic and Newtonian fluids in a horizontal annulus.

Dilatant Fluid

K = 1 10^-6; n = 2; ΔP = 100; L = 10; R1 = 0.02; 
    R2 = 0.05;

system[Ω_] = {D[
              r (Subscript[τ, rx])[r], {r, 1}] ==  ΔP/L r, 
          D[(Subscript[v, x])[r], {r, 1}] ==   If[(Subscript[τ, rx])[r] ≥  
                0, -((Subscript[τ, rx])[r]/K)^(1/
                      n), (-(Subscript[τ, rx])[r]/K)^(1/
                    n)], (Subscript[τ, rx])[R1] == Ω, 
          (Subscript[v, x])[R1] == 0};
myODEsoln[Ω_] := 
      NDSolve[system[Ω], {(Subscript[v, x]), (Subscript[τ, rx])}, {r, R1, 
          R2}]
yend[Ω_?NumericQ] := 
      Flatten[((Subscript[v, x])[r] /. myODEsoln[Ω]) /. 
          r -> R2]
bc = FindRoot[
            yend[Ω] == 0, {Ω, -2, 
              2}][[1, 2]];

sol4 = myODEsoln[bc]

plt6 = 
      Plot[(Subscript[v, x])[r] /. sol4, {r, R1, R2}, PlotStyle -> RGBColor[0, 0, 1], 
        PlotRange -> All]

plt7 = 
      Plot[(Subscript[τ, rx])[r] /. sol4, {r, R1, R2}, 
        PlotStyle -> RGBColor[0, 0, 1]]

Pseudoplastic Fluid

K = 1 10^-2; n = 0.5; ΔP = 100; L = 10; R1 = 0.02; 
    R2 = 0.05;

system[Ω_] = {D[
              r (Subscript[τ, rx])[r], {r, 1}] ==  ΔP/L r, 
          D[(Subscript[v, x])[r], {r, 1}] ==   If[(Subscript[τ, rx])[r] ≥  
                0, -((Subscript[τ, rx])[r]/K)^(1/
                      n), (-(Subscript[τ, rx])[r]/K)^(1/
                    n)], (Subscript[τ, rx])[R1] == Ω, 
          (Subscript[v, x])[R1] == 0};
myODEsoln[Ω_] := 
      NDSolve[system[Ω], {(Subscript[v, x]), (Subscript[τ, rx])}, {r, R1, 
          R2}]
yend[Ω_?NumericQ] := 
      Flatten[((Subscript[v, x])[r] /. myODEsoln[Ω]) /. 
          r -> R2]
bc = FindRoot[
            yend[Ω] == 0, {Ω, -2, 
              0.5}][[1, 2]];

sol5 = myODEsoln[bc]

plt8 = 
      Plot[(Subscript[v, x])[r] /. sol5, {r, R1, R2}, PlotStyle -> RGBColor[1, 0, 0], 
        PlotRange -> All]

plt9 = 
      Plot[(Subscript[τ, rx])[r] /. sol5, {r, R1, R2}, 
        PlotStyle -> RGBColor[1, 0, 0]]

Analytical result for Newtonian Fluid

(Subscript[v, analytical])[
        r_] := ΔP/(4 μ L) (R2^2 - 
            r^2 + (R2^2 - R1^2)/Log[R2/R1] Log[r/R2])

plt10 = 
      Plot[(Subscript[v, analytical])[r], {r, R1, R2}, 
        PlotStyle -> RGBColor[0, 1, 1]]

Comparing velocity profiles obtained for the dilatant, pseudoplastic and Newtonian fluids.

Show[plt8, plt6, plt10]