.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/relativity/spacetime_geometry/plot_flamm_paraboloid.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. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_relativity_spacetime_geometry_plot_flamm_paraboloid.py: Flamm's paraboloid: gravity as curved geometry, not a force ================================================================== General Relativity's central insight is that gravity is not a force propagating through space, but the curvature of spacetime itself -- massive objects don't pull on other objects, they bend the geometry that other objects move through in a straight line (a geodesic). Restricting the Schwarzschild metric to a constant-time, equatorial (:math:`\theta=\pi/2`) slice leaves a curved 2D spatial geometry with proper length element .. math:: d\ell^2 = \frac{dr^2}{1 - 2M/r} + r^2 d\phi^2 Flamm's paraboloid makes this curvature literal: embedding this 2-surface as a surface of revolution :math:`z(r)` in ordinary flat 3D Euclidean space, .. math:: z(r) = 2\sqrt{2M(r - 2M)}, \qquad r \ge 2M reproduces exactly the same proper distances as the curved metric above, so that walking along the resulting funnel-shaped surface covers the same proper distance as walking through the real curved space around the black hole -- for masses :math:`M` of increasing size (and correspondingly larger horizons :math:`r=2M`). .. GENERATED FROM PYTHON SOURCE LINES 29-35 .. code-block:: Python import matplotlib.pyplot as plt from physicskit.relativity.chapters.schwarzschild import SchwarzschildBlackHole from physicskit.relativity.visualizers.spacetime_3d import plot_flamm_paraboloid .. GENERATED FROM PYTHON SOURCE LINES 36-38 The embedding surface for black holes of increasing mass ------------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 38-46 .. code-block:: Python fig = plt.figure(figsize=(13, 4.5)) for i, M in enumerate([0.5, 1.0, 2.0]): ax = fig.add_subplot(1, 3, i + 1, projection="3d") plot_flamm_paraboloid(M, ax=ax, r_max=15.0) bh = SchwarzschildBlackHole(M=M) ax.set_title(f"M={M} (horizon at r={bh.horizon_radius}M)") plt.tight_layout() plt.show() .. image-sg:: /api/gallery/relativity/spacetime_geometry/images/sphx_glr_plot_flamm_paraboloid_001.png :alt: M=0.5 (horizon at r=1.0M), M=1.0 (horizon at r=2.0M), M=2.0 (horizon at r=4.0M) :srcset: /api/gallery/relativity/spacetime_geometry/images/sphx_glr_plot_flamm_paraboloid_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.168 seconds) .. _sphx_glr_download_api_gallery_relativity_spacetime_geometry_plot_flamm_paraboloid.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_flamm_paraboloid.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_flamm_paraboloid.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_flamm_paraboloid.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_