# Mixing (fluids.mixing)

`fluids.mixing.``agitator_time_homogeneous`(N, P, T, H, mu, rho, D=None, homogeneity=0.95)

  Calculates time for a fluid mizing in a tank with an impeller to reach a specified level of homogeneity, according to [R515].

  \[N_p = \frac{Pg}{\rho N^3 D^5}\]
  \[Re_{imp} = \frac{\rho D^2 N}{\mu}\]
  \[\text{constant} = N_p^{1/3} Re_{imp}\]
  \[Fo = 5.2/\text{constant} \text{for turbulent regime}\]
  \[Fo = (183/\text{constant})^2 \text{for transition regime}\]

  Parameters:

  N : float:

  > Speed of impeller, [revolutions/s]

  P : float

  > Actual power required to mix, ignoring mechanical inefficiencies [W]

  T : float

  > Tank diameter, [m]

  H : float

  > Tank height, [m]

  mu : float

  > Mixture viscosity, [Pa*s]

  rho : float

  > Mixture density, [kg/m^3]

  D : float, optional

  > Impeller diameter [m]

  homogeneity : float, optional

  > Fraction completion of mixing, []

  Returns:

  t : float

  > Time for specified degree of homogeneity [s]

  Notes

  If impeller diameter is not specified, assumed to be 0.5 tank diameters.

  The first example is solved forward rather than backwards here. A rather different result is obtained, but is accurate.

  No check to see if the mixture if laminar is currently implemented. This would under predict the required time.

  References

  [R515] | (1, 2) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  Examples

      >>> agitator_time_homogeneous(D=36*.0254, N=56/60., P=957., T=1.83, H=1.83, mu=0.018, rho=1020, homogeneity=.995)
      15.143198226374668

      >>> agitator_time_homogeneous(D=1, N=125/60., P=298., T=3, H=2.5, mu=.5, rho=980, homogeneity=.95)
      67.7575069865228

`fluids.mixing.``Kp_helical_ribbon_Rieger`(D, h, nb, pitch, width, T)

  Calculates product of power number and Reynolds number for a specified geometry for a heilical ribbon mixer in the laminar regime. One of several correlations listed in [R516], it used more data than other listed correlations and was recommended.

  \[K_p = 82.8\frac{h}{D}\left(\frac{c}{D}\right)^{-0.38} \left(\frac{p}{D}\right)^{-0.35} \left(\frac{w}{D}\right)^{0.20} n_b^{0.78}\]

  Parameters:

  D : float

  > Impeller diameter [m]

  h : float

  > Ribbon mixer height, [m]

  nb : float:

  > Number of blades, [-]

  pitch : float

  > Height of one turn around a helix [m]

  width : float

  > Width of one blade [m]

  T : float

  > Tank diameter, [m]

  Returns:

  Kp : float

  > Product of Power number and Reynolds number for laminar regime []

  Notes

  Example is from example 9-6 in [R516]. Confirmed.

  References

  [R516] | (1, 2, 3) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  [R517] | Rieger, F., V. Novak, and D. Havelkov (1988). The influence of the geometrical shape on the power requirements of ribbon impellers, Int. Chem. Eng., 28, 376-383.

  Examples

      >>> Kp_helical_ribbon_Rieger(D=1.9, h=1.9, nb=2, pitch=1.9, width=.19, T=2)
      357.39749163259256

`fluids.mixing.``time_helical_ribbon_Grenville`(Kp, N)

  Calculates product of time required for mixing in a helical ribbon coil in the laminar regime according to the Grenville [R519] method recommended in [R518].

  \[t = 896\times10^3K_p^{-1.69}/N\]

  Parameters:

  Kp : float

  > Product of power number and Reynolds number for laminar regime []

  N : float

  > Speed of impeller, [revolutions/s]

  Returns:

  t : float

  > Time for homogeneity [s]

  Notes

  Degree of homogeneity is not specified. Example is from example 9-6 in [R518]. Confirmed.

  References

  [R518] | (1, 2, 3) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  [R519] | (1, 2) Grenville, R. K., T. M. Hutchinson, and R. W. Higbee (2001). Optimisation of helical ribbon geometry for blending in the laminar regime, presented at MIXING XVIII, NAMF.

  Examples

      >>> time_helical_ribbon_Grenville(357.4, 4/60.)
      650.980654028894

