ASF

Reservoir Geometry: Riemannian Manifolds in Oil and Gas

March 25, 2026|
A
A

Beneath the surface of every oil and gas field lies a porous rock formation, and inside that rock, fluid moves. The simplest model for that motion, Darcy's law, was measured empirically by Henry Darcy in 1856 from sand filtration experiments on the Dijon fountain supply. He found that volumetric flow rate through a porous column is proportional to the pressure drop and inversely proportional to the column length, a linear constitutive relation whose proportionality constant, the permeability, characterises the rock. For more than a century, reservoir engineers treated permeability as a scalar, a single number per rock sample, and built analytic solutions for pressure propagation on that assumption.

Real reservoirs are three-dimensional and anisotropic. Sedimentary layering, fracture networks, and depositional fabrics all impose directional preferences on fluid flow: the rock is more permeable along bedding planes than across them, more permeable along open fractures than perpendicular to them, more permeable horizontally than vertically by factors routinely exceeding one hundred. A scalar permeability misrepresents all of this. The correct object is a permeability tensor: a symmetric positive definite contravariant tensor of type (2,0)(2,0) whose coordinate matrix in a given chart is a 3×33 \times 3 symmetric positive definite array assigning a different resistance to flow in each direction.

That tensor is the entry point for Riemannian geometry. A symmetric positive definite matrix is, simultaneously, a linear map and a Riemannian metric on the ambient space. Once the tensor field is read as a metric, the entire machinery of differential geometry becomes available: geodesics, curvature, the Laplace–Beltrami operator, the heat kernel. The pressure equation is a heat equation on a Riemannian manifold. Streamlines are geodesics. Permeability contrasts are Riemannian refractive index discontinuities, bending streamlines by an exact analogue of Snell's law. The geometry is the exact mathematical content of the equations.

This post develops that content in three dimensions from first principles. We begin by separating the permeability tensor from its coordinate matrix representation, introducing index notation, the Levi-Civita connection, and the fibre bundle structure of material property fields (§2). We construct the 3D permeability metric and its diffusion ellipsoid, and show that Darcy flux is a Riemannian gradient (§3). We derive the 3D Laplace-Beltrami heat equation, the 3D spherical pressure kernel, and the spherical-to-radial flow transition that governs early-time well test signatures (§4). We compute the 3D Christoffel symbols for a diagonal tensor, derive the Darcy-Snell refraction law at permeability interfaces, and develop the Jacobi field equation for streamline spreading (§5). We prove the 3D scalar curvature formula R=2Δk52k2/kR = 2\Delta k - \tfrac{5}{2}|\nabla k|^2/k, show that the Weyl curvature vanishes identically in 3D, and connect curvature to pressure transient anomalies (§6). We solve the 3D spectral problem on a rectangular parallelepiped and extract the pseudosteady-state time constant for transversely isotropic formations (§7). We treat the space of 3×33 \times 3 permeability tensor coordinate matrices as the manifold SPD(3)\mathrm{SPD}(3) and derive the geodesic interpolation between measurements, including the fibre bundle and frame-bundle structure (§8). We extend the framework to a deforming reservoir, deriving the Biot poroelastic equations in abstract index form, establishing the Kozeny-Carman permeability update as a conformal metric flow, and proving that the full coupled Biot-Darcy system is a PDE on a time-parametrised Riemannian manifold (§9). We close by showing how all of this executes in no_std Rust on a bare-metal microcontroller, using the cartan geometry library, for real-time well-site monitoring (§10).

1. Darcy's Law and the 3D Permeability Tensor

1.1. The Empirical Law

Darcy's original experiment measured the steady-state volumetric flow rate QQ through a vertical sand column of cross-sectional area AA and length LL, subject to a pressure head difference Δh\Delta h:

Q=κAΔhL,Q = -\kappa A \frac{\Delta h}{L},

where κ\kappa is the hydraulic conductivity of the sand. Dividing both sides by AA and taking the continuum limit gives the volumetric flux (velocity per unit area), the Darcy velocity or specific discharge:

u=kμp,\mathbf{u} = -\frac{k}{\mu} \nabla p,

where pp is the fluid pressure, μ\mu is the dynamic viscosity, and kk is the intrinsic permeability. This isotropic form holds only when the rock has no preferred flow direction, a condition satisfied in clean, well-sorted sandstone but almost nowhere else.

Remark (Typical permeability values and anisotropy).

Reservoir permeability spans roughly eight orders of magnitude. Conventional sandstone reservoirs typically exhibit k11000mDk \sim 1\text{--}1000\,\mathrm{mD}. Tight gas formations lie in the range 0.0010.1mD0.001\text{--}0.1\,\mathrm{mD}. Shale matrix permeability falls below 104mD10^{-4}\,\mathrm{mD}, with hydraulic fractures providing the dominant conductive pathways. In laminated reservoirs, the horizontal-to-vertical permeability ratio kh/kvk_h/k_v commonly ranges from 5 to 100, and values exceeding 1000 are regularly encountered in thinly laminated fluvial sequences. This anisotropy is the primary driver of all 3D geometry in what follows.

1.2. The Full 3D Permeability Tensor

In an anisotropic three-dimensional formation, the Darcy velocity in each direction depends on the pressure gradient in all three directions. The correct constitutive law is:

u=1μKp,K=(kxxkxykxzkxykyykyzkxzkyzkzz),\mathbf{u} = -\frac{1}{\mu}\,\mathbf{K}\,\nabla p, \qquad \mathbf{K} = \begin{pmatrix} k_{xx} & k_{xy} & k_{xz} \\ k_{xy} & k_{yy} & k_{yz} \\ k_{xz} & k_{yz} & k_{zz} \end{pmatrix},

where K\mathbf{K} is the permeability tensor. Symmetry (kij=kjik_{ij} = k_{ji}) follows from the Onsager reciprocal relations: the cross-coupling between a pressure gradient in direction ii and the resulting flux in direction jj must equal the coupling in the reverse direction, a consequence of microscopic reversibility. Positive definiteness is a physical requirement: the viscous dissipation rate per unit volume, up=(1/μ)(p)Kp\mathbf{u}\cdot\nabla p = -(1/\mu)(\nabla p)^\top\mathbf{K}\nabla p, must be non-negative for any pressure gradient.

Remark (Index notation and the Einstein summation convention).

In the Einstein summation convention, Darcy's law reads

ui=1μfKijjp,u^i = -\frac{1}{\mu_f}\,K^{ij}\,\partial_j p,

where repeated indices are summed from 1 to 3. The index placement carries geometric meaning: upper indices on uiu^i and KijK^{ij} denote contravariant components, which transform like coordinate differentials under a change of chart; lower indices on jp\partial_j p denote covariant components, which transform like coordinate basis covectors. The 3×33 \times 3 array [Kij][K^{ij}] is the coordinate matrix of the permeability tensor in the current chart. It is a representation, not the tensor itself: rotating or rescaling the coordinate axes changes [Kij][K^{ij}] while leaving the underlying physical permeability of the rock unchanged. Section §2 develops this distinction in full, before the Riemannian geometry is built on top of it.

The positive definiteness conditions for the 3×33 \times 3 tensor are:

kxx>0,kxxkyy>kxy2,detK>0.k_{xx} > 0, \quad k_{xx}k_{yy} > k_{xy}^2, \quad \det\mathbf{K} > 0.

These are the three Sylvester conditions (leading principal minors all positive), which characterise symmetric positive definite matrices.

1.3. Transverse Isotropy: The Standard Reservoir Model

The dominant anisotropy type in clastic and carbonate reservoirs is transverse isotropy (TI), in which the rock has equal permeability in all horizontal directions but a different permeability vertically. With zz as the vertical axis:

KTI=(kh000kh000kv),\mathbf{K}_{\mathrm{TI}} = \begin{pmatrix} k_h & 0 & 0 \\ 0 & k_h & 0 \\ 0 & 0 & k_v \end{pmatrix},

where khk_h is the horizontal permeability and kvk_v is the vertical permeability. All off-diagonal entries vanish when the coordinate axes are aligned with the bedding plane. The TI model reduces the full six-parameter tensor to two independent parameters, which is sufficient to capture the dominant flow behaviour in most conventional reservoirs.

Definition (Anisotropy ratio).

The dimensionless anisotropy ratio

κ=khkv1\kappa = \frac{k_h}{k_v} \geq 1

governs the shape of the 3D pressure diffusion front. For κ=1\kappa = 1 the front is a sphere; for κ>1\kappa > 1 it is a prolate ellipsoid (wider horizontally than vertically). In practice, κ\kappa ranges from 2 in well-sorted sandstones to well above 100 in laminated formations. The vertical permeability is rarely measured directly in field tests, and is typically inferred from the early-time spherical flow regime in a well test.

1.4. Continuity and the 3D Pressure Equation

Combining Darcy's law with conservation of mass for a slightly compressible fluid (constant total compressibility ctc_t) in a porous medium with porosity ϕ\phi:

ϕctpt+u=0.\phi c_t \frac{\partial p}{\partial t} + \nabla \cdot \mathbf{u} = 0.

Substituting [eq:darcy-tensor] into [eq:continuity] gives the 3D pressure diffusion equation:

ϕctμpt=(Kp)=i,j=13xi ⁣(Kijpxj).\phi c_t \mu \frac{\partial p}{\partial t} = \nabla \cdot (\mathbf{K} \nabla p) = \sum_{i,j=1}^{3} \frac{\partial}{\partial x^i}\!\left(K^{ij} \frac{\partial p}{\partial x^j}\right).

For constant K\mathbf{K}, this is a constant-coefficient parabolic PDE. For heterogeneous K(x)\mathbf{K}(\mathbf{x}), it is a variable-coefficient elliptic-parabolic operator whose structure is governed by the Riemannian geometry of the tensor field.

2. Tensors, Coordinates, and the Permeability Object

2.1. The Permeability Tensor as a Coordinate-Free Object

The word "tensor" is often used interchangeably with "matrix" in engineering literature. In what follows that identification is not merely imprecise: it is wrong in a way that produces incorrect equations on a deforming manifold. The distinction is therefore introduced carefully here, before any geometry is built on top of it.

A tensor field of type (r,s)(r, s) on a smooth manifold R\mathcal{R} assigns to each point xRx \in \mathcal{R} a multilinear map

Tx ⁣:TxR××TxRr×TxR××TxRsR,T_x \colon \underbrace{T_x^*\mathcal{R} \times \cdots \times T_x^*\mathcal{R}}_{r} \times \underbrace{T_x\mathcal{R} \times \cdots \times T_x\mathcal{R}}_{s} \longrightarrow \mathbb{R},

where TxRT_x\mathcal{R} is the tangent space at xx and TxRT_x^*\mathcal{R} is the cotangent space. The tensor itself is this map. A matrix is the array of numbers obtained by evaluating the map on a chosen basis. Choosing a different basis changes the matrix; the tensor does not change.

The permeability tensor KK is a symmetric contravariant tensor of type (2,0)(2, 0): at each xx it is a symmetric bilinear map Kx ⁣:TxR×TxRRK_x \colon T_x^*\mathcal{R} \times T_x^*\mathcal{R} \to \mathbb{R}. Given a coordinate chart {xi}i=13\{x^i\}_{i=1}^{3} on R\mathcal{R} with coordinate basis {i}\{\partial_i\} for TxRT_x\mathcal{R} and dual basis {dxi}\{dx^i\} for TxRT_x^*\mathcal{R}, the components of KK in that chart are

Kij(x)=Kx(dxi,dxj).K^{ij}(x) = K_x(dx^i,\, dx^j).

The 3×33 \times 3 array [Kij(x)][K^{ij}(x)] is the permeability matrix in the chart {xi}\{x^i\}. Darcy's law in this chart is

ui=1μfKijjp,u^i = -\frac{1}{\mu_f}\,K^{ij}\,\partial_j p,

where uiu^i are the contravariant components of the Darcy velocity vector and jp\partial_j p are the covariant components of the pressure gradient covector. The repeated index jj is summed from 1 to 3 (Einstein convention). Throughout this post, upper indices denote contravariant components and lower indices denote covariant components.

2.2. Transformation Law and the Primacy of the Tensor

Under a coordinate change xix~kx^i \to \tilde{x}^k with Jacobian Jki=x~k/xiJ^k{}_i = \partial\tilde{x}^k/\partial x^i, the components of a (2,0)(2,0) tensor transform as

K~ij=JikJjlKkl.\tilde{K}^{ij} = J^i{}_k\,J^j{}_l\,K^{kl}.

Both indices transform with one factor of JJ each, reflecting the contravariant character. The tensor KK is unchanged: it is the same physical object, described by different numbers in the new chart. A rotation from geographic coordinates (north, east, down) to borehole coordinates (along-hole, cross-hole, vertical) multiplies the matrix [Kij][K^{ij}] by two factors of the rotation matrix, but the permeability of the rock at that point is unaltered.

Definition (Symmetric positive definite permeability tensor).

The permeability tensor KK is symmetric positive definite as a tensor if

Kij=KjiandKijξiξj>0  ξTxR,  ξ0.K^{ij} = K^{ji} \quad \text{and} \quad K^{ij}\,\xi_i\,\xi_j > 0 \quad \forall\; \xi \in T_x^*\mathcal{R},\; \xi \neq 0.

Symmetry and positive definiteness are coordinate-invariant conditions on the tensor; they hold in every chart simultaneously if they hold in one. The Sylvester conditions on the matrix [Kij][K^{ij}] are coordinate-dependent statements about the matrix representation in a particular chart. They are equivalent to the tensor SPD condition only in that chart.

Remark (Sylvester conditions are chart-dependent).

The Sylvester conditions fail to characterise positive definiteness in a rotated chart in the sense that their form changes with the chart, even though positive definiteness is preserved. Consider a 2D tensor with principal values k1=2,k2=1k_1 = 2,\, k_2 = 1 aligned at 4545^\circ to the coordinate axes. Its matrix in that coordinate frame is [Kij]=(3/21/21/23/2)[K^{ij}] = \begin{pmatrix} 3/2 & 1/2 \\ 1/2 & 3/2 \end{pmatrix}, and the Sylvester conditions hold. In a frame aligned with the principal axes the matrix is diagonal and the conditions are trivially k1>0k_1 > 0, k2>0k_2 > 0. The invariant test that works in every chart is the tensor condition Kijξiξj>0K^{ij}\xi_i\xi_j > 0 for all nonzero covectors ξ\xi.

