BTCs for adsorption assuming linear driving force, negligible dispersion 
and linear adsorption isotherm
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Acknowledgement: The expression for the analytical solution and governing equations for adsorption assuming linear driving force, negligible dispersion and linear adsorption isotherm were obtained from Harrison at al., Bioseparations Science and Engineering, OUP, 2003.

Off[NIntegrate::"nlim"]

Off[General::"spell1"]

Numerical solution for the breakthrough curves. Results are identical to Harrison at al.

Ka = 105; Keq = 40; v = 20; ϵ = 0.34;

\(sol = 
      NDSolve[{D[qi[t, x], {t, 1}] == \ 
            Ka\ \((ci[t, x] - 1/Keq\ qi[t, x])\), 
D[
                ci[t, x], {t, 1}] + \((1 - ϵ)\)/ϵ\ D[
                  qi[t, x], {t, 1}] + 
              v/ϵ\ D[ci[t, x], {x, 1}] == \ 0, 
          qi[0, x] == \ 0, ci[0, x] == Exp[\(-10^20\)\ x], 
          ci[t, 0] == \ 1}, {ci[t, x], qi[t, x]}, {x, 0, 20}, {t, 0, 
          40}, Method -> {"MethodOfLines", \ "SpatialDiscretization" -> {"TensorProductGrid", \ "MinPoints" -> 100}}, PrecisionGoal -> 2]\)

plt[ξ_] := 
      Plot[Evaluate[ci[t, x] /. sol /. x -> ξ], {t, 0, 40}, 
        PlotRange -> All, PlotStyle -> Hue[ξ/20], 
        DisplayFunction -> Identity]

tbl = Table[plt[ξ], {ξ, 3, 20, 2}];

Show[tbl, DisplayFunction -> $DisplayFunction]

Analytical expression for the breakthrough curves

analyt[τ_, ξ_] := 
      Exp[-ξ] NIntegrate [
            Exp[-u] BesselI[0, 2.  (Sqrt[ξ u])], {u, 0, τ}] + 
        Exp[-(τ + ξ)] BesselI[0, 
            2.  (Sqrt[ξ τ])]

solξ = 
      Solve[(Ka x/v (1 - ϵ) /. 
              x -> 20) ==  ξ, ξ]

solτ = 
      Solve[(τ ==  Ka/Keq (t - x ϵ/v) /. 
            x -> 20), τ]

plotanalyt = 
      Plot[Evaluate[analyt[τ, ξ] /. solξ /. solτ], {t, 
          0.5, 40}, PlotStyle -> RGBColor[0, 1, 1], 
        PlotRange -> All]

Conclusion: Numerical and analytical breakthrough curves and identical

Show[plotanalyt, plt[20]]