.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "getting_started/01_Critical_Porosity_and_Gassmann_Fluidsubtitution.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_getting_started_01_Critical_Porosity_and_Gassmann_Fluidsubtitution.py: Critical porosity model and Gassmann Fluid substitution ======================================================= This pages gives a simple examples of using the classes ``EM`` and ``Fluid`` of ``rockphypy`` to compute Critical porosity model and perform Gassmann Fluid substitution. .. GENERATED FROM PYTHON SOURCE LINES 8-15 .. code-block:: python3 # Importing aux libraries import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.size']=14 plt.rcParams['font.family']='arial' .. GENERATED FROM PYTHON SOURCE LINES 16-22 .. code-block:: python3 import rockphypy # import the module for rock physics from rockphypy import EM # import the "effective medium" EM module # import the 'Fluid' module from rockphypy import Fluid .. GENERATED FROM PYTHON SOURCE LINES 23-38 Critical porosity model ~~~~~~~~~~~~~~~~~~~~~~~ Remember Nur’s hypothesis: There is a critical (structure-dependent) porosity at which the framework stiffness goes to zero. The simple yet powerful critical porosity model is defined as: .. math:: K_{\text {dry }}=K_{0}\left(1-\frac{\phi}{\phi_{\mathrm{c}}}\right) .. math:: \mu_{\text {dry }}=\mu_{0}\left(1-\frac{\phi}{\phi_{\mathrm{c}}}\right) where :math:`K_0` and :math:`\mu_0` are the mineral bulk and shear moduli. .. GENERATED FROM PYTHON SOURCE LINES 41-65 Gassmann Fluid substitution ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compute dry frame moduli using rock physics models such as critical porosity model is straightforward as shown above. To compute saturated elastic moduli, Gassmann's explicit equations for fluid substition can be applied. Gassmann's relations not only allows us to perform fluid substition (when one fluid is replaced with another), but to predict saturated-rock moduli from dry-rock moduli, and # vice versa. Here we show how to compute saturated moduli via Gassmann thoery. The equation we are gonna use is .. math:: K_{\text {sat }}=K_{\text {dry }}+\frac{\left(1-K_{\text {dry }} / K_{0}\right)^{2}}{\phi / K_{\mathrm{fl}}+(1-\phi) / K_{0}-K_{\text {dry }} / K_{0}^{2}} This is one of the equivelent expressions of the well known GS-Biot theory for fluid substitution: .. math:: \frac{K_{\text {sat }}}{K_{0}-K_{\text {sat }}}=\frac{K_{\text {dry }}}{K_{0}-K_{\text {dry }}}+\frac{K_{\text {fl }}}{\phi\left(K_{0}-K_{\text {fl }}\right)}, \quad \mu_{\text {sat }}=\mu_{\text {dry }} Now Let's firstly estimate the effective dry-rock and water saturated moduli # using critical porosity model. Assume that the rock is Arenite with 40% critical porosity. .. GENERATED FROM PYTHON SOURCE LINES 68-76 .. code-block:: python3 # specify model parameters phic=0.4 phi=np.linspace(0.001,phic,100,endpoint=True) # solid volume fraction = 1-phi K0, G0= 37,44 Kw = 2.2 Kg = 0.5 .. GENERATED FROM PYTHON SOURCE LINES 77-83 .. code-block:: python3 # Compute dry-rock moduli K_dry, G_dry= EM.cripor(K0, G0, phi, phic) # saturate rock with water Ksat, Gsat = Fluid.Gassmann(K_dry,G_dry,K0,Kw,phi) .. GENERATED FROM PYTHON SOURCE LINES 84-97 .. code-block:: python3 # plot # sphinx_gallery_thumbnail_number = 1 plt.figure(figsize=(6,6)) plt.xlabel('Porosity') plt.ylabel('Bulk modulus [GPa]') plt.title('V, R, VRH, HS bounds') plt.plot(phi, K_dry,label='dry rock K') plt.plot(phi, Ksat,label='saturated K') plt.legend(loc='best') plt.grid(ls='--') .. image-sg:: /getting_started/images/sphx_glr_01_Critical_Porosity_and_Gassmann_Fluidsubtitution_001.png :alt: V, R, VRH, HS bounds :srcset: /getting_started/images/sphx_glr_01_Critical_Porosity_and_Gassmann_Fluidsubtitution_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 98-101 We can see from the figure that effective bulk modulus increases when the rock is saturated. .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.592 seconds) .. _sphx_glr_download_getting_started_01_Critical_Porosity_and_Gassmann_Fluidsubtitution.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 01_Critical_Porosity_and_Gassmann_Fluidsubtitution.py <01_Critical_Porosity_and_Gassmann_Fluidsubtitution.py>` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 01_Critical_Porosity_and_Gassmann_Fluidsubtitution.ipynb <01_Critical_Porosity_and_Gassmann_Fluidsubtitution.ipynb>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_