2.3. The Metric as a Covariant Tensor

The Riemannian metric gg derived from KK is a (0,2)(0, 2) covariant symmetric tensor: at each xx, it is a symmetric positive definite bilinear map gx ⁣:TxR×TxRRg_x \colon T_x\mathcal{R} \times T_x\mathcal{R} \to \mathbb{R}. Its components in a chart are

gij(x)=gx(i,j).g_{ij}(x) = g_x(\partial_i, \partial_j).

The relationship g=K1g = K^{-1} means: the matrix [gij][g_{ij}] is the matrix inverse of [Kij][K^{ij}]. More invariantly, the contraction gikKkj=δijg_{ik}\,K^{kj} = \delta^j_i holds in every chart, where δij\delta^j_i is the Kronecker delta. Indices are raised and lowered by KijK^{ij} and gijg_{ij}:

ui=gijuj=(K1)ijuj,ξi=Kijξj.u_i = g_{ij}\,u^j = (K^{-1})_{ij}\,u^j, \qquad \xi^i = K^{ij}\,\xi_j.

The Darcy velocity has contravariant components uiu^i (a vector, pointing in the flow direction); the pressure gradient has covariant components ip\partial_i p (a covector, pointing in the direction of steepest pressure increase). The permeability tensor KijK^{ij} converts covectors to vectors: it maps the pressure gradient covector to the flux vector.

2.4. The Levi-Civita Connection

A connection on (R,g)(\mathcal{R}, g) is a rule for differentiating tensor fields that is consistent with the manifold structure. The Levi-Civita connection \nabla is the unique connection that is (i) metric-compatible, kgij=0\nabla_k g_{ij} = 0, and (ii) torsion-free, Γkij=Γkji\Gamma^k{}_{ij} = \Gamma^k{}_{ji}. Its Christoffel symbols in a coordinate chart are

Γkij=12gkl ⁣(igjl+jgillgij)=12Kkl ⁣(igjl+jgillgij).\Gamma^k{}_{ij} = \frac{1}{2}\,g^{kl}\!\left(\partial_i g_{jl} + \partial_j g_{il} - \partial_l g_{ij}\right) = \frac{1}{2}\,K^{kl}\!\left(\partial_i g_{jl} + \partial_j g_{il} - \partial_l g_{ij}\right).

Note: Γkij\Gamma^k{}_{ij} are not the components of a tensor; they transform inhomogeneously under coordinate changes. They are the correction terms that account for the curvature of the coordinate grid, and they vanish in a geodesic normal chart centred at any given point. The covariant derivative of a vector field viv^i is

jvi=jvi+Γijkvk,\nabla_j v^i = \partial_j v^i + \Gamma^i{}_{jk}\,v^k,

and its covariant divergence is

ivi=ivi+Γiijvj=1detgi ⁣(detg  vi).\nabla_i v^i = \partial_i v^i + \Gamma^i{}_{ij}\,v^j = \frac{1}{\sqrt{\det g}}\,\partial_i\!\left(\sqrt{\det g}\;v^i\right).

The last equality follows from the identity Γiij=jlndetg\Gamma^i{}_{ij} = \partial_j\ln\sqrt{\det g} and is the form used in the Laplace-Beltrami operator of §4.

Remark (Christoffel symbols are not tensor components).

The notation Γkij\Gamma^k{}_{ij} uses three indices but the symbol does not obey the tensor transformation law. Under a coordinate change, the Christoffel symbols pick up an inhomogeneous second-derivative term involving 2x~k/xixj\partial^2 \tilde{x}^k / \partial x^i \partial x^j. This is not a defect of notation: it reflects the genuine fact that parallel transport on a curved manifold cannot be encoded by a tensor. The curvature tensor RlkijR^l{}_{kij}, defined as the commutator of covariant derivatives, is a genuine (1,3)(1,3) tensor. The Christoffel symbols cancel in the definition of RlkijR^l{}_{kij}, leaving behind only honest tensor components. The Riemann and Ricci curvature tensors computed in §6 are proper tensors; the Christoffel symbols appearing in their definitions are not.

2.5. Why the Distinction Is Critical on a Deforming Manifold

On the static reservoir of §3–§8, the tensor/matrix distinction is important for correctness but does not change the form of the equations: the domain R\mathcal{R} is fixed, and a single coordinate chart suffices. On a deforming reservoir (§9), the solid skeleton displaces with a smooth map φt ⁣:R0R(t)\varphi_t \colon \mathcal{R}_0 \to \mathcal{R}(t) from the reference configuration R0=R(0)\mathcal{R}_0 = \mathcal{R}(0) to the current configuration R(t)\mathcal{R}(t). The deformation gradient is

FiJ=xiXJ,F^i{}_J = \frac{\partial x^i}{\partial X^J},

where XJX^J are material (Lagrangian) coordinates and xix^i are spatial (Eulerian) coordinates. Under this map, the coordinate chart on R(t)\mathcal{R}(t) in which the permeability matrix is measured changes at every time step.

The permeability tensor KK is a material property of the rock: it does not change when coordinates are relabelled. Its Eulerian matrix representation [Kij(x,t)][K^{ij}(x, t)] does change, because the coordinate axes {i}\{\partial_i\} at a point xR(t)x \in \mathcal{R}(t) are not the same objects as the axes {J}\{\partial_J\} at the corresponding material point XR0X \in \mathcal{R}_0. The correct object to transport forward in time is not the matrix [Kij][K^{ij}] but the push-forward of the tensor:

(φtK)ij(x)=FiJFjLK0JL(X),(\varphi_{t*} K)^{ij}(x) = F^i{}_J\,F^j{}_L\,K_0^{JL}(X),

where K0JLK_0^{JL} are the components of the permeability tensor in the reference configuration. This is the contravariant transformation law applied to the deformation map. Confusing the matrix [Kij][K^{ij}] with the tensor KK on a deforming domain is equivalent to forgetting to account for the Jacobian FF, leading to an error of order FI|F - I| in the permeability (which equals the volumetric strain, a measurable and sometimes large quantity in compaction reservoirs). Section §9 develops this in full.

3. The 3D Reservoir as a Riemannian Manifold

3.1. The Permeability Metric

A symmetric positive definite (2,0)(2,0) permeability tensor KK defines a Riemannian metric gg on R\mathcal{R} by declaring g=K1g = K^{-1}: the components of the covariant metric tensor in any chart are gij=(K1)ijg_{ij} = (K^{-1})_{ij}, the entries of the matrix inverse of [Kij][K^{ij}]. The following theorem shows why this choice is canonical.

Theorem (Darcy flux as Riemannian gradient).

Let (R,g)(\mathcal{R}, g) be the reservoir domain RR3\mathcal{R} \subset \mathbb{R}^3 equipped with the Riemannian metric gij=(K1)ijg_{ij} = (K^{-1})_{ij}. The Darcy velocity u=(1/μ)Kp\mathbf{u} = -(1/\mu)\mathbf{K}\nabla p is equal to (1/μ)gradgp-(1/\mu)\,\mathrm{grad}_g\, p, the Riemannian gradient of the pressure field.

Proof. The Riemannian gradient is defined as the unique vector field satisfying

g(gradgp,v)=dp(v)=pvg(\mathrm{grad}_g\, p,\, \mathbf{v}) = dp(\mathbf{v}) = \nabla p \cdot \mathbf{v}

for all tangent vectors v\mathbf{v}. In coordinates, g(w,v)=gijwivj=(K1)ijwivjg(\mathbf{w}, \mathbf{v}) = g_{ij} w^i v^j = (K^{-1})_{ij} w^i v^j, so the condition reads gij(gradgp)i=jpg_{ij}\,(\mathrm{grad}_g\,p)^i = \partial_j p, i.e., (K1)ij(gradgp)i=jp(K^{-1})_{ij}\,(\mathrm{grad}_g\,p)^i = \partial_j p for all jj. Multiplying both sides by KjkK^{jk} and summing over jj gives (gradgp)k=Kkjjp(\mathrm{grad}_g\, p)^k = K^{kj}\partial_j p, i.e., gradgp=Kp\mathrm{grad}_g\, p = \mathbf{K}\nabla p. Therefore

1μgradgp=1μKp=u.-\frac{1}{\mu}\,\mathrm{grad}_g\, p = -\frac{1}{\mu}\,\mathbf{K}\nabla p = \mathbf{u}.

The proof uses no properties specific to n=3n = 3; it holds in any dimension. \square

Remark (Physical interpretation of the metric).

The metric g=K1g = K^{-1} measures resistance to flow, not permeability. In high-permeability rock (KK large, g=K1g = K^{-1} small), the Riemannian distance between two nearby points is small: fluid traverses this distance easily, and the geometry contracts the region. In low-permeability rock (KK small, gg large), the Riemannian distance is large. Geodesic distance therefore measures hydraulic effort rather than Euclidean distance: two points that are close in Euclidean space but separated by a tight shale barrier are far apart in the Riemannian metric of the reservoir.

3.2. Transverse Isotropy and the Diffusion Ellipsoid

For the transversely isotropic tensor KTI=diag(kh,kh,kv)\mathbf{K}_\mathrm{TI} = \mathrm{diag}(k_h, k_h, k_v), the metric is

gTI=diag ⁣(1kh,1kh,1kv).g_\mathrm{TI} = \mathrm{diag}\!\left(\frac{1}{k_h},\, \frac{1}{k_h},\, \frac{1}{k_v}\right).

The Riemannian unit ball {(x,y,z):gijxixj1}\{(x,y,z) : g_{ij}x^i x^j \leq 1\} is the ellipsoid

x2+y2kh+z2kv1,\frac{x^2 + y^2}{k_h} + \frac{z^2}{k_v} \leq 1,

with horizontal semi-axis kh\sqrt{k_h} and vertical semi-axis kv\sqrt{k_v}. This is the diffusion ellipsoid: it describes the shape of the region reached by a unit-energy pressure pulse in unit Riemannian time. Since kh>kvk_h > k_v in most reservoirs, the ellipsoid is oblate (flattened vertically), reflecting the greater ease of horizontal flow.

Remark (Diffusion ellipsoid and the radius of investigation).

In a pressure transient test, the radius of investigation at time tt is approximately the set of points at Riemannian distance 4Dt\sqrt{4Dt} from the well, where D=kh/(ϕμct)D = k_h/(\phi\mu c_t) is the horizontal diffusivity. For a TI reservoir, this is the ellipsoid

x2+y24khDt+z24kvDt1.\frac{x^2 + y^2}{4k_h Dt} + \frac{z^2}{4k_v Dt} \leq 1.

In the early-time spherical flow regime (before the diffusion front contacts the formation top and bottom), the ellipsoid is entirely within the reservoir, and the pressure derivative behaves as t1/2t^{-1/2} on a log-log scale, distinct from the flat derivative of radial flow. This spherical flow regime is the primary diagnostic for measuring kvk_v from a pressure transient test.

3.3. Volume Form and Riemannian Divergence

The Riemannian volume form on (R,g)(\mathcal{R}, g) is

dVg=detg  d3x=1detKd3x.\mathrm{d}V_g = \sqrt{\det g}\;\mathrm{d}^3 x = \frac{1}{\sqrt{\det \mathbf{K}}}\,\mathrm{d}^3 x.

Here detg=det[gij]\det g = \det[g_{ij}] is the determinant of the matrix of covariant metric components, which equals 1/det[Kij]1/\det[K^{ij}] since [gij][g_{ij}] is the matrix inverse of [Kij][K^{ij}]. For the TI tensor, detKTI=kh2kv\det\mathbf{K}_\mathrm{TI} = k_h^2 k_v, so dVg=(kh2kv)1/2d3x\mathrm{d}V_g = (k_h^2 k_v)^{-1/2}\mathrm{d}^3 x. High-permeability regions have a smaller Riemannian volume element: they are geometrically compressed. The Riemannian divergence of a vector field F\mathbf{F} is

divgF=1detgi ⁣(detg  Fi)=detK  i ⁣(FidetK).\mathrm{div}_g\,\mathbf{F} = \frac{1}{\sqrt{\det g}}\,\partial_i\!\left(\sqrt{\det g}\;F^i\right) = \sqrt{\det\mathbf{K}}\;\partial_i\!\left(\frac{F^i}{\sqrt{\det\mathbf{K}}}\right).

4. Pressure Diffusion as the 3D Laplace–Beltrami Equation

4.1. The 3D Laplace–Beltrami Operator

Definition (Laplace–Beltrami operator).

For a Riemannian manifold (M,g)(M, g) with metric gijg_{ij} and inverse metric gijg^{ij}, the Laplace–Beltrami operator acting on a smooth function ff is

Δgf=divggradgf=1detgi ⁣(detg  gijjf).\Delta_g f = \mathrm{div}_g\,\mathrm{grad}_g\, f = \frac{1}{\sqrt{\det g}}\,\partial_i\!\left(\sqrt{\det g}\;g^{ij}\,\partial_j f\right).

With the permeability metric g=K1g = K^{-1} (so gij=Kijg^{ij} = K^{ij}, the contravariant metric components equal the permeability tensor components KijK^{ij} in the current chart, and detg=1/detK\det g = 1/\det\mathbf{K}), this becomes

Δgf=detK  i ⁣(KijjfdetK).\Delta_g f = \sqrt{\det\mathbf{K}}\;\partial_i\!\left(\frac{K^{ij}\,\partial_j f}{\sqrt{\det\mathbf{K}}}\right).

4.2. Constant vs. Heterogeneous Permeability

Theorem (Laplace–Beltrami equals Darcy operator for constant K).

If K\mathbf{K} is spatially constant, then

Δgp=(Kp)=i,jKijijp,\Delta_g p = \nabla \cdot (\mathbf{K} \nabla p) = \sum_{i,j} K^{ij}\,\partial_i \partial_j p,

and the 3D pressure equation [eq:pressure-eq] is the Laplace–Beltrami heat equation on (R,g)(\mathcal{R}, g):

