.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/fluid_engineering/pumps/plot_01_thoma_cavitation.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_fluid_engineering_pumps_plot_01_thoma_cavitation.py: Thoma's cavitation parameter (1924) =================================== Water turbines of the 1910s and 1920s ran faster and lower than before, and their runners were eaten away by cavitation. Dieter Thoma, at Munich, found in 1924 that machines of one design start to cavitate at the same ratio :math:`\sigma = \mathrm{NPSH}/H` (:func:`~engineeringkit.fluid_engineering.thoma_sigma`) of the head margin above vapour pressure at the runner to the machine head. The same parameter, through the net positive suction head (:func:`~engineeringkit.fluid_engineering.npsh_available`), governs how far a pump may lift water. This example finds the largest suction lift of a pump at several water temperatures. .. GENERATED FROM PYTHON SOURCE LINES 18-23 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.fluid_engineering import G, cavitation_number, npsh_available, thoma_sigma .. GENERATED FROM PYTHON SOURCE LINES 24-30 The suction side ---------------- A pump lifts water from an open sump at atmospheric pressure. The suction pipe loses 1.2 m of head and enters the pump at 2.5 m/s. At the inlet, :math:`p/\rho g + v^2/2g = p_{atm}/\rho g - z_s - h_L`. .. GENERATED FROM PYTHON SOURCE LINES 30-53 .. code-block:: Python p_atm, rho, h_L, v_in = 101325.0, 998.0, 1.2, 2.5 head, sigma_critical = 60.0, 0.08 # pump head and its tested critical sigma def inlet_pressure(z_s): return p_atm - rho * G * (z_s + h_L) - 0.5 * rho * v_in**2 temperatures = {20: 2.34e3, 50: 12.35e3, 80: 47.4e3} # vapour pressure of water [Pa] z = np.linspace(0, 8, 81) fig, ax = plt.subplots(figsize=(6, 4)) lifts = {} for T, pv in temperatures.items(): sigma = thoma_sigma(npsh_available(inlet_pressure(z), v_in, pv, rho), head) ax.plot(z, sigma, label=f"water at {T} °C") lifts[T] = (p_atm - pv) / (rho * G) - h_L - sigma_critical * head print(f"{T} °C: largest suction lift {lifts[T]:.2f} m") ax.axhline(sigma_critical, color="k", ls="--", label="critical σ of the pump") ax.set(xlabel="suction lift [m]", ylabel="plant σ", title="Thoma's parameter for a 60 m pump") ax.legend() fig.tight_layout() .. image-sg:: /api/gallery/fluid_engineering/pumps/images/sphx_glr_plot_01_thoma_cavitation_001.png :alt: Thoma's parameter for a 60 m pump :srcset: /api/gallery/fluid_engineering/pumps/images/sphx_glr_plot_01_thoma_cavitation_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none 20 °C: largest suction lift 4.11 m 50 °C: largest suction lift 3.09 m 80 °C: largest suction lift -0.49 m .. GENERATED FROM PYTHON SOURCE LINES 54-58 Hot water needs the pump below the sump (a negative lift, or flooded suction). The plant :math:`\sigma` at the largest lift equals the critical value, and the cavitation number at the inlet is the NPSH over the inlet velocity head. .. GENERATED FROM PYTHON SOURCE LINES 58-71 .. code-block:: Python z20 = lifts[20] npsh = npsh_available(inlet_pressure(z20), v_in, temperatures[20], rho) print(f"cavitation number at the inlet: {cavitation_number(inlet_pressure(z20), temperatures[20], rho, v_in):.2f}") assert np.isclose(thoma_sigma(npsh, head), sigma_critical) assert lifts[20] > lifts[50] > 0 > lifts[80] assert np.isclose( cavitation_number(inlet_pressure(z20), temperatures[20], rho, v_in), (npsh - v_in**2 / (2 * G)) / (v_in**2 / (2 * G)), ) plt.show() .. rst-class:: sphx-glr-script-out .. code-block:: none cavitation number at the inlet: 14.06 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.032 seconds) .. _sphx_glr_download_api_gallery_fluid_engineering_pumps_plot_01_thoma_cavitation.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../../lite/lab/index.html?path=api/gallery/fluid_engineering/pumps/plot_01_thoma_cavitation.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_01_thoma_cavitation.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_01_thoma_cavitation.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_01_thoma_cavitation.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_