Rock Physics#

This section contains documentation for the Rock Physics module.

Elastic Constants#

stoneforge.rock_physics.elastic_constants.poisson(method: str, **kwargs)#

Computes the Poisson ratio using two elastic moduli.

Parameters#

methodstr
The two elastic moduli used to the estimation. Should be one of:
  • “k_and_g” for bulk and shear moduli

  • “vp_and_vs” for P-wave and S-wave velocities

  • “e_and_k” for Young’s and bulk moduli

In the case where “k_and_g” is selected, the kwargs must contain both k and g parameters (kwargs = [“k”:36, “g”:45])

Returns#

vint, float, array_like

Poisson ratio.

References#

Cambridge University Press.

Fluid Substitution#

stoneforge.rock_physics.fluid_substitution.gassmann(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ks: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], method: str = 'gassmann_subs', **kwargs) ndarray#

Compute Gassmann’ equations.

This is a façade for the methods:
  • kdry

  • ksat

  • gassmann_subs

Parameters#

phiarray_like

Porosity log.

ksarray_like

Bulk modulus of solid phase.

kdryarray_like

Bulk modulus of the dry-rock. Required if method is ksat.

ksatAarray_like

Bulk modulus of the rock saturated with fluid A. Required if method is ksat or gassmann_subs.

kfluidAarray_like

Bulk modulus of the fluid A. Required if method is kdry or gassmann_subs.

kfluidBarray_like

Bulk modulus of the fluid B. Required if method is ksat or gassmann_subs.

methodstr, optional
Name of the method to be used. Should be one of
  • ‘kdry’

  • ‘ksat’

  • ‘ksat_direct’

If not given, default method is ‘gassmann_subs’.

Returns#

ksatarray_like

Bulk modulus of the rock saturated with fluid B.

stoneforge.rock_physics.fluid_substitution.gassmann_subs(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ks: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ksatA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidB: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Fluid substitution using Gassmann’ equation without calculating dry-rock bulk modulus [1]_.

Parameters#

phiarray_like

Porosity log.

ksarray_like

Bulk modulus of solid phase.

ksatAarray_like

Bulk modulus of the rock saturated with fluid A.

kfluidAarray_like

Bulk modulus of the fluid A.

kfluidBarray_like

Bulk modulus of the fluid B.

Returns#

ksatarray_like

Bulk modulus of rock saturated with fluid B.

References#

interpretation: Applying rock physics tools to reduce interpretation risk. Cambridge university press, 2005.

stoneforge.rock_physics.fluid_substitution.kdry(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ks: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ksatA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Calculate the dry-rock bulk modulus using Gassmann’ [1]_ equation .

Parameters#

phiarray_like

Porosity log.

ksarray_like

Bulk modulus of solid phase.

ksatAarray_like

Bulk modulus of the rock saturated with fluid A.

kfluidAarray_like

Bulk modulus of the fluid A.

Returns#

kdryarray_like

Dry-rock bulk modulus.

References#

properties. [S.l.]: Cambridge University Press, 2014.

stoneforge.rock_physics.fluid_substitution.ksat(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ks: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kdry: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidB: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Calculate the bulk modulus of the rock saturated with fluid B [1]_.

Parameters#

phiarray_like

Porosity log.

ksarray_like

Bulk modulus of solid phase.

kdryarray_like

Bulk modulus of the dry-rock.

kfluidBarray_like

Bulk modulus of the fluid B.

Returns#

ksatarray_like

Bulk modulus of the rock saturated with fluid B.

References#

properties. [S.l.]: Cambridge University Press, 2014.

stoneforge.rock_physics.fluid_substitution.mavko(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ms: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], method: str = 'mavko_subs', **kwargs) ndarray#

Compute Mavko’ equations.

This is a façade for the methods:
  • mdry

  • msat

  • mavko_subs

Parameters#

phiarray_like

Porosity log.

msarray_like

Compressional modulus of solid phase.

mdryarray_like

Compressional modulus of the dry-rock. Required if method is msat.

msatAarray_like

Compressional modulus of the rock saturated with fluid A. Required if method is msat or mavko_subs.

kfluidAarray_like

Bulk modulus of the fluid A. Required if method is mdry or mavko_subs.

kfluidBarray_like

Bulk modulus of the fluid B. Required if method is msat or mavko_subs.

methodstr, optional
Name of the method to be used. Should be one of
  • ‘mdry’

  • ‘msat’

  • ‘msat_direct’

If not given, default method is ‘mavko_subs’.

Returns#

msatarray_like

Compressional modulus of the rock saturated with fluid B.

stoneforge.rock_physics.fluid_substitution.mavko_subs(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ms: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], msatA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidB: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Fluid substitution using Mavko’ equation without calculating dry-rock bulk modulus [1]_.

Parameters#

phiarray_like

Porosity log.

msarray_like

Compressional modulus of solid phase.

msatAarray_like

Compressional modulus of the rock saturated with fluid A.

kfluidAarray_like

Bulk modulus of the fluid A.

kfluidBarray_like

Bulk modulus of the fluid B.

Returns#

msatarray_like

Compressional modulus of rock saturated with fluid B.

References#

properties. [S.l.]: Cambridge University Press, 2014.

stoneforge.rock_physics.fluid_substitution.mdry(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ms: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], msatA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidA: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Calculate the dry-rock compressional modulus using Mavko’ [1]_ equation .

Parameters#

phiarray_like

Porosity log.

msarray_like

Compressional modulus of solid phase.

msatAarray_like

Compressional modulus of the rock saturated with fluid A.

kfluidAarray_like

Bulk modulus of the fluid A.

Returns#

mdryarray_like

Dry-rock compressional modulus.

References#

properties. [S.l.]: Cambridge University Press, 2014.

stoneforge.rock_physics.fluid_substitution.msat(phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], ms: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], mdry: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], kfluidB: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ndarray#

Calculate the compressional modulus of the rock saturated with fluid B [1]_.

Parameters#

phiarray_like

Porosity log.

msarray_like

Compressional modulus of solid phase.

mdryarray_like

Compressional modulus of the dry-rock.

kfluidBarray_like

Bulk modulus of the fluid B.

Returns#

msatarray_like

Compressional modulus of the rock saturated with fluid B.

References#

properties. [S.l.]: Cambridge University Press, 2014.

Gem#

Rock Physics Bounds#

stoneforge.rock_physics.rock_physics_bounds.hill(f, m)#

Calculate elastic modulus of the effective mineral using the Hill average.

Parameters#

farray_like

Fractions (proportions) of each mineral.

marray_like

Elastic modulus of each mineral.

Returns#

v: array_like

Hill average.

stoneforge.rock_physics.rock_physics_bounds.reuss(f, m)#

Calculate elastic modulus of the effective mineral using the Reuss bound.

Parameters#

farray_like

Fractions (proportions) of each mineral.

marray_like

Elastic modulus of each mineral.

Returns#

r: array_like

Reuss bound.

stoneforge.rock_physics.rock_physics_bounds.voigt(f, m)#

Calculate elastic modulus of the effective mineral using the Reuss bound.

Parameters#

farray_like

Fractions (proportions) of each mineral.

marray_like

Elastic modulus of each mineral.

Returns#

v: array_like

Voigt bound.