ϕctμpt=Δgp.\phi c_t \mu\,\frac{\partial p}{\partial t} = \Delta_g p.

Proof. When K\mathbf{K} is constant, all derivatives of KijK^{ij} and detK\det\mathbf{K} vanish, so [eq:lb-explicit] reduces to Δgp=Kijijp=(Kp)\Delta_g p = K^{ij}\,\partial_i\partial_j p = \nabla\cdot(\mathbf{K}\nabla p). The pressure equation then takes the form [eq:heat-beltrami]. \square

Remark (Correction terms for heterogeneous K).

When K(x)\mathbf{K}(\mathbf{x}) varies with position, expanding [eq:lb-explicit] gives

Δgp=(Kp)12(lndetK)(Kp).\Delta_g p = \nabla\cdot(\mathbf{K}\nabla p) - \frac{1}{2}\bigl(\nabla \ln\det\mathbf{K}\bigr)\cdot(\mathbf{K}\nabla p).

The correction term, proportional to the gradient of lndetK\ln\det\mathbf{K}, is non-zero whenever the permeability varies in space. It vanishes when K\mathbf{K} is constant, recovering [eq:lb-equals-darcy]. This formula holds in any dimension. For the TI tensor, lndetKTI=2lnkh+lnkv\ln\det\mathbf{K}_\mathrm{TI} = 2\ln k_h + \ln k_v, and the correction involves gradients of both khk_h and kvk_v. The physically correct operator for heterogeneous reservoirs is the Darcy divergence (Kp)\nabla\cdot(\mathbf{K}\nabla p), not the Laplace–Beltrami operator. Discretising the Laplace–Beltrami form instead of the Darcy form introduces a systematic error proportional to lndetK\nabla\ln\det\mathbf{K}, which is largest near facies boundaries.

4.3. Heat Kernels in 2D and 3D

The fundamental solution to the heat equation tp=DΔp\partial_t p = D\Delta p depends critically on the spatial dimension. For isotropic permeability kk and diffusivity D=k/(ϕμct)D = k/(\phi\mu c_t), the heat kernels in two and three dimensions are:

Kt(2)(x)=14πDtexp ⁣(r24Dt),Kt(3)(x)=1(4πDt)3/2exp ⁣(r24Dt),K_t^{(2)}(\mathbf{x}) = \frac{1}{4\pi Dt}\,\exp\!\left(-\frac{r^2}{4Dt}\right), \qquad K_t^{(3)}(\mathbf{x}) = \frac{1}{(4\pi Dt)^{3/2}}\,\exp\!\left(-\frac{r^2}{4Dt}\right),

where r=xr = |\mathbf{x}|. The 2D kernel applies to an infinite vertical well producing from a formation of uniform thickness (the pressure diffusion is planar, independent of the zz-coordinate). The 3D kernel applies to a point source in a three-dimensional infinite medium.

Theorem (3D pressure drawdown from a spherical source).

For a point source (perforation cluster) at the origin in a constant isotropic 3D reservoir, producing at volumetric rate q[m3/s]q\,[\mathrm{m}^3/\mathrm{s}], the pressure drawdown is

Δp(r,t)=qμ4πkrerfc ⁣(r4Dt),\Delta p(r, t) = \frac{q\mu}{4\pi k r}\,\mathrm{erfc}\!\left(\frac{r}{\sqrt{4Dt}}\right),

where erfc(x)=(2/π)xeu2du\mathrm{erfc}(x) = (2/\sqrt{\pi})\int_x^{\infty} e^{-u^2}\,\mathrm{d}u is the complementary error function. This satisfies the 3D heat equation t(Δp)=DΔgk(Δp)\partial_t(\Delta p) = D\,\Delta_{g_k}(\Delta p) with gk=(1/k)δg_k = (1/k)\delta, and the appropriate point-source boundary condition at the origin.

Proof. The result follows by integrating the 3D heat kernel against the source. The key identities are: the Laplacian of 1/r1/r in 3D is Δ(1/r)=4πδ(x)\Delta(1/r) = -4\pi\delta(\mathbf{x}), and the convolution of the heat kernel with 1/(4πr)1/(4\pi r) gives [eq:3d-drawdown]. Explicitly, verify the two limits: as t0t \to 0, erfc(r/4Dt)0\mathrm{erfc}(r/\sqrt{4Dt}) \to 0 since the argument goes to infinity, so Δp0\Delta p \to 0 (no drawdown before production). As tt \to \infty, erfc(0)=1\mathrm{erfc}(0) = 1, giving the steady-state Newtonian potential Δpqμ/(4πkr)\Delta p \to q\mu/(4\pi k r), which satisfies the time-independent Laplace equation Δ(Δp)=0\Delta(\Delta p) = 0 at r>0r > 0, confirming convergence to steady state. \square

Remark (Two-dimensional vs. three-dimensional pressure profiles).

The 2D and 3D kernels produce qualitatively different pressure signatures, reflecting a fundamental distinction in potential theory. In two dimensions, the Green's function for the Laplacian is logarithmic: the steady-state pressure from a line source grows as ln(1/r)\ln(1/r), which diverges as rr \to \infty. There is no true steady state in an infinite 2D reservoir. In three dimensions, the Green's function is 1/r1/r, which decays to zero at infinity. A point source in a 3D infinite reservoir reaches a true steady state.

For well testing, this means: a vertical well producing from a thick formation of finite height hh behaves as a 3D spherical source at early time (before the pressure transient contacts the top and bottom of the formation) and transitions to a 2D cylindrical (Theis) source at late time. The transition occurs near ttransh2/(4Dv)t_\mathrm{trans} \sim h^2/(4D_v), where Dv=kv/(ϕμct)D_v = k_v/(\phi\mu c_t) is the vertical diffusivity. The log-log pressure derivative shows a slope of 1/2-1/2 during spherical flow and a flat plateau during radial flow. Identifying and measuring both regimes is the only field method for determining kvk_v independently of khk_h.

4.4. The Spherical-to-Radial Flow Transition

The transition between 3D spherical and 2D radial flow is a concrete Riemannian geometry result: the dimension of the heat kernel changes as the pressure diffusion ellipsoid transitions from three-dimensional to quasi-two-dimensional.

Theorem (Spherical-to-radial flow transition for a vertical well).

Consider a vertical well of length hh centred at the origin in a TI reservoir with permeabilities khk_h, kvk_v and diffusivities Dh=kh/(ϕμct)D_h = k_h/(\phi\mu c_t), Dv=kv/(ϕμct)D_v = k_v/(\phi\mu c_t). The pressure response satisfies:

(i) For th2/(4Dv)t \ll h^2/(4D_v) (early time), the pressure drawdown approximates a 3D spherical kernel centred on the midpoint of the well:

Δp(r,t)qμ4πkhrefferfc ⁣(reff4Dht),reff=rh2+κz2,\Delta p(r, t) \approx \frac{q\mu}{4\pi k_h r_\mathrm{eff}}\,\mathrm{erfc}\!\left(\frac{r_\mathrm{eff}}{\sqrt{4D_h t}}\right), \quad r_\mathrm{eff} = \sqrt{r_h^2 + \kappa z^2},

where rh=x2+y2r_h = \sqrt{x^2+y^2} is the horizontal distance, κ=kh/kv\kappa = k_h/k_v, and reffr_\mathrm{eff} is the effective Riemannian distance from the well in the TI metric.

(ii) For th2/(4Dv)t \gg h^2/(4D_v) (late time), the vertical mode has equilibrated and the pressure drawdown approaches the 2D Theis form:

Δp(rh,t)qμ4πkhhEi ⁣(rh24Dht),\Delta p(r_h, t) \approx \frac{q\mu}{4\pi k_h h}\,\mathrm{Ei}\!\left(-\frac{r_h^2}{4D_h t}\right),

where Ei(x)=xes/sds\mathrm{Ei}(x) = -\int_{-x}^{\infty} e^{-s}/s\,\mathrm{d}s is the exponential integral.

Proof sketch. The TI metric maps the reservoir to a rescaled space with coordinates X=x/khX = x/\sqrt{k_h}, Y=y/khY = y/\sqrt{k_h}, Z=z/kvZ = z/\sqrt{k_v}, in which the metric is Euclidean (shown in §5.2). In this space, the Riemannian distance from the well axis is (X2+Y2+Z2)1/2=reff/kh(X^2+Y^2+Z^2)^{1/2} = r_\mathrm{eff}/\sqrt{k_h}. At early time, before the diffusion front is constrained by the finite well length, the 3D heat kernel applies in the rescaled space, giving [eq:spherical-regime]. At late time, the ZZ-direction has equilibrated over the well length and the problem reduces to a 2D Laplacian in the (X,Y)(X, Y)-plane, recovering the Theis solution [eq:radial-regime]. \square

5. 3D Streamlines as Geodesics

5.1. Christoffel Symbols for Diagonal 3D K

For a diagonal permeability tensor K=diag(k1,k2,k3)\mathbf{K} = \mathrm{diag}(k_1, k_2, k_3) in three dimensions (with coordinates x1,x2,x3x^1, x^2, x^3), the metric is gij=δij/kig_{ij} = \delta_{ij}/k_i (no sum). The Levi-Civita Christoffel symbols are

Γij=12g ⁣(igj+jgigij)\Gamma^\ell_{ij} = \frac{1}{2}\,g^{\ell\ell}\!\left(\partial_i g_{j\ell} + \partial_j g_{i\ell} - \partial_\ell g_{ij}\right)

where the outer index \ell does not participate in a sum (since gg is diagonal, gm=kδmg^{\ell m} = k_\ell \delta^{\ell m}).

Proposition (Christoffel symbols for diagonal heterogeneous K in 3D).

For K=diag(k1,k2,k3)\mathbf{K} = \mathrm{diag}(k_1, k_2, k_3) with spatially varying entries, the non-vanishing Christoffel symbols are:

Γααα=αkα2kα,\Gamma^\alpha_{\alpha\alpha} = -\frac{\partial_\alpha k_\alpha}{2k_\alpha},Γαββ=Γβαβ=αkβ2kβ,αβ,\Gamma^\beta_{\alpha\beta} = \Gamma^\beta_{\beta\alpha} = -\frac{\partial_\alpha k_\beta}{2k_\beta}, \qquad \alpha \neq \beta,Γααβ=kββkα2kα2,αβ.\Gamma^\beta_{\alpha\alpha} = \frac{k_\beta\,\partial_\beta k_\alpha}{2k_\alpha^2}, \qquad \alpha \neq \beta.

All components with three distinct indices vanish. If K\mathbf{K} is spatially constant, all Γij0\Gamma^\ell_{ij} \equiv 0, and the geodesics of (R,g)(\mathcal{R}, g) are straight lines.

Proof. Compute each case from [eq:christoffel] using gαβ=δαβ/kαg_{\alpha\beta} = \delta_{\alpha\beta}/k_\alpha and gαβ=kαδαβg^{\alpha\beta} = k_\alpha\delta^{\alpha\beta}.

For =i=j=α\ell = i = j = \alpha: Γααα=(kα/2)(2α(1/kα)α(1/kα))=(kα/2)α(1/kα)=αkα/(2kα)\Gamma^\alpha_{\alpha\alpha} = (k_\alpha/2)(2\partial_\alpha(1/k_\alpha) - \partial_\alpha(1/k_\alpha)) = (k_\alpha/2)\partial_\alpha(1/k_\alpha) = -\partial_\alpha k_\alpha/(2k_\alpha).

For =j=β\ell = j = \beta, i=αi = \alpha, αβ\alpha \neq \beta: Γαββ=(kβ/2)(α(1/kβ)+β(1/kα)β(1/kα))=(kβ/2)α(1/kβ)=αkβ/(2kβ)\Gamma^\beta_{\alpha\beta} = (k_\beta/2)(\partial_\alpha(1/k_\beta) + \partial_\beta(1/k_\alpha) - \partial_\beta(1/k_\alpha)) = (k_\beta/2)\partial_\alpha(1/k_\beta) = -\partial_\alpha k_\beta/(2k_\beta).

For =β\ell = \beta, i=j=αi = j = \alpha, αβ\alpha \neq \beta: Γααβ=(kβ/2)(0+0β(1/kα))=(kβ/2)(βkα/kα2)=kββkα/(2kα2)\Gamma^\beta_{\alpha\alpha} = (k_\beta/2)(0 + 0 - \partial_\beta(1/k_\alpha)) = (k_\beta/2)(\partial_\beta k_\alpha/k_\alpha^2) = k_\beta\partial_\beta k_\alpha/(2k_\alpha^2).

For constant K\mathbf{K}, all partial derivatives of kαk_\alpha vanish and so all Christoffel symbols are zero. The geodesic equation γ¨+Γijγ˙iγ˙j=0\ddot\gamma^\ell + \Gamma^\ell_{ij}\dot\gamma^i\dot\gamma^j = 0 reduces to γ¨=0\ddot\gamma^\ell = 0, giving straight-line solutions. \square

Remark (Christoffel symbols are not tensor components).

As noted in §2.4, the symbols Γkij\Gamma^k{}_{ij} carry three indices but are not tensor components: they transform inhomogeneously under coordinate changes, picking up a second-derivative term involving 2x~k/xixj\partial^2\tilde{x}^k/\partial x^i\partial x^j. The Christoffel symbols derived above are valid in the coordinate chart {x1,x2,x3}\{x^1, x^2, x^3\} aligned with the principal axes of KK. In a rotated chart the formulas change (because the matrix [Kij][K^{ij}] is no longer diagonal), even though the underlying connection \nabla and hence the geodesics are unchanged.

5.2. The 3D Rescaled Coordinate Transformation

For a constant diagonal tensor K=diag(k1,k2,k3)\mathbf{K} = \mathrm{diag}(k_1, k_2, k_3), the coordinate change

Xi=xikiX^i = \frac{x^i}{\sqrt{k_i}}

(no summation) transforms the metric to the standard Euclidean form in three dimensions:

g=(dx1)2k1+(dx2)2k2+(dx3)2k3=(dX1)2+(dX2)2+(dX3)2=δ.g = \frac{(\mathrm{d}x^1)^2}{k_1} + \frac{(\mathrm{d}x^2)^2}{k_2} + \frac{(\mathrm{d}x^3)^2}{k_3} = (\mathrm{d}X^1)^2 + (\mathrm{d}X^2)^2 + (\mathrm{d}X^3)^2 = \delta.
Corollary (3D streamlines are straight lines in rescaled coordinates).