`fluids.mixing.``size_tee`(Q1, Q2, D, D2, n=1, pipe_diameters=5)

  Calculates CoV of an optimal or specified tee for mixing at a tee according to [R520]. Assumes turbulent flow. The smaller stream in injected into the main pipe, which continues straight. COV calculation is according to [R521].

  \[TODO\]

  Parameters:

  Q1 : float

  > Volumetric flow rate of larger stream [m^3/s]

  Q2 : float

  > Volumetric flow rate of smaller stream [m^3/s]

  D : float

  > Diameter of pipe after tee [m]

  D2 : float

  > Diameter of mixing inlet, optional (optimally calculated if not specified) [m]

  n : float

  > Number of jets, 1 to 4 []

  pipe_diameters : float

  > Number of diameters along tail pipe for CoV calculation, 0 to 5 []

  Returns:

  CoV : float

  > Standard deviation of dimensionless concentration [-]

  Notes

  Not specified if this works for liquid also, though probably not. Example is from example Example 9-6 in [R520]. Low precision used in example.

  References

  [R520] | (1, 2, 3) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  [R521] | (1, 2) Giorges, Aklilu T. G., Larry J. Forney, and Xiaodong Wang. “Numerical Study of Multi-Jet Mixing.” Chemical Engineering Research and Design, Fluid Flow, 79, no. 5 (July 2001): 515-22. doi:10.1205/02638760152424280.

  Examples

      >>> size_tee(Q1=11.7, Q2=2.74, D=0.762, D2=None, n=1, pipe_diameters=5)
      0.2940930233038544

`fluids.mixing.``COV_motionless_mixer`(Ki, Q1, Q2, pipe_diameters)

  Calculates CoV of a motionless mixer with a regression parameter in [R522] and originally in [R523].

  \[\frac{CoV}{CoV_0} = K_i^{L/D}\]

  Parameters:

  Ki : float

  > Correlation parameter specific to a mixer’s design, [-]

  Q1 : float

  > Volumetric flow rate of larger stream [m^3/s]

  Q2 : float

  > Volumetric flow rate of smaller stream [m^3/s]

  pipe_diameters : float

  > Number of diameters along tail pipe for CoV calculation, 0 to 5 []

  Returns:

  CoV : float

  > Standard deviation of dimensionless concentration [-]

  Notes

  Example 7-8.3.2 in [R522], solved backwards.

  References

  [R522] | (1, 2, 3) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  [R523] | (1, 2) Streiff, F. A., S. Jaffer, and G. Schneider (1999). Design and application of motionless mixer technology, Proc. ISMIP3, Osaka, pp. 107-114.

  Examples

      >>> COV_motionless_mixer(Ki=.33, Q1=11.7, Q2=2.74, pipe_diameters=4.74/.762)
      0.0020900028665727685

`fluids.mixing.``K_motionless_mixer`(K, L, D, fd)

  Calculates loss coefficient of a motionless mixer with a regression parameter in [R524] and originally in [R525].

  \[K = K_{L/T}f\frac{L}{D}\]

  Parameters:

  K : float

  > Correlation parameter specific to a mixer’s design, [-] Also specific to laminar or turbulent regime.

  L : float

  > Length of the motionless mixer [m]

  D : float

  > Diameter of pipe [m]

  fd : float

  > Darcy friction factor [-]

  Returns:

  K : float

  > Loss coefficient of mixer [-]

  Notes

  Related to example 7-8.3.2 in [R524].

  References

  [R524] | (1, 2, 3) Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.

  [R525] | (1, 2) Streiff, F. A., S. Jaffer, and G. Schneider (1999). Design and application of motionless mixer technology, Proc. ISMIP3, Osaka, pp. 107-114.

  Examples

      >>> K_motionless_mixer(K=150, L=.762*5, D=.762, fd=.01)
      7.5