.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/materials/fracture/plot_02_irwin_stress_intensity.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_materials_fracture_plot_02_irwin_stress_intensity.py: Irwin's stress intensity factor (1957) ====================================== Griffith's balance worked for glass but predicted absurdly low strengths for steel, whose cracks blunt by plastic flow. George Irwin, at the US Naval Research Laboratory after the brittle failures of welded Liberty ships, showed that the stresses near every crack tip have the same shape, :math:`\sigma_{ij} = K f_{ij}(\theta)/\sqrt{2\pi r}`, scaled by one number, the stress intensity factor :math:`K_I = Y\sigma\sqrt{\pi a}` (1957) (:func:`~engineeringkit.materials.stress_intensity`). Fracture happens when :math:`K_I` reaches the material's toughness :math:`K_{Ic}`, and the critical crack length follows (:func:`~engineeringkit.materials.critical_crack_length`). The energy release rate links the two views, :math:`\mathcal{G} = K^2/E`. .. GENERATED FROM PYTHON SOURCE LINES 19-24 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.materials import critical_crack_length, griffith_fracture_stress, stress_intensity .. GENERATED FROM PYTHON SOURCE LINES 25-30 Griffith and Irwin agree ------------------------ For an ideally brittle solid the toughness is :math:`K_{Ic} = \sqrt{2E\gamma_s}` (plane stress). Irwin's criterion then gives Griffith's fracture stress. .. GENERATED FROM PYTHON SOURCE LINES 30-37 .. code-block:: Python E, gamma, a = 70e9, 1.0, 5e-6 Kc_glass = np.sqrt(2 * E * gamma) sigma_irwin = Kc_glass / stress_intensity(1.0, 1.0, a) print(f"glass: K_c = {Kc_glass / 1e6:.3f} MPa sqrt(m), fracture stress {sigma_irwin / 1e6:.1f} MPa") assert np.isclose(sigma_irwin, griffith_fracture_stress(E, gamma, a)) .. rst-class:: sphx-glr-script-out .. code-block:: none glass: K_c = 0.374 MPa sqrt(m), fracture stress 94.4 MPa .. GENERATED FROM PYTHON SOURCE LINES 38-48 Allowable cracks in two steels ------------------------------ Edge cracks (:math:`Y = 1.12`) in a plate at 60% of yield. A high-strength steel at that fraction of its yield fails from a crack under a millimetre. A tough structural steel tolerates a crack of over 10 cm, but its plastic zone, :math:`r_p = (K/\sigma_y)^2/2\pi`, is then centimetres across. Linear-elastic fracture mechanics needs the zone to be small compared with the crack and the plate thickness, so tough steels are assessed with elastic-plastic methods (the J-integral, CTOD). .. GENERATED FROM PYTHON SOURCE LINES 48-64 .. code-block:: Python steels = {"structural (Sy 350 MPa, KIc 150)": (350e6, 150e6), "high strength (Sy 1500 MPa, KIc 50)": (1500e6, 50e6)} fig, ax = plt.subplots(figsize=(6, 3.8)) for name, (sy, Kic) in steels.items(): stress = 0.6 * sy ac = critical_crack_length(Kic, stress, 1.12) rp = (Kic / sy) ** 2 / (2 * np.pi) print(f"{name}: critical edge crack {1e3 * ac:.1f} mm, plastic zone {1e3 * rp:.2f} mm") assert np.isclose(stress_intensity(1.12, stress, ac), Kic) cracks = np.geomspace(1e-4, 0.1, 200) ax.loglog(1e3 * cracks, Kic / stress_intensity(1.12, 1.0, cracks) / 1e6, label=name) ax.set(xlabel="edge crack length [mm]", ylabel="fracture stress [MPa]", title="Fracture stress against crack length") ax.legend() fig.tight_layout() plt.show() .. image-sg:: /api/gallery/materials/fracture/images/sphx_glr_plot_02_irwin_stress_intensity_001.png :alt: Fracture stress against crack length :srcset: /api/gallery/materials/fracture/images/sphx_glr_plot_02_irwin_stress_intensity_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none structural (Sy 350 MPa, KIc 150): critical edge crack 129.5 mm, plastic zone 29.23 mm high strength (Sy 1500 MPa, KIc 50): critical edge crack 0.8 mm, plastic zone 0.18 mm .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.057 seconds) .. _sphx_glr_download_api_gallery_materials_fracture_plot_02_irwin_stress_intensity.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/materials/fracture/plot_02_irwin_stress_intensity.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_02_irwin_stress_intensity.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_02_irwin_stress_intensity.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_02_irwin_stress_intensity.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_