For a constant-permeability reservoir with K=diag(k1,k2,k3)\mathbf{K} = \mathrm{diag}(k_1, k_2, k_3), fluid streamlines are straight lines in the rescaled coordinate system (X1,X2,X3)=(x1/k1,x2/k2,x3/k3)(X^1, X^2, X^3) = (x^1/\sqrt{k_1},\, x^2/\sqrt{k_2},\, x^3/\sqrt{k_3}). In the original coordinates, a streamline making angle θ\theta with the x1x^1-axis in the rescaled system makes angle θ\theta' in the original system where tanθ=(k1/k2)1/2tanθ\tan\theta' = (k_1/k_2)^{1/2}\tan\theta.

For the TI reservoir with k1=k2=khk_1 = k_2 = k_h, k3=kvk_3 = k_v, the rescaled domain is [0,Lx/kh]×[0,Ly/kh]×[0,Lz/kv][0, L_x/\sqrt{k_h}] \times [0, L_y/\sqrt{k_h}] \times [0, L_z/\sqrt{k_v}]. The vertical dimension is stretched by the factor κ\sqrt{\kappa}, so a reservoir that is geometrically thin vertically may be effectively isotropic in the rescaled coordinates when κ=kh/kv\kappa = k_h/k_v is large enough.

5.3. The Darcy–Snell Law at Permeability Interfaces

When a streamline crosses a planar boundary between two isotropic regions with permeabilities k1k_1 and k2k_2, it does not continue in the same direction. The angle of incidence and the angle of refraction are related by an exact analogue of Snell's law from optics.

Theorem (Darcy–Snell refraction law).

Consider a planar permeability interface at z=0z = 0, with isotropic permeability k1k_1 for z<0z < 0 and k2k_2 for z>0z > 0. A geodesic (streamline) arriving at the interface at angle θ1\theta_1 measured from the interface normal refracts to angle θ2\theta_2 according to

sinθ1k1=sinθ2k2.\frac{\sin\theta_1}{\sqrt{k_1}} = \frac{\sin\theta_2}{\sqrt{k_2}}.

For k2<k1k_2 < k_1 and θ1>θc=arcsin ⁣(k2/k1)\theta_1 > \theta_c = \arcsin\!\left(\sqrt{k_2/k_1}\right), no refracted geodesic exists and the streamline undergoes total reflection at the interface.

Proof. By Fermat's principle applied to the Riemannian metric, geodesics minimise the arc-length functional dsg=dx/k\int\mathrm{d}s_g = \int |\mathrm{d}\mathbf{x}|/\sqrt{k}. This is formally identical to optical path minimisation with refractive index n=1/kn = 1/\sqrt{k}: Snell's law states n1sinθ1=n2sinθ2n_1\sin\theta_1 = n_2\sin\theta_2, which translates to [eq:darcy-snell]. More directly: since k=k(z)k = k(z) depends only on zz, the Lagrangian L=(1/2k)(x˙2)L = (1/2k)(|\dot{\mathbf{x}}|^2) is independent of the tangential coordinates (x,y)(x,y). The Euler–Lagrange equations give the conserved quantities x˙/k=px\dot{x}/k = p_x and y˙/k=py\dot{y}/k = p_y. Writing the tangential speed vT2=x˙2+y˙2=x˙2sin2θ|v_T|^2 = \dot{x}^2 + \dot{y}^2 = |\dot{\mathbf{x}}|^2\sin^2\theta and the Riemannian arc-length speed x˙/k=C|\dot{\mathbf{x}}|/\sqrt{k} = C (a constant for arc-length parametrisation), the conserved tangential co-momentum is pT=x˙sinθ/k=Csinθ/kp_T = |\dot{\mathbf{x}}|\sin\theta/k = C\sin\theta/\sqrt{k}. Setting this equal across the interface gives [eq:darcy-snell]. Total reflection occurs when no real θ2\theta_2 satisfies [eq:darcy-snell], i.e., when sinθ1>k2/k1\sin\theta_1 > \sqrt{k_2/k_1}. \square

Remark (Physical interpretation of the Darcy–Snell law).

The Darcy–Snell law has direct consequences for fault seal analysis. A streamline approaching a low-permeability fault (shale smear or cemented zone, with k2k1k_2 \ll k_1) at a grazing angle θ190°\theta_1 \approx 90° satisfies sinθ1/k11/k2\sin\theta_1/\sqrt{k_1} \gg 1/\sqrt{k_2} whenever k1/k2>1/sin2θ1k_1/k_2 > 1/\sin^2\theta_1, triggering total reflection: the streamline cannot penetrate the fault and is deflected along it. The critical permeability contrast for total reflection of grazing-incidence flow is k1/k2>1/sin2θck_1/k_2 > 1/\sin^2\theta_c. For θ1=80°\theta_1 = 80° (nearly parallel flow), total reflection requires only k1/k2>1.03k_1/k_2 > 1.03, a contrast of 3 percent. Even modest permeability reductions near faults can seal oblique flow paths entirely.

This has practical consequences for secondary recovery: waterflood streamlines can bypass a fault compartment even when the fault transmissibility is non-zero, if the approach angle exceeds the critical value. The geometry predicts compartmentalisation that a transmissibility multiplier alone would not capture.

5.4. Jacobi Fields and Streamline Spreading

In three dimensions, the transverse neighbourhood of a geodesic is two-dimensional. The Jacobi equation governs how nearby geodesics (streamlines) spread apart:

D2Jds2+R(J,γ˙)γ˙=0,\frac{D^2 J}{ds^2} + R(J,\,\dot\gamma)\dot\gamma = 0,

where D/ds=γ˙D/ds = \nabla_{\dot\gamma} is the covariant derivative along the geodesic γ\gamma, JJ is a Jacobi field (transverse deviation vector, g(J,γ˙)=0g(J, \dot\gamma) = 0), and RR is the Riemann curvature tensor. In 3D, there are two independent transverse directions, and two independent Jacobi fields J1,J2J_1, J_2 govern the spreading of the flow tube cross-section.

Remark (Flow tube cross-sectional area).

Let A(s)A(s) be the cross-sectional area of a flow tube at arc-length ss along the central geodesic. To leading order in curvature,

d2Ads2Ric(γ˙,γ˙)A,\frac{\mathrm{d}^2 A}{\mathrm{d}s^2} \approx -\mathrm{Ric}(\dot\gamma, \dot\gamma)\,A,

where Ric(γ˙,γ˙)=Rijγ˙iγ˙j\mathrm{Ric}(\dot\gamma, \dot\gamma) = R_{ij}\dot\gamma^i\dot\gamma^j is the Ricci curvature in the flow direction. If Ric(γ˙,γ˙)>0\mathrm{Ric}(\dot\gamma, \dot\gamma) > 0, the flow tube area decreases (streamlines focus): the formation acts as a converging lens for fluid. If Ric(γ˙,γ˙)<0\mathrm{Ric}(\dot\gamma, \dot\gamma) < 0, the area increases (streamlines defocus): the formation acts as a diverging lens. For the isotropic conformal metric g=(1/k)δg = (1/k)\delta, positive Ricci curvature in the flow direction corresponds to regions where the permeability increases along the streamline path, focusing flow toward high-conductivity channels. Negative Ricci curvature corresponds to permeability decreasing along the path, defocusing the flow into the surrounding rock.

The Jacobi field equation is the 3D geometric description of the phenomenon that practitioners call flow channelling: preferential flow through high-permeability streaks or fractures, resulting in early breakthrough in secondary recovery operations. The curvature of the permeability field determines whether and how rapidly channelling develops along a given flow path.

6. Curvature of the 3D Permeability Field

6.1. The 3D Conformal Isotropic Metric

For an isotropic but spatially variable permeability k(x)k(\mathbf{x}), the permeability tensor is K=k(x)I3\mathbf{K} = k(\mathbf{x})\,\mathbf{I}_3 and the metric is

g=1k(x)δ,gij=δijk(x).g = \frac{1}{k(\mathbf{x})}\,\delta, \qquad g_{ij} = \frac{\delta_{ij}}{k(\mathbf{x})}.

This is a conformally flat metric in R3\mathbb{R}^3: it is related to the Euclidean metric by the scalar conformal factor 1/k(x)1/k(\mathbf{x}). In index notation, gij=(1/k)δijg_{ij} = (1/k)\,\delta_{ij} and gij=kδijg^{ij} = k\,\delta^{ij}, where δij\delta_{ij} is the Euclidean metric tensor (components: 1 on the diagonal, 0 off it, in every orthonormal chart). Writing g=e2φδg = e^{2\varphi}\delta, the conformal factor is e2φ=1/ke^{2\varphi} = 1/k and hence φ=12lnk\varphi = -\tfrac{1}{2}\ln k.

The general formula for the scalar curvature of a conformally flat metric g=e2φδg = e^{2\varphi}\delta on Rn\mathbb{R}^n is

Rg=e2φ(2(n1)Δφ(n1)(n2)φ2),R_g = e^{-2\varphi}\bigl(-2(n-1)\Delta\varphi - (n-1)(n-2)|\nabla\varphi|^2\bigr),

where Δ\Delta and \nabla are the ordinary Euclidean operators. For n=2n = 2 this gives the Liouville formula R=2e2φΔφR = -2e^{-2\varphi}\Delta\varphi. For n=3n = 3, the formula acquires a second term.

6.2. The 3D Scalar Curvature Formula

Theorem (Scalar curvature of the 3D isotropic reservoir metric).

For the conformally flat isotropic metric g=(1/k)δg = (1/k)\,\delta in three dimensions, the scalar curvature is

R=2Δk52k2k,R = 2\Delta k - \frac{5}{2}\,\frac{|\nabla k|^2}{k},

where Δ\Delta and \nabla are the Euclidean Laplacian and gradient. In particular, R=0R = 0 whenever kk is constant.

For comparison, in two dimensions the same metric yields

R(2)=Δkk2k.R^{(2)} = \Delta k - \frac{|\nabla k|^2}{k}.

The 3D formula has a larger coefficient in front of k2/k|\nabla k|^2/k, meaning that sharp permeability gradients produce stronger curvature effects in 3D than in 2D.

Proof. Set φ=12lnk\varphi = -\tfrac{1}{2}\ln k and compute the ingredients:

φ=k2k,φ2=k24k2.\nabla\varphi = -\frac{\nabla k}{2k}, \qquad |\nabla\varphi|^2 = \frac{|\nabla k|^2}{4k^2}.

For the Euclidean Laplacian of φ\varphi:

Δφ=12Δ(lnk)=12 ⁣(Δkkk2k2).\Delta\varphi = -\frac{1}{2}\Delta(\ln k) = -\frac{1}{2}\!\left(\frac{\Delta k}{k} - \frac{|\nabla k|^2}{k^2}\right).

Substituting into [eq:conformal-curvature] with n=3n = 3 (so n1=2n-1 = 2, n2=1n-2 = 1) and e2φ=ke^{-2\varphi} = k:

R=k ⁣(4Δφ2φ2).R = k\!\left(-4\Delta\varphi - 2|\nabla\varphi|^2\right).

Substituting [eq:phi-gradient] and [eq:phi-laplacian]:

R=k ⁣(4 ⁣(12) ⁣(Δkkk2k2)2k24k2)=k ⁣(2Δkk2k2k2k22k2).R = k\!\left(-4\cdot\!\left(-\frac{1}{2}\right)\!\left(\frac{\Delta k}{k} - \frac{|\nabla k|^2}{k^2}\right) - 2\cdot\frac{|\nabla k|^2}{4k^2}\right) = k\!\left(\frac{2\Delta k}{k} - \frac{2|\nabla k|^2}{k^2} - \frac{|\nabla k|^2}{2k^2}\right).

Collecting terms:

R=2Δk52k2k.R = 2\Delta k - \frac{5}{2}\,\frac{|\nabla k|^2}{k}.

For constant kk, both Δk=0\Delta k = 0 and k=0\nabla k = 0, giving R=0R = 0, where Δk=δijijk\Delta k = \delta^{ij}\partial_i\partial_j k is the Laplacian on the flat Euclidean background (acting on the scalar field kk), distinct from the Laplace-Beltrami Δg\Delta_g on the curved manifold (R,g)(\mathcal{R}, g). The 2D formula [eq:scalar-curvature-2d] follows from the same calculation with n=2n = 2 (the φ2|\nabla\varphi|^2 term vanishes in [eq:conformal-curvature] for n=2n = 2). \square

6.3. The Weyl Tensor Vanishes in 3D

In any dimension, the Riemann curvature tensor decomposes into a trace-free part (the Weyl tensor CijklC_{ijkl}) and a part determined by the Ricci tensor. In three dimensions, a special algebraic accident occurs: the Weyl tensor has no independent components and vanishes identically.

Proposition (Weyl curvature vanishes for 3D conformally flat metrics).

In three dimensions, the Weyl curvature tensor vanishes for every conformally flat metric g=e2φδg = e^{2\varphi}\delta, including in particular the isotropic permeability metric g=(1/k)δg = (1/k)\delta. The full Riemann curvature tensor is determined entirely by the Ricci tensor via

Rijkl=gikRicjlgilRicjkgjkRicil+gjlRicikR2(gikgjlgilgjk).R_{ijkl} = g_{ik}\,\mathrm{Ric}_{jl} - g_{il}\,\mathrm{Ric}_{jk} - g_{jk}\,\mathrm{Ric}_{il} + g_{jl}\,\mathrm{Ric}_{ik} - \frac{R}{2}(g_{ik}g_{jl} - g_{il}g_{jk}).

Proof. In dimension n=3n = 3, the Weyl tensor is defined as the totally trace-free part of the Riemann tensor. A dimension count shows that in 3D the Riemann tensor has 6 independent components, and the Ricci tensor also has 6 independent components (as a symmetric 3×33 \times 3 matrix). The Weyl tensor therefore has zero independent components, and the Riemann tensor is fully determined by the Ricci tensor via the identity [eq:riemann-3d]. For a conformally flat metric, the Weyl tensor vanishes in any dimension by definition of conformal flatness; in 3D this is an empty condition, since all 3-manifolds are conformally flat (the Cotton tensor, not the Weyl tensor, is the correct conformal invariant in 3D). \square

