Homodyne Scattering: Laminar Flow Model¶
In a Taylor-Couette or shear-cell geometry, the colloidal suspension undergoes laminar
flow that imposes a systematic drift on every particle. XPCS in this configuration measures
both diffusive and advective contributions to particle dynamics. This page derives the full
\(c_2\) equation for homodyne detection under laminar shear flow, as implemented in the
laminar_flow analysis mode.
Taylor-Couette Geometry¶
The standard experimental geometry is a concentric-cylinder (Taylor-Couette) cell:
Inner cylinder (rotor): rotates at angular velocity \(\Omega\)
Outer cylinder (stator): fixed
Gap \(h\): the distance between rotor and stator where the sample sits
The local shear rate \(\dot{\gamma}(t)\) may vary with time (e.g., during a start-up flow or yielding ramp)
The X-ray beam traverses the sample at an azimuthal angle \(\phi\) relative to the flow direction (the tangential direction of the inner cylinder). Because the beam samples a distribution of velocities across the gap, the correlation function receives a characteristic sinc-squared modulation from the velocity dispersion.
Note
The gap parameter \(h\) is fixed by the instrument geometry (typically 0.5–2 mm) and is not a fitted parameter in homodyne. It is loaded from the experimental configuration.
Gap Integration and the sinc² Modulation¶
Consider a scattering element at position \(x\) within the gap (\(0 \leq x \leq h\)). In simple shear, the velocity along the flow direction is:
The projection onto the scattering vector \(\mathbf{q}\) (at azimuthal angle \(\phi\) to the flow) is:
The contribution to \(c_1\) from advection is a phase factor \(e^{iq\int_{t_1}^{t_2} v_\parallel(x,t)dt}\). Integrating uniformly across the gap:
Let \(\Gamma(t_1, t_2) = \int_{t_1}^{t_2}\dot{\gamma}(t)\,dt\) be the accumulated strain. The integral over \(x\) is:
In the homodyne (intensity) correlation \(|c_1^\mathrm{(shear)}|^2\), the phase factor cancels and we obtain:
Note
The homodyne package uses the normalized sinc convention \(\mathrm{sinc}(x) = \sin(\pi x)/(\pi x)\), so that \(\mathrm{sinc}(0)=1\). This is consistent with NumPy/JAX conventions.
Full Laminar Flow Equation¶
Combining the diffusive decay (Debye-Waller factor) from (9) with the shear modulation (2), the full homodyne correlation function for laminar flow is:
where:
is the accumulated strain and \(\phi\) is the azimuthal angle of the scattering vector relative to the flow direction.
Note
In this derivation, \(\phi\) is the physical angle between the scattering vector and the flow direction. In homodyne’s implementation, the detector reports azimuthal angles \(\phi_\mathrm{det}\) in the laboratory frame. The angular offset parameter \(\phi_0\) maps between them: \(\phi = \phi_\mathrm{det} - \phi_0\). The code therefore computes \(\cos(\phi_0 - \phi_\mathrm{det})\), which equals \(\cos(\phi_\mathrm{det} - \phi_0)\) since cosine is even.
Warning
Equation (3) is valid only for homodyne detection (measuring scattered intensity only). If a reference beam is mixed with the scattered beam (heterodyne detection), or if multiple scattering components exist, see Heterodyne Scattering: Multi-Component Models.
Angular Dependence¶
The \(\cos\phi\) factor in the sinc argument makes the correlation function strongly azimuthal-angle dependent:
At \(\phi = 90°\) (scattering vector perpendicular to flow): \(\cos\phi = 0\), the sinc term equals 1 and only diffusion contributes.
At \(\phi = 0°\) (scattering vector parallel to flow): \(\cos\phi = 1\), the sinc modulation is maximal.
For intermediate angles: mixed contribution.
In practice, XPCS data is collected simultaneously at multiple azimuthal angles (typically \(N_\phi = 23\) sectors), enabling simultaneous fitting across all angles. The per-angle contrast \(\beta(\phi)\) accounts for additional angle-dependent coherence variations.
See Per-Angle Scaling and Anti-Degeneracy for the per-angle scaling strategy that prevents parameter absorption degeneracy.
Homodyne Implementation Parameters¶
The homodyne package parameterizes the shear rate as a power law with offset:
where \(\dot{\gamma}_0\) is the shear rate prefactor, \(\beta\) is the time exponent (note: separate from \(\beta\) speckle contrast; context distinguishes them), and \(\dot{\gamma}_\mathrm{offset}\) is a constant background shear rate.
The accumulated strain is computed by cumulative trapezoidal integration of \(\dot{\gamma}(t)\) on the experimental time grid:
where \(\beta_\gamma\) is the shear exponent parameter (named beta in config,
not to be confused with optical contrast). This integral is evaluated numerically
via cumulative trapezoid on the experimental time grid.
Full parameter set for laminar_flow mode
(see Parameter Interpretation Guide for physical interpretation and default bounds):
Config key |
Symbol |
Role in Equation (3) |
|---|---|---|
|
\(D_0\) |
Diffusion integral prefactor |
|
\(\alpha\) |
Diffusion power-law exponent |
|
\(D_\mathrm{offset}\) |
Constant diffusion background |
|
\(\dot{\gamma}_0\) |
Shear rate prefactor |
|
\(\beta_\gamma\) |
Shear rate power-law exponent |
|
\(\dot{\gamma}_\mathrm{offset}\) |
Constant shear rate background |
|
\(\phi_0\) |
Reference azimuthal angle offset |
Code Example¶
from homodyne.core.jax_backend import compute_g2_laminar_flow
import jax.numpy as jnp
# Physical parameters
params = {
"D0": 50.0, # Ų/s
"alpha": 0.33, # Andrade creep exponent
"D_offset": 0.1,
"gamma_dot_0": 1e-3, # s^{-1}
"beta": -0.67, # shear rate exponent
"gamma_dot_t_offset": 0.0,
"phi_0": 0.0,
}
# Time grid (two-time matrix)
t = jnp.linspace(0.01, 100.0, 200)
t1, t2 = jnp.meshgrid(t, t, indexing="ij")
# Experimental parameters
q = 0.01 # Å^{-1}
phi = 0.0 # flow direction
h = 1.0 # mm gap
beta_contrast = 0.3
# Result: c2 matrix
c2 = compute_g2_laminar_flow(t1, t2, q, phi, h, beta_contrast, **params)
Connection to Rheology¶
The Andrade creep law (\(\gamma \sim t^{1/3}\)) observed in colloidal suspensions near the glass transition (He et al. PNAS 2025) corresponds to:
This is the canonical signature of plastic creep driven by stress-activated cage rearrangements. The homodyne model captures this through the time-dependent shear rate \(\dot{\gamma}(t)\) parameterization, making it directly comparable to bulk rheological measurements.
See also
Transport Coefficient J(t) — definition of \(J(t)\)
Correlation Functions in XPCS — Siegert relation and \(c_2\) derivation
Heterodyne Scattering: Multi-Component Models — multi-component extension
Per-Angle Scaling and Anti-Degeneracy — per-angle scaling modes
Yielding Dynamics of Colloidal Suspensions — Andrade creep physics
homodyne.core.jax_backend— JIT-compiled implementation