Skip to content

polykin.reactors.rtd¤

E_tanks_series ¤

E_tanks_series(t: float, tavg: float, N: int) -> float

Differential residence time distribution for a series of equal CSTRs.

\[ E(t) = \frac{1}{\bar{t}} \left(\frac{t}{\bar{t}} \right)^{N-1} \frac{N^N}{(N-1)!} e^{-N t / \bar{t}} \]

References

  • Levenspiel, O. "Chemical reaction engineering", 3rd ed., John Wiley & Sons, 1999, p. 322.
PARAMETER DESCRIPTION
t

Residence time.

TYPE: float

tavg

Total average residence time, \(\bar{t}\).

TYPE: float

N

Number of tanks in series.

TYPE: int

RETURNS DESCRIPTION
float

Differential residence time distribution.

See also
  • F_tanks_series: related method to determine the cumulative distribution.
Source code in src/polykin/reactors/rtd.py
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
def E_tanks_series(t: float, tavg: float, N: int) -> float:
    r"""Differential residence time distribution for a series of equal CSTRs.

    $$ E(t) =  \frac{1}{\bar{t}} \left(\frac{t}{\bar{t}} \right)^{N-1}
               \frac{N^N}{(N-1)!} e^{-N t / \bar{t}} $$

    **References**

    * Levenspiel, O. "Chemical reaction engineering", 3rd ed., John Wiley &
      Sons, 1999, p. 322.

    Parameters
    ----------
    t : float
        Residence time.
    tavg : float
        Total average residence time, $\bar{t}$.
    N : int
        Number of tanks in series.

    Returns
    -------
    float
        Differential residence time distribution.

    See also
    --------
    * [`F_tanks_series`](F_tanks_series.md): related method to determine the
      cumulative distribution.
    """
    q = t/tavg
    if q == inf:
        return 0
    else:
        return q**(N-1) * (N**N / gamma(N)) * exp(-N*q) / tavg