Remark (Physical implication: curvature is purely local).

The vanishing of the Weyl tensor in 3D means there is no propagating curvature, no gravitational-wave analogue for reservoir pressure. In 4D general relativity, the Weyl tensor carries gravitational wave degrees of freedom; in 3D it is absent. For the reservoir, this means the full geometry of the permeability field is locally determined by the scalar curvature RR (and the Ricci tensor, which carries slightly more information than RR alone). There are no long-range curvature effects that are invisible in the scalar curvature. A sensor measuring local pressure at a point in the formation sees all the geometric information available.

6.4. Curvature and Pressure Transient Anomalies

The scalar curvature RR in [eq:scalar-curvature-3d] has a direct well-test interpretation. Since R=2Δk(5/2)k2/kR = 2\Delta k - (5/2)|\nabla k|^2/k, large R|R| signals one of two conditions: large absolute variation in permeability (Δk\Delta k large, i.e., concave or convex permeability profiles), or large relative gradients (k2/k|\nabla k|^2/k large, i.e., sharp layering boundaries or fracture edges). Both conditions produce departures from the Theis/spherical pressure signatures. In quantitative terms, the pressure satisfies tp=DΔgp\partial_t p = D\Delta_g p where the Laplace–Beltrami operator carries the curvature corrections in [eq:lb-correction], and those corrections are proportional to lndetK\nabla\ln\det\mathbf{K}, which is itself related to the scalar curvature through RR. A high-curvature zone reached by the pressure diffusion front at time tr2/(4D)t_* \sim r_*^2/(4D) produces an anomaly in the second derivative of pressure with respect to lnt\ln t whose amplitude is proportional to R(r)R(r_*).

7. Pseudosteady-State and 3D Spectral Theory

7.1. The 3D Eigenvalue Problem

At late times in a bounded reservoir, the pressure profile relaxes to a pseudosteady-state regime in which every point declines at the same exponential rate. This is the first eigenfunction of the Laplace–Beltrami operator.

Definition (3D pseudosteady-state eigenvalue problem).

For a bounded reservoir RR3\mathcal{R} \subset \mathbb{R}^3 with Dirichlet outer boundary condition pR=0p|_{\partial\mathcal{R}} = 0, the pressure modes satisfy

Δgψlmn=λlmnψlmn,ψlmnR=0,-\Delta_g\,\psi_{lmn} = \lambda_{lmn}\,\psi_{lmn}, \qquad \psi_{lmn}|_{\partial\mathcal{R}} = 0,

where Δg\Delta_g is the Laplace–Beltrami operator for the metric g=K1g = K^{-1}. The eigenvalues 0<λ111λ1120 < \lambda_{111} \leq \lambda_{112} \leq \ldots are real, positive, and discrete.

Remark (Eigenvalues are coordinate-invariant scalars).

The eigenvalues λlmn\lambda_{lmn} are scalars: they do not depend on the coordinate chart used to describe the reservoir. The eigenvalue equation Δgψ=λψ-\Delta_g\,\psi = \lambda\,\psi is written in terms of the Laplace-Beltrami operator Δg\Delta_g, which is intrinsic to the Riemannian manifold (R,g)(\mathcal{R}, g). The explicit formula for λlmn\lambda_{lmn} on the rectangular parallelepiped uses a specific coordinate chart aligned with the box axes, but the values λlmn\lambda_{lmn} are the same in every chart.

7.2. Rectangular Parallelepiped with TI Anisotropy

Theorem (3D pseudosteady-state eigenvalues for a rectangular parallelepiped).

For a rectangular parallelepiped reservoir R=[0,Lx]×[0,Ly]×[0,Lz]\mathcal{R} = [0, L_x] \times [0, L_y] \times [0, L_z] with transversely isotropic permeability tensor KTI=diag(kh,kh,kv)\mathbf{K}_\mathrm{TI} = \mathrm{diag}(k_h, k_h, k_v) and horizontal diffusivity D=kh/(ϕμct)D = k_h/(\phi\mu c_t), the Dirichlet eigenvalues of Δg-\Delta_g are

λlmn=π2D ⁣(l2Lx2+m2Ly2+n2κLz2),l,m,n=1,2,3,\lambda_{lmn} = \pi^2 D\!\left(\frac{l^2}{L_x^2} + \frac{m^2}{L_y^2} + \frac{n^2\kappa}{L_z^2}\right), \qquad l, m, n = 1, 2, 3, \ldots

where κ=kh/kv\kappa = k_h/k_v is the anisotropy ratio. The fundamental (smallest) eigenvalue is λ111\lambda_{111} and the corresponding pseudosteady-state time constant is

τ111=1λ111=ϕμctπ2kh1Lx2+Ly2+κLz2.\tau_{111} = \frac{1}{\lambda_{111}} = \frac{\phi\mu c_t}{\pi^2 k_h}\,\frac{1}{L_x^{-2} + L_y^{-2} + \kappa L_z^{-2}}.

Proof. In the rescaled coordinates X=x/khX = x/\sqrt{k_h}, Y=y/khY = y/\sqrt{k_h}, Z=z/kvZ = z/\sqrt{k_v}, the metric is Euclidean (Corollary [geodesic-streamline-3d]) and the domain transforms to [0,L~x]×[0,L~y]×[0,L~z][0, \tilde{L}_x] \times [0, \tilde{L}_y] \times [0, \tilde{L}_z] with L~x=Lx/kh\tilde{L}_x = L_x/\sqrt{k_h}, L~y=Ly/kh\tilde{L}_y = L_y/\sqrt{k_h}, L~z=Lz/kv\tilde{L}_z = L_z/\sqrt{k_v}. The Laplace–Beltrami operator in rescaled coordinates is the standard Euclidean Laplacian Δ(X,Y,Z)\Delta_{(X,Y,Z)}, and the Dirichlet problem on a rectangular parallelepiped has eigenfunctions

ψlmn(X,Y,Z)=sin ⁣(lπXL~x)sin ⁣(mπYL~y)sin ⁣(nπZL~z)\psi_{lmn}(X,Y,Z) = \sin\!\left(\frac{l\pi X}{\tilde{L}_x}\right)\sin\!\left(\frac{m\pi Y}{\tilde{L}_y}\right)\sin\!\left(\frac{n\pi Z}{\tilde{L}_z}\right)

with eigenvalues

λlmn=π2 ⁣(l2L~x2+m2L~y2+n2L~z2)=π2 ⁣(l2khLx2+m2khLy2+n2kvLz2).\lambda_{lmn} = \pi^2\!\left(\frac{l^2}{\tilde{L}_x^2} + \frac{m^2}{\tilde{L}_y^2} + \frac{n^2}{\tilde{L}_z^2}\right) = \pi^2\!\left(\frac{l^2 k_h}{L_x^2} + \frac{m^2 k_h}{L_y^2} + \frac{n^2 k_v}{L_z^2}\right).

Dividing by D=kh/(ϕμct)D = k_h/(\phi\mu c_t) to restore physical units and factoring out khk_h gives [eq:pss-eigenvalues-3d]. The time constant follows by inverting λ111\lambda_{111}. \square

Remark (Mode ordering and vertical anisotropy).

The anisotropy ratio κ\kappa enters only the nn-indexed (vertical) modes. For a reservoir with large κ\kappa and relatively small LzL_z, the vertical mode n=1n=1 may have a much larger eigenvalue than the horizontal modes: λ1,1,1λ1,1,0\lambda_{1,1,1} \gg \lambda_{1,1,0} (if such a mode existed). In practice, this means the vertical pressure variation equilibrates much faster than the horizontal variation in a highly layered reservoir. The first non-trivial vertical overtone λ112\lambda_{112} has eigenvalue λ112=π2D(Lx2+Ly2+4κLz2)\lambda_{112} = \pi^2 D(L_x^{-2} + L_y^{-2} + 4\kappa L_z^{-2}); the ratio λ112/λ111\lambda_{112}/\lambda_{111} gives the time scale separation between vertical and horizontal equilibration.

The full 3D spectral decomposition is

p(x,t)=l,m,n=1clmnψlmn(x)eλlmnt,p(\mathbf{x}, t) = \sum_{l,m,n=1}^{\infty} c_{lmn}\,\psi_{lmn}(\mathbf{x})\,e^{-\lambda_{lmn} t},

where the coefficients clmnc_{lmn} are determined by the initial condition. For tτ111t \gg \tau_{111}, only the fundamental mode survives: pc111ψ111eλ111tp \approx c_{111}\psi_{111}e^{-\lambda_{111}t}, the three-dimensional pseudosteady state. The fundamental eigenvalue is directly measurable as the slope of the pressure-versus-time curve on a semi-log scale during the pseudosteady-state period.

8. The SPD(3) Manifold of Permeability Tensors

8.1. Permeability Space as a Manifold

Two distinct Riemannian manifolds appear in reservoir geometry, and it is worth separating them precisely. The first is the physical reservoir domain, the open region RR3\mathcal{R} \subset \mathbb{R}^3 occupied by the formation. That region has no intrinsic Riemannian structure of its own: it is simply an open subset of Euclidean three-space. The Riemannian metric g=K1g = \mathbf{K}^{-1} is not a property of the domain as a topological space but of the material sitting inside it. The reservoir domain is the base space; the geometry lives in the fibre.

The second manifold is the space of pointwise material properties. At every spatial location xRx \in \mathcal{R}, the rock possesses a permeability tensor K(x)\mathbf{K}(x). The values that K(x)\mathbf{K}(x) can take form not a vector space but a manifold: the set of all symmetric positive definite 3×33 \times 3 matrices, denoted SPD(3)\mathrm{SPD}(3). The permeability field is therefore a smooth section of a fibre bundle over R\mathcal{R}: the base manifold is the physical domain RR3\mathcal{R} \subset \mathbb{R}^3, the fibre at each xRx \in \mathcal{R} is a copy of SPD(3)\mathrm{SPD}(3), and K ⁣:RSPD(3)\mathbf{K} \colon \mathcal{R} \to \mathrm{SPD}(3) is a section of that bundle. More precisely, the fibre is the space of coordinate matrices [Kij(x)][K^{ij}(x)] of the permeability tensor in a chosen chart. A change of chart at xx acts on the fibre by the congruence [Kij]J[Kij]J[K^{ij}] \mapsto J [K^{ij}] J^\top (from the transformation law [eq:K-transform]). The fibre bundle is therefore associated to the frame bundle of R\mathcal{R}, with structure group GL(3,R)\mathrm{GL}(3, \mathbb{R}) acting by congruence. The affine-invariant metric on SPD(3)\mathrm{SPD}(3) is invariant under this action, which is why it is the natural choice for reservoir applications.

As a topological space, SPD(3)\mathrm{SPD}(3) sits inside the tensor product space (R3)2R9(\mathbb{R}^3)^{\otimes 2} \cong \mathbb{R}^9: a 3×33 \times 3 matrix is a rank-2 tensor, and its nine components embed it in R3R3\mathbb{R}^3 \otimes \mathbb{R}^3. Imposing symmetry cuts this to the 6-dimensional subspace Sym2(R3)R6\mathrm{Sym}^2(\mathbb{R}^3) \cong \mathbb{R}^6, and imposing positive definiteness selects the open cone SPD(3)Sym2(R3)\mathrm{SPD}(3) \subset \mathrm{Sym}^2(\mathbb{R}^3). It is the fibre that lives in this tensor power, not the physical domain. This distinction carries forward when collections of tensors of different ranks are associated to a point: a scalar permeability, a full 3×33 \times 3 permeability tensor, and an elasticity tensor of rank 4 (living in (R3)4(\mathbb{R}^3)^{\otimes 4}) are all fibres over the same base point xR3x \in \mathbb{R}^3, contributing to a multi-rank vector bundle of material properties.

With this structure in place, the geodesic interpolation of permeability tensors is a question about geodesics in the fibre manifold SPD(3)\mathrm{SPD}(3). Given two measurements K0\mathbf{K}_0 and K1\mathbf{K}_1 at distinct base points, or two rock samples whose blended properties must be estimated, the geodesic in SPD(3)\mathrm{SPD}(3) connecting them is the physically correct interpolant.

Definition (The SPD(3) manifold).

The set of symmetric positive definite 3×33 \times 3 matrices,

SPD(3)={PR3×3:P=P,  vPv>0  v0},\mathrm{SPD}(3) = \{\mathbf{P} \in \mathbb{R}^{3\times 3} : \mathbf{P} = \mathbf{P}^\top,\; \mathbf{v}^\top\mathbf{P}\mathbf{v} > 0\;\forall\,\mathbf{v}\neq 0\},

is a smooth Riemannian manifold of dimension 66 (six independent entries) with the affine-invariant (Fisher–Rao) metric

U,VP=tr(P1UP1V),\langle \mathbf{U}, \mathbf{V} \rangle_{\mathbf{P}} = \mathrm{tr}(\mathbf{P}^{-1}\mathbf{U}\,\mathbf{P}^{-1}\mathbf{V}),

where U,VTPSPD(3)Sym(3)\mathbf{U}, \mathbf{V} \in T_\mathbf{P}\,\mathrm{SPD}(3) \cong \mathrm{Sym}(3) are symmetric matrices (tangent vectors at P\mathbf{P}). The elements of SPD(3)\mathrm{SPD}(3) are 3×33 \times 3 symmetric positive definite matrices, that is, the coordinate matrix representations [Kij][K^{ij}] of permeability tensors in a fixed chart. The manifold structure is therefore chart-dependent: the geodesic distance between two permeability states is computed between their matrix representations, and is consistent only if both matrices are expressed in the same coordinate chart.

The affine-invariant metric is the natural choice for permeability tensors: it is invariant under congruence transformations PAPA\mathbf{P} \mapsto \mathbf{A}\mathbf{P}\mathbf{A}^\top for any invertible A\mathbf{A}, corresponding to invariance under change of coordinate frame in the reservoir. No particular drilling orientation or bed-dip coordinate system is preferred by the geometry.

