.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/plate_tectonics/plot_06_holmes_mantle_convection.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_plate_tectonics_plot_06_holmes_mantle_convection.py: Holmes's mantle convection (1931) ================================= Arthur Holmes proposed that radioactive heat drives slow convection in the mantle, which could carry continents. A layer heated from below convects when its Rayleigh number exceeds about 10^3. For any plausible mantle viscosity the whole mantle is far above that threshold. .. GENERATED FROM PYTHON SOURCE LINES 10-32 .. image-sg:: /api/gallery/plate_tectonics/images/sphx_glr_plot_06_holmes_mantle_convection_001.png :alt: The mantle must convect :srcset: /api/gallery/plate_tectonics/images/sphx_glr_plot_06_holmes_mantle_convection_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none convection stops only above a viscosity of about 4.8e+25 Pa s | .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.constants import GRAVITY from earthsciencekit.plate_tectonics import mantle_rayleigh_number viscosity = np.logspace(19, 26, 200) rayleigh = mantle_rayleigh_number(3e-5, 4500, GRAVITY, 2500, 2.89e6, 1e-6, viscosity) critical = 1708.0 assert mantle_rayleigh_number(3e-5, 4500, GRAVITY, 2500, 2.89e6, 1e-6, 1e21) > 1e4 * critical threshold = viscosity[np.argmin(np.abs(np.log(rayleigh / critical)))] print(f"convection stops only above a viscosity of about {threshold:.1e} Pa s") fig, ax = plt.subplots() ax.loglog(viscosity, rayleigh, label="whole mantle") ax.axhline(critical, color="k", ls="--", label="onset (rigid walls)") ax.axvspan(1e21, 1e22, color="tab:orange", alpha=0.2, label="mantle viscosity") ax.set(xlabel="viscosity [Pa s]", ylabel="Rayleigh number", title="The mantle must convect") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.294 seconds) .. _sphx_glr_download_api_gallery_plate_tectonics_plot_06_holmes_mantle_convection.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/plate_tectonics/plot_06_holmes_mantle_convection.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_06_holmes_mantle_convection.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_06_holmes_mantle_convection.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_06_holmes_mantle_convection.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_