Rock Physics (geobrain.physics.rock)#
The rock physics module transforms geological properties (porosity, mineralogy, fluid saturation) into elastic parameters (Vp, Vs, density) for seismic modeling. It provides 70+ differentiable PyTorch models organized by category.
Effective Medium Models#
Voigt-Reuss-Hill (VRH) Averaging#
Compute effective mineral moduli from constituent minerals:
from geobrain.physics.rock import VRH
import torch
vrh = VRH()
vol_fractions = torch.tensor([0.9, 0.1]) # Quartz, clay
K_minerals = torch.tensor([36.6, 21.0]) # Bulk moduli (GPa)
K_voigt, K_reuss, K_hill = vrh(vol_fractions, K_minerals)
Soft Sand Model#
Granular rock model based on Hertz-Mindlin contact theory:
from geobrain.physics.rock import SoftSand
soft_sand = SoftSand()
K_dry, G_dry = soft_sand(
K_mineral=36.6,
G_mineral=44.0,
porosity=phi,
critical_porosity=0.4,
coordination_number=7,
pressure=pressure, # Effective pressure (MPa)
)
Fluid Substitution#
Gassmann’s Equation#
Compute saturated rock moduli from dry-frame properties:
from geobrain.physics.rock import Gassmann
gassmann = Gassmann()
K_sat, G_sat = gassmann(K_dry, G_dry, K_mineral, K_fluid, porosity)
Density Model#
from geobrain.physics.rock import DensityModel
density = DensityModel()(porosity, rho_mineral, rho_fluid)
Velocity Computation#
Convert bulk and shear moduli to P- and S-wave velocities:
from geobrain.physics.rock import v_from_moduli
vp, vs = v_from_moduli(K_sat, G_sat, density)
Fig. 16 Rock physics workflow: porosity to Vp, Vs, density fields.#
Rock Physics Workflow#
Use presets for common scenarios:
from geobrain.physics.rock import RockPhysicsWorkflow
workflow = RockPhysicsWorkflow.from_preset('shaly_sand')
vp, vs, rho = workflow(porosity, sw)
Fig. 17 Vp-porosity crossplot with rock physics model overlay.#
Mineral & Fluid Database#
from geobrain.physics.rock import MINERALS, FLUIDS, get_mineral, get_fluid
quartz = MINERALS['quartz'] # K, G, rho
brine = FLUIDS['brine'] # K, rho
Available Models#
Category |
Models |
|---|---|
Effective medium |
VRH, Hashin-Shtrikman, DEM, Self-Consistent, Critical Porosity, Hudson, Eshelby-Cheng |
Granular media |
Hertz-Mindlin, SoftSand, StiffSand, ContactCement, Walton, MUHS, PCM, Digby, Thomas-Stieber |
Fluid substitution |
Gassmann (forward & inverse), Wood, Brie, Batzle-Wang, Biot, CO2 properties, LiveOil, CO2-Brine, Brown-Korringa |
Empirical |
Gardner, Han, Castagna, Krief, Raymer-Hunt, Storvoll, Japsen, Hillis, Scherbaum |
Anisotropy |
Thomsen (VTI/HTI), Backus averaging, Bond transform |
Permeability |
Kozeny-Carman, Owolabi, Panda-Lake, Revil, Fredrich, Bloch, Bernabe |
Resistivity |
Archie’s law |
Quantitative Interpretation |
QI tools for crossplot analysis |
All models are differentiable PyTorch modules and can be composed into end-to-end inversion workflows.