8.2. Geodesic Interpolation of 3D Permeability

Theorem (Geodesic on SPD(3)).

The unique minimising geodesic from K0SPD(3)\mathbf{K}_0 \in \mathrm{SPD}(3) (the coordinate matrix [Kij(x0)][K^{ij}(x_0)] of the permeability tensor at formation point x0x_0) to K1SPD(3)\mathbf{K}_1 \in \mathrm{SPD}(3) (the coordinate matrix [Kij(x1)][K^{ij}(x_1)] at point x1x_1, both expressed in the same chart) is

γ(t)=K01/2 ⁣(K01/2K1K01/2) ⁣t ⁣K01/2,t[0,1],\gamma(t) = \mathbf{K}_0^{1/2}\!\left(\mathbf{K}_0^{-1/2}\mathbf{K}_1\mathbf{K}_0^{-1/2}\right)^{\!t}\!\mathbf{K}_0^{1/2}, \qquad t \in [0,1],

and the geodesic distance between the two tensors is

d(K0,K1)=log ⁣(K01/2K1K01/2)F=(i=13log2λi)1/2,d(\mathbf{K}_0, \mathbf{K}_1) = \left\|\log\!\left(\mathbf{K}_0^{-1/2}\mathbf{K}_1\mathbf{K}_0^{-1/2}\right)\right\|_F = \left(\sum_{i=1}^{3} \log^2\lambda_i\right)^{1/2},

where λi\lambda_i are the generalised eigenvalues of K1\mathbf{K}_1 relative to K0\mathbf{K}_0 and F\|\cdot\|_F is the Frobenius norm.

Remark (Why linear interpolation of permeability tensors is incorrect).

The naive arithmetic mean (1t)K0+tK1(1-t)\mathbf{K}_0 + t\mathbf{K}_1 is not a geodesic on SPD(3)\mathrm{SPD}(3) and violates the physical symmetry of the problem: the arithmetic midpoint of K0\mathbf{K}_0 and K1\mathbf{K}_1 is not the inverse of the arithmetic midpoint of K01\mathbf{K}_0^{-1} and K11\mathbf{K}_1^{-1}. In other words, arithmetic interpolation of permeabilities is inconsistent with arithmetic interpolation of resistivities. The geodesic interpolation [eq:spd-geodesic] satisfies this consistency property: the geodesic midpoint of K01\mathbf{K}_0^{-1} and K11\mathbf{K}_1^{-1} is exactly the inverse of the geodesic midpoint of K0\mathbf{K}_0 and K1\mathbf{K}_1.

For the 3D TI tensor, arithmetic averaging of khk_h and kvk_v independently is equivalent to arithmetic interpolation of the diagonal entries, and it overestimates the effective horizontal permeability of a mixed facies zone by the arithmetic-vs-harmonic mean discrepancy. Geodesic interpolation in SPD(3)\mathrm{SPD}(3) naturally accounts for the coupling between horizontal and vertical components when the principal axes of the two formation tensors are not aligned (e.g., when the bedding dip changes between the two measurement points).

8.3. Tensor Rotation and Coordinate Invariance

Proposition (Coordinate rotation of the 3D permeability tensor).

Under a rotation RSO(3)\mathbf{R} \in \mathrm{SO}(3), the permeability tensor transforms as K=RKR\mathbf{K}' = \mathbf{R}\mathbf{K}\mathbf{R}^\top. The invariants under this transformation are:

det(K)=det(K),tr(K)=tr(K),tr(K2)=tr(K2).\det(\mathbf{K}') = \det(\mathbf{K}), \quad \mathrm{tr}(\mathbf{K}') = \mathrm{tr}(\mathbf{K}), \quad \mathrm{tr}(\mathbf{K}'^2) = \mathrm{tr}(\mathbf{K}^2).

These are the three elementary symmetric functions of the eigenvalues of K\mathbf{K}, and they are coordinate-invariant properties of the tensor.

Proof. det(RKR)=det(K)\det(\mathbf{R}\mathbf{K}\mathbf{R}^\top) = \det(\mathbf{K}) since detR=1\det\mathbf{R} = 1. tr(RKR)=tr(KRR)=tr(K)\mathrm{tr}(\mathbf{R}\mathbf{K}\mathbf{R}^\top) = \mathrm{tr}(\mathbf{K}\mathbf{R}^\top\mathbf{R}) = \mathrm{tr}(\mathbf{K}) by cyclic invariance. tr((RKR)2)=tr(RK2R)=tr(K2)\mathrm{tr}((\mathbf{R}\mathbf{K}\mathbf{R}^\top)^2) = \mathrm{tr}(\mathbf{R}\mathbf{K}^2\mathbf{R}^\top) = \mathrm{tr}(\mathbf{K}^2) by the same argument. \square

The geometric mean permeability kg=(detK)1/3k_g = (\det\mathbf{K})^{1/3}, the arithmetic mean ka=tr(K)/3k_a = \mathrm{tr}(\mathbf{K})/3, and the quadratic mean kq=(tr(K2)/3)1/2k_q = (\mathrm{tr}(\mathbf{K}^2)/3)^{1/2} are all coordinate-invariant measures of the permeability tensor. For the TI tensor, these evaluate to kg=kh2/3kv1/3k_g = k_h^{2/3}k_v^{1/3}, ka=(2kh+kv)/3k_a = (2k_h + k_v)/3, and kq=((2kh2+kv2)/3)1/2k_q = ((2k_h^2+k_v^2)/3)^{1/2}, each representing a different averaging convention.

9. The Deforming Reservoir: Biot Poroelasticity and Evolving Geometry

9.1. The Static Assumption and When It Fails

Sections §3–§8 treat the Riemannian manifold (R,g)(\mathcal{R}, g) as static: the domain RR3\mathcal{R} \subset \mathbb{R}^3 is fixed, the permeability tensor field KK is time-independent, and the metric g=K1g = K^{-1} does not evolve. The pressure equation is a heat equation on a frozen geometry.

This is appropriate for stiff formations where pore pressure depletion does not significantly change the pore geometry. For many reservoir types it is not appropriate. In chalk reservoirs (Ekofisk, Valhall in the North Sea), the rock matrix is highly compressible; Ekofisk exhibited several metres of seabed subsidence during production, driven by compaction of the chalk formation at depth. In tight sandstones and shales, effective stress changes alter pore throat geometry and hence permeability by factors of two to five over a production lifetime. In these settings the solid skeleton deforms as fluid is produced, porosity ϕ(x,t)\phi(x, t) decreases, permeability Kij(x,t)K^{ij}(x, t) changes, and the metric gij(x,t)=(K1)ij(x,t)g_{ij}(x, t) = (K^{-1})_{ij}(x, t) evolves. The manifold is not static: it is deforming.

The correct framework for coupled solid deformation and fluid flow in porous media is Biot poroelasticity, developed by Maurice Biot in a series of papers beginning in 1941. It extends Terzaghi's 1923 one-dimensional consolidation theory to three dimensions and provides the full coupled PDE system from which the deforming metric emerges naturally.

9.2. Kinematics of the Deforming Solid

Let R0R3\mathcal{R}_0 \subset \mathbb{R}^3 denote the reference (undeformed) configuration of the reservoir at time t=0t = 0, with material points labelled by Lagrangian coordinates XIX^I (I=1,2,3I = 1, 2, 3). At time tt, the solid skeleton occupies the current configuration R(t)\mathcal{R}(t), with Eulerian coordinates xix^i. The motion is described by a smooth diffeomorphism

φt ⁣:R0R(t),Xx=φt(X).\varphi_t \colon \mathcal{R}_0 \to \mathcal{R}(t), \qquad X \mapsto x = \varphi_t(X).

The deformation gradient is the mixed (1,1)(1, 1) tensor

FiJ(X,t)=φtiXJ(X),F^i{}_J(X, t) = \frac{\partial \varphi_t^i}{\partial X^J}(X),

with Jacobian JF=det[FiJ]>0J_F = \det[F^i{}_J] > 0. The solid displacement field in the linearised (small-strain) regime has Eulerian components usi(x,t)u^i_s(x, t) with FiJδJi+JusiF^i{}_J \approx \delta^i_J + \partial_J u^i_s.

The linearised strain tensor is the symmetric (0,2)(0, 2) covariant tensor

εij=12 ⁣(ius,j+jus,i)=12 ⁣(ius,j+jus,i),\varepsilon_{ij} = \frac{1}{2}\!\left(\nabla_i u_{s,j} + \nabla_j u_{s,i}\right) = \frac{1}{2}\!\left(\partial_i u_{s,j} + \partial_j u_{s,i}\right),

where us,i=gijusju_{s,i} = g_{ij} u^j_s are the covariant components of the displacement. The volumetric dilatation is the scalar trace

e=gijεij=iusi,e = g^{ij}\,\varepsilon_{ij} = \nabla_i u^i_s,

which in Cartesian coordinates reduces to e=iusi=use = \partial_i u^i_s = \nabla \cdot \mathbf{u}_s.

9.3. Biot Constitutive Relations

Linear Biot poroelasticity couples the solid stress to the fluid pressure through two constitutive equations. The first relates the total stress tensor σij\sigma^{ij} (a contravariant (2,0)(2,0) tensor) to the strain and the pressure:

σij=Cijklεklαpgij.\sigma^{ij} = C^{ijkl}\,\varepsilon_{kl} - \alpha\, p\, g^{ij}.

Here CijklC^{ijkl} is the drained elastic stiffness tensor, a (4,0)(4, 0) tensor satisfying the major and minor symmetries Cijkl=Cjikl=Cijlk=CklijC^{ijkl} = C^{jikl} = C^{ijlk} = C^{klij}. For an isotropic solid it reduces to two Lamé parameters: Cijkl=λsgijgkl+μs(gikgjl+gilgjk)C^{ijkl} = \lambda_s g^{ij} g^{kl} + \mu_s(g^{ik}g^{jl} + g^{il}g^{jk}). The scalar α(0,1]\alpha \in (0, 1] is the Biot-Willis coefficient, measuring the ratio of pore volume change to total volume change at constant fluid pressure; α=1\alpha = 1 for an incompressible solid grain.

The second constitutive relation defines the increment of fluid content ζ\zeta (volume of fluid added per unit reference volume of porous medium):

ζ=αe+pM,\zeta = \alpha\, e + \frac{p}{M},

where M>0M > 0 is the Biot modulus, the inverse of the combined compressibility of the fluid and the pore space at constant volumetric strain.

Remark (Physical ranges of Biot parameters).

For consolidated sandstones, α[0.5,0.85]\alpha \in [0.5, 0.85] and M[5,50]GPaM \in [5, 50]\,\mathrm{GPa}. For chalk, α0.95\alpha \approx 0.95 and M2GPaM \approx 2\,\mathrm{GPa}, reflecting the high compressibility of the chalk matrix. For hard crystalline basement rock, α0.1\alpha \approx 0.1 and MM is very large, recovering near-incompressible behaviour. The undrained bulk modulus is Ku=Kd+α2MK_u = K_d + \alpha^2 M, where Kd=λs+2μs/3K_d = \lambda_s + 2\mu_s/3 is the drained modulus.

9.4. Governing Equations in Abstract Index Form

The three governing equations of quasistatic Biot poroelasticity are:

Solid equilibrium (inertia neglected on reservoir timescales):

jσij=0j ⁣(Cijklεkl)αgijjp=0.\nabla_j \sigma^{ij} = 0 \quad\Longrightarrow\quad \nabla_j\!\left(C^{ijkl}\,\varepsilon_{kl}\right) - \alpha\, g^{ij}\,\partial_j p = 0.

Fluid mass conservation:

ζt+iqi=Q(x,t),\frac{\partial \zeta}{\partial t} + \nabla_i q^i = Q(x, t),

where QQ is a volumetric source/sink term (positive for injection, negative for production) and qiq^i are the contravariant components of the Darcy flux vector.

Darcy transport with time-dependent permeability:

qi=1μfKij(x,t)jp=1μf(gradg(t)p)i.q^i = -\frac{1}{\mu_f}\,K^{ij}(x, t)\,\partial_j p = -\frac{1}{\mu_f}\,\bigl(\mathrm{grad}_{g(t)}\,p\bigr)^i.

Here Kij(x,t)K^{ij}(x, t) are the contravariant components of the permeability tensor in the current configuration, and gradg(t)p\mathrm{grad}_{g(t)}\,p is the Riemannian gradient of pp with respect to the time-dependent metric gij(t)=(K1)ij(t)g_{ij}(t) = (K^{-1})_{ij}(t). The identification of the Darcy flux as a Riemannian gradient holds at every time tt by the same argument as in §3, applied to the instantaneous metric.

Substituting [eq:biot-zeta] and [eq:darcy-time] into [eq:fluid-mass] gives the coupled fluid equation:

αet+1Mpt=1μfi ⁣(Kij(x,t)jp)+Q.\alpha\,\frac{\partial e}{\partial t} + \frac{1}{M}\frac{\partial p}{\partial t} = \frac{1}{\mu_f}\,\nabla_i\!\left(K^{ij}(x,t)\,\partial_j p\right) + Q.

The left side is the rate of change of fluid content; the right side is the Riemannian divergence of the Darcy flux plus sources. Equations [eq:solid-eq] and [eq:biot-fluid] are coupled: the pressure pp drives the solid through the αgijjp\alpha\,g^{ij}\partial_j p term in [eq:solid-eq], and the solid deformation drives the fluid through the αte\alpha\,\partial_t e term in [eq:biot-fluid].

9.5. Porosity Evolution and Kozeny-Carman Permeability

From the Biot constitutive relation [eq:biot-zeta], the porosity evolves as

ϕ(x,t)=ϕ0(x)+αe(x,t)+p(x,t)M,\phi(x, t) = \phi_0(x) + \alpha\, e(x, t) + \frac{p(x, t)}{M},

where ϕ0(x)=ϕ(x,0)\phi_0(x) = \phi(x, 0) is the initial porosity. The change in porosity is driven jointly by solid compaction (the αe\alpha e term) and by direct pore compressibility (the p/Mp/M term).

The Kozeny-Carman relation connects porosity to permeability through the pore geometry. For a medium with tortuous pore channels of characteristic grain size dpd_p, the scalar permeability scales as

kϕ3dp2180(1ϕ)2,k \sim \frac{\phi^3\, d_p^2}{180\,(1-\phi)^2},

first derived by Kozeny (1927) and Carman (1937). The dependence on ϕ3/(1ϕ)2\phi^3/(1-\phi)^2 is steep: a 10% reduction in porosity reduces permeability by roughly 25-40%, depending on the current porosity value. For the full 3D anisotropic tensor, the Kozeny-Carman structure is preserved if the anisotropy arises solely from pore-channel orientation rather than from changes in pore geometry at each scale. In that case

Kij(x,t)=f ⁣(ϕ(x,t)ϕ0(x))K0ij(x),K^{ij}(x, t) = f\!\left(\frac{\phi(x,t)}{\phi_0(x)}\right)\,K^{ij}_0(x),

where K0ij(x)=Kij(x,0)K^{ij}_0(x) = K^{ij}(x, 0) are the reference permeability tensor components, and the scalar Kozeny-Carman factor is

f(r)=r3(1ϕ0)2(1ϕ0r)2,r=ϕϕ0.f(r) = r^3\,\frac{(1 - \phi_0)^2}{(1 - \phi_0 r)^2}, \qquad r = \frac{\phi}{\phi_0}.

Note that f(1)=1f(1) = 1 (the reference state is recovered) and f(r)>0f'(r) > 0 (permeability increases with porosity). The key property of equation [eq:KC-tensor] is that it preserves the tensor structure of K0ijK^{ij}_0: the anisotropy ratio, the orientation of the principal axes, and the eigenvector directions are all unchanged by compaction. Only the overall magnitude scales. This is the assumption that the pore network remains geometrically similar under compression, a good approximation for matrix compaction in intergranular porosity, and a poor one for fracture closure (where individual fracture sets may close while others remain open).

Taking the time derivative of [eq:KC-tensor] and using tϕ=αte+(1/M)tp\partial_t \phi = \alpha\,\partial_t e + (1/M)\,\partial_t p from [eq:porosity-evol]:

Kijt=(dlnfdϕϕt)Kij=f(ϕ/ϕ0)f(ϕ/ϕ0)ϕ0(αet+1Mpt)Kij.\frac{\partial K^{ij}}{\partial t} = \left(\frac{d\ln f}{d\phi}\,\frac{\partial\phi}{\partial t}\right) K^{ij} = \frac{f'(\phi/\phi_0)}{f(\phi/\phi_0)\,\phi_0}\left(\alpha\,\frac{\partial e}{\partial t} + \frac{1}{M}\frac{\partial p}{\partial t}\right) K^{ij}.

9.6. The Evolving Riemannian Metric

The Riemannian metric is gij(x,t)=(K1)ij(x,t)g_{ij}(x, t) = (K^{-1})_{ij}(x, t). Under the Kozeny-Carman update [eq:KC-tensor], the metric scales as

gij(x,t)=g0,ij(x)f(ϕ(x,t)/ϕ0(x)),g_{ij}(x, t) = \frac{g_{0,ij}(x)}{f(\phi(x,t)/\phi_0(x))},

where g0,ij(x)=(K01)ij(x)g_{0,ij}(x) = (K^{-1}_0)_{ij}(x) is the reference metric. This is a conformal deformation of the reference metric: the metric at time tt is a scalar multiple of the reference metric, with conformal factor λ(x,t)=1/f(ϕ(x,t)/ϕ0(x))\lambda(x, t) = 1/f(\phi(x,t)/\phi_0(x)). Since f>1f > 1 when porosity has increased (dilation), we have λ<1\lambda < 1 and the metric contracts, reflecting greater permeability. Since f<1f < 1 when porosity has decreased (compaction), the metric expands, reflecting lower permeability and greater hydraulic resistance.

Taking the time derivative of [eq:metric-evolution]:

gijt=dlnfdϕϕt  gij.\frac{\partial g_{ij}}{\partial t} = -\frac{d\ln f}{d\phi}\,\frac{\partial\phi}{\partial t}\;g_{ij}.

This is the metric evolution equation. The metric undergoes a uniform conformal rescaling at a rate determined by the rate of change of porosity and the Kozeny-Carman sensitivity dlnf/dϕd\ln f/d\phi. The evolution is a scalar multiple of gijg_{ij} (no mixing of tensor indices): the off-diagonal components of gij(t)g_{ij}(t) maintain the same ratio to the diagonal components as at t=0t = 0.

Remark (The metric remains in the conformal class of the reference metric).

Two metrics gg and g~\tilde{g} on a manifold are conformal if g~=λg\tilde{g} = \lambda\, g for a smooth positive scalar function λ\lambda. Under the Kozeny-Carman permeability model, g(t)=λ(x,t)g0g(t) = \lambda(x,t)\,g_0 for all tt, so the metric remains in the conformal class [g0][g_0] for all time. A consequence is that the angle between any two vectors is preserved by the metric evolution. The evolution changes the scale of the geometry (distances, volumes) but not its shape (angles, geodesic directions). In flow terms: the directions of streamlines are unchanged by isotropic compaction; only their speeds change.

9.7. Theorem: Biot-Darcy on the Deforming Riemannian Manifold

Theorem (Biot-Darcy system on the deforming Riemannian manifold).

Let (R,g(t))(\mathcal{R}, g(t)) be the time-parametrised Riemannian manifold with metric gij(x,t)=(K01)ij(x)/f(ϕ(x,t)/ϕ0(x))g_{ij}(x, t) = (K_0^{-1})_{ij}(x)\,/\,f(\phi(x,t)/\phi_0(x)), where K0ijSPD(3)K^{ij}_0 \in \mathrm{SPD}(3) is the reference permeability tensor field, ϕ0(x)\phi_0(x) is the reference porosity, and ff is the Kozeny-Carman factor [eq:KC-factor]. Under linear Biot poroelasticity with quasistatic solid equilibrium, the coupled system governing p(x,t)p(x,t) and usi(x,t)u^i_s(x, t) is:

(I)αet+1Mpt=1μfΔg(t)p+Q,\text{(I)}\quad \alpha\,\frac{\partial e}{\partial t} + \frac{1}{M}\frac{\partial p}{\partial t} = \frac{1}{\mu_f}\,\Delta_{g(t)}\,p + Q,(II)jg(t) ⁣(Cijklεkl)=αgij(t)jp,\text{(II)}\quad \nabla_j^{g(t)}\!\left(C^{ijkl}\,\varepsilon_{kl}\right) = \alpha\,g^{ij}(t)\,\partial_j p,(III)gijt=dlnfdϕ ⁣(αet+1Mpt)gij,\text{(III)}\quad \frac{\partial g_{ij}}{\partial t} = -\frac{d\ln f}{d\phi}\!\left(\alpha\,\frac{\partial e}{\partial t} + \frac{1}{M}\frac{\partial p}{\partial t}\right) g_{ij},

where g(t)\nabla^{g(t)} is the Levi-Civita connection of g(t)g(t), and the right-hand side of (III) is a scalar multiple of gijg_{ij}.

Proof.

Part (I): the fluid equation as Laplace-Beltrami on (R,g(t))(\mathcal{R}, g(t)).

The Darcy flux in index notation is qi=(1/μf)Kij(x,t)jpq^i = -(1/\mu_f) K^{ij}(x,t)\,\partial_j p. Since gij(t)=Kij(x,t)g^{ij}(t) = K^{ij}(x,t) (the contravariant metric components equal the permeability tensor components in the current metric, by definition of g=K1g = K^{-1}), we have

qi=1μfgij(t)jp=1μf(gradg(t)p)i.q^i = -\frac{1}{\mu_f}\,g^{ij}(t)\,\partial_j p = -\frac{1}{\mu_f}\,\bigl(\mathrm{grad}_{g(t)}\,p\bigr)^i.

The covariant divergence of qiq^i with respect to g(t)g(t) is

ig(t)qi=1detg(t)i ⁣(detg(t)  qi).\nabla^{g(t)}_i q^i = \frac{1}{\sqrt{\det g(t)}}\,\partial_i\!\left(\sqrt{\det g(t)}\;q^i\right).

Substituting [eq:q-grad]:

ig(t)qi=1μf1detg(t)i ⁣(detg(t)  gij(t)jp)=1μfΔg(t)p,\nabla^{g(t)}_i q^i = -\frac{1}{\mu_f}\,\frac{1}{\sqrt{\det g(t)}}\,\partial_i\!\left(\sqrt{\det g(t)}\;g^{ij}(t)\,\partial_j p\right) = -\frac{1}{\mu_f}\,\Delta_{g(t)}\,p,

where the last equality is the definition of the Laplace-Beltrami operator applied to pp with the instantaneous metric g(t)g(t). Substituting into the fluid mass conservation equation [eq:fluid-mass] with ζ=αe+p/M\zeta = \alpha e + p/M gives equation (I). \square

Part (II): the solid equation.

Expanding jσij=0\nabla_j \sigma^{ij} = 0 with the Biot stress [eq:biot-stress]:

j ⁣(Cijklεkl)αj ⁣(pgij(t))=0.\nabla_j\!\left(C^{ijkl}\,\varepsilon_{kl}\right) - \alpha\,\nabla_j\!\left(p\, g^{ij}(t)\right) = 0.

Since jg(t)gij(t)=0\nabla_j^{g(t)} g^{ij}(t) = 0 (metric compatibility of the Levi-Civita connection), the pressure term simplifies: j(pgij)=gijjp\nabla_j(p\,g^{ij}) = g^{ij}\,\partial_j p. Rearranging gives equation (II). \square

Part (III): the metric evolution.

The permeability tensor components satisfy Kij(x,t)=f(ϕ/ϕ0)K0ij(x)K^{ij}(x, t) = f(\phi/\phi_0)\,K^{ij}_0(x) by the Kozeny-Carman assumption [eq:KC-tensor]. Differentiating gij(t)=(K01)ij/f(ϕ/ϕ0)g_{ij}(t) = (K^{-1}_0)_{ij}/f(\phi/\phi_0) with respect to time and applying the chain rule:

gijt=(K01)ijf2f ⁣(ϕϕ0)1ϕ0ϕt=dlnfdϕϕt  (K01)ijf=dlnfdϕϕt  gij(t).\frac{\partial g_{ij}}{\partial t} = -\frac{(K^{-1}_0)_{ij}}{f^2}\,f'\!\left(\frac{\phi}{\phi_0}\right)\frac{1}{\phi_0}\,\frac{\partial\phi}{\partial t} = -\frac{d\ln f}{d\phi}\,\frac{\partial\phi}{\partial t}\;\frac{(K^{-1}_0)_{ij}}{f} = -\frac{d\ln f}{d\phi}\,\frac{\partial\phi}{\partial t}\;g_{ij}(t).

Substituting tϕ=αte+(1/M)tp\partial_t\phi = \alpha\,\partial_t e + (1/M)\,\partial_t p from [eq:porosity-evol] gives equation (III). \square

9.8. Corollary: Conformal Metric Flow and Instantaneous Curvature

Corollary (Conformal metric flow under Kozeny-Carman).

Under the hypotheses of Theorem [biot-darcy-theorem], the metric satisfies g(t)=λ(x,t)g0g(t) = \lambda(x,t)\,g_0 with conformal factor λ(x,t)=1/f(ϕ(x,t)/ϕ0(x))\lambda(x,t) = 1/f(\phi(x,t)/\phi_0(x)). For the isotropic case with scalar permeability k(t)=f(ϕ(t)/ϕ0)k0k(t) = f(\phi(t)/\phi_0)\,k_0, the scalar curvature of (R,g(t))(\mathcal{R}, g(t)) at any instant is

R(t)=2Δk(t)52k(t)2k(t),R(t) = 2\,\Delta k(t) - \frac{5}{2}\,\frac{|\nabla k(t)|^2}{k(t)},

where all differential operators are with respect to the flat Euclidean background, and k(t)k(t) is the scalar permeability field at time tt.

Proof. Since g(t)=λg0g(t) = \lambda\,g_0 with λ=1/f\lambda = 1/f and g0=(1/k0)δg_0 = (1/k_0)\delta, the instantaneous metric is g(t)=(1/(fk0))δ=(1/k(t))δg(t) = (1/(f k_0))\delta = (1/k(t))\delta. This is the isotropic conformally flat metric with scalar permeability k(t)k(t). The curvature formula from §6 applies directly with kk(t)k \to k(t). \square

A compacting reservoir in which porosity decreases uniformly reduces k(t)k(t) uniformly, leaving k(t)\nabla k(t) unchanged and preserving the curvature structure. A reservoir with spatially heterogeneous compaction (fault blocks compacting at different rates, for instance) develops spatial gradients in k(t)k(t) over time that were not present in the reference state, and hence develops non-zero curvature in regions that were previously flat.

9.9. Remarks on Scope and Extensions

Remark (The quasistatic assumption).

Equation (II) of Theorem [biot-darcy-theorem] omits the inertial term ρst2usi\rho_s\,\partial^2_t u^i_s, justified when the solid acceleration is negligible compared to the divergence of the stress tensor. On production timescales (days to decades), pressure diffusion is orders of magnitude slower than elastic wave propagation, and the solid skeleton equilibrates instantaneously relative to the fluid pressure. The quasistatic assumption fails on seismic timescales (milliseconds), where the full Biot dynamic equations govern P-wave and S-wave propagation with two compressional modes: a fast wave (in-phase solid and fluid motion) and a slow Biot wave (out-of-phase, highly attenuated). The slow Biot wave is the acoustic analogue of the diffusion mode studied in §4, but at seismic rather than reservoir frequencies.

Remark (Limits of the Kozeny-Carman model and the conformal assumption).

The conformal evolution g(t)=λ(x,t)g0g(t) = \lambda(x,t)\,g_0 follows from the assumption that compaction scales all permeability tensor components identically. This holds for intergranular matrix porosity but not for fracture networks. In a naturally fractured reservoir, individual fracture sets have different normal stiffnesses and close at different rates under increasing effective stress. If the set aligned with the minimum horizontal stress closes while the set aligned with the maximum horizontal stress remains open, the anisotropy ratio kh/kvk_h/k_v changes, and the evolution of g(t)g(t) is no longer conformal: the metric deforms differently in different directions, mixing the principal axes. The full permeability update then requires a time-dependent path in the SPD(3)\mathrm{SPD}(3) fibre (§8) that is not a scalar scaling of the initial point: it is a genuine geodesic in the fibre manifold.

Remark (Analogy with Ricci flow).

Equation [eq:bdt-metric] has a superficial resemblance to Ricci flow, tgij=2Rij\partial_t g_{ij} = -2\,R_{ij}, in that both describe a PDE governing the metric tensor. The analogy ends there. Ricci flow is an intrinsic geometric evolution: the right-hand side is determined entirely by the Ricci curvature of the current metric. The Biot metric evolution [eq:bdt-metric] is externally driven: the right-hand side is a scalar (tϕ)(dlnf/dϕ)-(\partial_t\phi)(d\ln f/d\phi) multiplied by gijg_{ij}, and tϕ\partial_t\phi is set by the fluid pressure and solid displacement, not by the curvature of the metric. The evolution is a one-parameter conformal rescaling driven by a coupled PDE system, not a curvature-shortening flow. The relevant mathematical structure is a parametrised family of metrics indexed by the solution of the Biot system, not a geometric flow in the sense of Hamilton or Perelman.

10. Embedded Reservoir Monitoring with cartan

10.1. From Manifold Theory to Microcontrollers

The geometric framework developed in the preceding sections is not merely an analytic tool. It is directly implementable on the same low-power microcontrollers deployed in downhole monitoring systems, surface well-head sensors, and field data acquisition units. Well-site instrumentation has historically been separated from reservoir modelling by a large computational gap: sensors record pressures and temperatures, and that raw data is shipped to centralised compute infrastructure for analysis. The gap is closing. Modern ARM Cortex-M4 and Cortex-M33 chips, available at commodity prices, have hardware floating-point units capable of executing the geodesic computations above in real time on battery power.

The cartan library implements the manifold structures of this post with explicit no_std support. The cartan-core crate defines the Manifold, Connection, and Curvature traits; cartan-manifolds provides a concrete Spd<N> struct for SPD(N)\mathrm{SPD}(N) with the affine-invariant metric; and cartan-geo provides Geodesic<M> for parameterised geodesic sampling. All three crates carry

#![cfg_attr(not(feature = "std"), no_std)]

and depend only on nalgebra (linear algebra, also no_std) and libm (elementary functions without the OS floating-point runtime) when compiled without the std feature. The result is a complete 3D geometry stack that runs on bare-metal hardware with no heap allocator required.

10.2. The Spd<3> Struct in cartan-manifolds

The Spd<N> struct represents the manifold SPD(N)\mathrm{SPD}(N). For reservoir applications, N=3N = 3. A point on the manifold is an SMatrix<f64, 3, 3> (a fixed-size symmetric positive definite matrix from nalgebra), and a tangent vector is also an SMatrix<f64, 3, 3> (a symmetric matrix in Sym(3)\mathrm{Sym}(3)).

The exponential map at P\mathbf{P} in direction V\mathbf{V} is

ExpP(V)=P1/2exp ⁣(P1/2VP1/2)P1/2,\mathrm{Exp}_\mathbf{P}(\mathbf{V}) = \mathbf{P}^{1/2}\exp\!\left(\mathbf{P}^{-1/2}\mathbf{V}\mathbf{P}^{-1/2}\right)\mathbf{P}^{1/2},

and the logarithmic map is

LogP(Q)=P1/2log ⁣(P1/2QP1/2)P1/2.\mathrm{Log}_\mathbf{P}(\mathbf{Q}) = \mathbf{P}^{1/2}\log\!\left(\mathbf{P}^{-1/2}\mathbf{Q}\mathbf{P}^{-1/2}\right)\mathbf{P}^{1/2}.

Both are implemented via eigendecomposition of the symmetrised argument using the nalgebra symmetric eigensolver, which is no_std compatible. The matrix square roots and matrix logarithm are computed through the eigendecomposition: for a symmetric matrix A=QΛQ\mathbf{A} = \mathbf{Q}\Lambda\mathbf{Q}^\top, one has A1/2=QΛ1/2Q\mathbf{A}^{1/2} = \mathbf{Q}\Lambda^{1/2}\mathbf{Q}^\top and logA=Q(logΛ)Q\log\mathbf{A} = \mathbf{Q}(\log\Lambda)\mathbf{Q}^\top.

10.3. Geodesic Interpolation on a Microcontroller

A pressure-while-drilling tool records the 3D formation permeability tensor at discrete depths as the bit advances through heterogeneous rock. The onboard microcontroller must interpolate between consecutive tensor measurements to produce a continuous permeability model for real-time pore pressure prediction. Arithmetic interpolation of the 3×33 \times 3 tensor components produces physically inconsistent estimates near facies boundaries, as noted in §8.2. Geodesic interpolation on SPD(3)\mathrm{SPD}(3) produces the geometrically correct result.

The following code demonstrates the pattern using cartan-manifolds and cartan-geo in a no_std context:

// Cargo.toml (embedded target):
// [dependencies]
// cartan-manifolds = { version = "0.1", default-features = false }
// cartan-geo       = { version = "0.1", default-features = false, features = ["alloc"] }
// nalgebra         = { version = "0.33", default-features = false, features = ["libm"] }

#![no_std]
extern crate alloc;

use cartan_manifolds::spd::Spd;
use cartan_geo::geodesic::Geodesic;
use cartan_core::manifold::Manifold;
use nalgebra::SMatrix;

type K3 = SMatrix<f64, 3, 3>;

/// Interpolate between two 3D formation permeability tensors K0 and K1
/// at fractional depth t in [0, 1] using the SPD(3) geodesic.
/// Returns the permeability tensor at the interpolated depth.
fn interpolate_permeability(k0: K3, k1: K3, t: f64) -> K3 {
    let spd = Spd::<3>::new();
    let geodesic = Geodesic::two_point(&spd, k0, k1)
        .expect("K0 and K1 must be valid SPD(3) matrices");
    geodesic.at(t)
}

The Geodesic::two_point constructor calls spd.log(&k0, &k1) to compute the initial velocity, and geodesic.at(t) evaluates spd.exp(&k0, &(t * v)). The computation uses only stack allocation and fixed-size matrices. On an STM32H7 at 400 MHz, the three-dimensional SPD(3)\mathrm{SPD}(3) geodesic evaluation completes in under 50 microseconds, comfortably within the budget of any drilling telemetry system.

10.4. Real-Time Curvature Monitoring

Beyond interpolation, the cartan-geo crate provides CurvatureQuery<M> for computing sectional, Ricci, and scalar curvature at a point. For the SPD(3)\mathrm{SPD}(3) manifold, the sectional curvature of the plane spanned by symmetric matrices U,VTPSPD(3)\mathbf{U}, \mathbf{V} \in T_\mathbf{P}\,\mathrm{SPD}(3) is

K(U,V)=14[UP,VP]F2UP2VP2UP,VP2,K(\mathbf{U}, \mathbf{V}) = -\frac{1}{4}\,\frac{\|[\mathbf{U}_P, \mathbf{V}_P]\|_F^2}{\|\mathbf{U}_P\|^2\|\mathbf{V}_P\|^2 - \langle\mathbf{U}_P,\mathbf{V}_P\rangle^2},

where UP=P1/2UP1/2\mathbf{U}_P = \mathbf{P}^{-1/2}\mathbf{U}\mathbf{P}^{-1/2} and [,][\cdot,\cdot] is the matrix commutator. The curvature is non-positive everywhere on SPD(3)\mathrm{SPD}(3), which makes it a Cartan-Hadamard manifold: the geodesic between any two permeability tensors is unique and globally defined, and there is no cut locus. This non-positive curvature is the geometric counterpart of the physical fact that the space of valid permeability tensors has no "wrapping" topology: every permeability state is unambiguously interpolable from any other.

On a field data acquisition board, a formation curvature alarm is implementable as follows: if the scalar curvature of the current permeability estimate (from cartan_geo::curvature::scalar_at) exceeds a threshold, indicating rapid permeability variation, the board flags that the pore pressure model should fall back from the Theis approximation to a full numerical solve.

use cartan_geo::curvature::scalar_at;
use cartan_manifolds::spd::Spd;

fn formation_curvature_alarm(k_current: K3, threshold: f64) -> bool {
    let spd = Spd::<3>::new();
    match scalar_at(&spd, &k_current) {
        Ok(r) => r.abs() > threshold,
        Err(_) => false,
    }
}

The scalar_at function is available in no_std mode, using only fixed-size matrix arithmetic and libm for square roots.

10.5. Why no_std Matters for Oil and Gas

Downhole tools operate under severe constraints. Temperatures reach 175C175\,^\circ\mathrm{C} to 200C200\,^\circ\mathrm{C} in deep wells. Vibration from the drill string imposes shock loads of 200g200\,g or more. Power budgets for battery-operated logging tools are typically 50 to 200 milliwatts. Operating systems cannot be run reliably at these temperatures and power levels; the hardware runs bare-metal firmware on radiation-hardened or automotive-grade microcontrollers.

The no_std constraint is therefore not a performance optimisation; it is a deployment requirement. A geometry library that depends on a heap allocator, a thread scheduler, or OS-level floating-point runtime cannot be used downhole. cartan's architecture, where the standard library is optional and all core computation uses stack allocation and libm, is precisely the design that makes this class of application possible.

The broader implication is that the mathematical sophistication of 3D Riemannian reservoir geometry need not be concentrated in a remote compute cluster. The same geodesic computations, curvature evaluations, and tensor interpolations described in this post can run in real time, at the drill bit, in the same environment that generated the data. This closes the loop between measurement and model in a way that batch-mode centralised analysis cannot.

11. Conclusion

Darcy's law is older than the theory of Riemannian geometry. Riemann presented his habilitation lecture in 1854; Darcy published his filtration experiments two years later in 1856. The two bodies of mathematics developed independently for over a century before reservoir engineers and applied mathematicians began to recognise their connection. In three dimensions, the identification is complete: the 3×33 \times 3 permeability tensor is a Riemannian metric, Darcy flux is the Riemannian gradient, pressure diffusion is the Laplace–Beltrami heat equation, streamlines are geodesics, and permeability interfaces refract streamlines according to a Darcy–Snell law exact in form and derivation. The scalar curvature of the isotropic permeability metric is R=2Δk(5/2)k2/kR = 2\Delta k - (5/2)|\nabla k|^2/k, differing from the 2D formula by the larger coefficient that makes sharp gradients geometrically more significant in three-dimensional flow. The Weyl curvature vanishes identically in 3D, so the full geometry is locally determined by RR and the Ricci tensor alone.

Each of these results is a theorem, not a heuristic, and each has a practical well-test or simulation consequence. The Darcy–Snell law predicts streamline deflection and total reflection at fault seals. The spherical-to-radial flow transition distinguishes kvk_v from khk_h in a pressure build-up test. The 3D eigenvalue formula [eq:pss-eigenvalues-3d] gives the pseudosteady-state time constant of a layered compartment as a function of all three reservoir dimensions and the anisotropy ratio. Geodesic interpolation on SPD(3)\mathrm{SPD}(3) provides consistent formation modelling across facies boundaries where arithmetic tensor averaging fails.

The cartan library makes these computations available in a no_std Rust crate that runs on bare-metal ARM microcontrollers. Well-site monitoring boards can execute the same manifold arithmetic described here in real time, at the formation. The gap between reservoir theory and field instrumentation is a software and architecture problem, and it is one that Rust's ownership model and no_std ecosystem are well positioned to close.

The extension to deforming reservoirs (§9) shows that the static geometry is the special case of a richer structure. Biot poroelasticity couples the fluid pressure equation to the solid skeleton deformation, and under the Kozeny-Carman permeability model the Riemannian metric evolves conformally: g(t)=λ(x,t)g0g(t) = \lambda(x,t)\,g_0 with λ=1/f(ϕ/ϕ0)\lambda = 1/f(\phi/\phi_0). The curvature formulae and spectral theory of §6–§7 apply at each instant to the current metric. What was a fixed geometric stage becomes a parametrised family of geometries driven by the coupled PDE system: a deforming manifold whose shape is determined by the rock's mechanical response to fluid extraction.

References

  1. H. Darcy. Les Fontaines Publiques de la Ville de Dijon. Victor Dalmont, Paris, 1856.
  2. M. Muskat. The Flow of Homogeneous Fluids through Porous Media. McGraw-Hill, New York, 1937.
  3. C. V. Theis. "The relation between the lowering of the piezometric surface and the rate and duration of discharge of a well using ground-water storage." Transactions of the American Geophysical Union, 16(2):519–524, 1935.
  4. G. de Marsily. Quantitative Hydrogeology. Academic Press, Orlando, 1986.
  5. M. P. do Carmo. Riemannian Geometry. Birkhäuser, Boston, 1992.
  6. P.-A. Absil, R. Mahony, R. Sepulchre. Optimization Algorithms on Matrix Manifolds. Princeton University Press, 2008.
  7. R. Bhatia. Positive Definite Matrices. Princeton University Press, 2007.
  8. F. Ding, T. Bui. "Riemannian geometry of the space of permeability tensors in petroleum reservoir simulation." Journal of Petroleum Science and Engineering, 2018.
  9. L. Onsager. "Reciprocal Relations in Irreversible Processes." Physical Review, 37(4):405–426, 1931.
  10. M. A. Biot. "General theory of three-dimensional consolidation." Journal of Applied Physics, 12(2):155–164, 1941.
  11. K. Terzaghi. Theoretical Soil Mechanics. Wiley, New York, 1943.
  12. J. R. Rice, M. P. Cleary. "Some basic stress diffusion solutions for fluid-saturated elastic porous media with compressible constituents." Reviews of Geophysics and Space Physics, 14(2):227–241, 1976.
  13. O. Coussy. Poromechanics. Wiley, Chichester, 2004.
  14. P. C. Carman. "Fluid flow through granular beds." Transactions of the Institution of Chemical Engineers, 15:150–166, 1937.

Comments

Loading…

Leave a comment

or comment as guest

$...$ inline · $$...$$ display

0 / 2000