ITT-MCT Schematic (F_1_2)

Quick Reference

  • Use when: Dense colloidal suspensions, glassy materials, yield-stress fluids,

materials showing glass transition behavior

  • Parameters: 5 (\(v_1\), \(v_2\), \(\Gamma\), \(\gamma_c\), \(G_\infty\)) or equivalently (\(\varepsilon\), \(v_1\), \(\Gamma\), \(\gamma_c\), \(G_\infty\))

  • Key equation: Memory kernel \(m(\Phi) = v_1\Phi + v_2\Phi^2\) with glass transition at \(v_2 = 4\)

  • Test modes: Flow curve, oscillation, startup, creep, relaxation, LAOS

  • Material examples: PMMA colloids, emulsions, carbopol gels, concentrated polymer solutions

Notation Guide

Symbol

Meaning

\(\Phi(t)\)

Density correlator (normalized autocorrelation function)

\(\Phi(t,t')\)

Two-time correlator under shear (advected)

\(m(\Phi)\)

Memory kernel, \(m = v_1\Phi + v_2\Phi^2\)

\(v_1, v_2\)

Vertex coefficients (coupling constants)

\(v_{2,c}\)

Critical vertex coefficient (= 4 for \(v_1 = 0\))

\(\varepsilon\)

Separation parameter, \(\varepsilon = (v_2 - v_{2,c})/v_{2,c}\)

\(\Gamma\)

Bare relaxation rate (1/s)

\(\gamma_c\)

Critical strain for cage breaking (dimensionless)

\(h(\gamma)\)

Strain decorrelation function (Gaussian or Lorentzian form)

\(G_\infty\)

High-frequency (instantaneous) modulus (Pa)

\(f\)

Non-ergodicity parameter (glass plateau height)

\(\sigma_y\)

Dynamic yield stress (Pa)

Overview

The \(F_{12}\) schematic model is a simplified Mode-Coupling Theory (MCT) that captures the essential physics of the colloidal glass transition with minimal parameters.

Historical Context:

MCT was developed in the 1980s by Götze and collaborators to describe the dynamics of supercooled liquids and dense colloids. The full MCT involves coupled integro- differential equations for density correlators at all wave vectors \(k\). The schematic \(F_{12}\) model reduces this to a single scalar equation by replacing the \(k\)-dependent memory kernel with a polynomial form.

The Cage Effect:

In dense suspensions, each particle is “caged” by its neighbors. At short times, particles rattle within their cages (\(\beta\)-relaxation). At long times, cooperative rearrangements allow cage escape (\(\alpha\)-relaxation). The glass transition occurs when the \(\alpha\)-relaxation time diverges - particles become permanently trapped.

Why “ \(F_{12}\) “:

The name comes from the memory kernel having terms proportional to \(\Phi^1\) and \(\Phi^2\) — the “1-2” notation. This quadratic form is the simplest that captures the feedback mechanism responsible for the glass transition.

Physical Foundations

The Cage Effect in Dense Suspensions

In a dilute suspension, particles diffuse freely with diffusion coefficient:

\[D_0 = \frac{k_B T}{6\pi\eta_s a}\]

where \(a\) is the particle radius and \(\eta_s\) is the solvent viscosity.

At high volume fractions (\(\phi > 0.4\)), particles begin to interfere with each other’s motion. The “cage” of nearest neighbors slows down diffusion:

\[D_{\text{long}} = D_0 / S(0)\]

where S(0) is the zero-wavevector structure factor (compressibility).

As \(\phi \to \phi_g \approx 0.516\), the cage becomes so strong that particles cannot escape on any experimental timescale - the system is a glass.

Green-Kubo and the Memory Function

The dynamics can be described through the density correlator:

\[\Phi(k,t) = \frac{\langle \rho_k(t) \rho_{-k}(0) \rangle}{\langle |\rho_k|^2 \rangle}\]

which measures how density fluctuations at wave vector \(k\) decorrelate over time.

The equation of motion involves a memory kernel:

\[\ddot{\Phi}(t) + \Omega^2 \left[ \Phi(t) + \int_0^t m(t-s) \dot{\Phi}(s) ds \right] = 0\]

The memory kernel m(t) encodes how the cage “remembers” past configurations. This is the Zwanzig-Mori projection of the full dynamics.

MCT Approximation

MCT makes a specific approximation for the memory kernel:

\[m(k,t) = \sum_{q} V(k,q,|\mathbf{k}-\mathbf{q}|) \Phi(q,t) \Phi(|\mathbf{k}-\mathbf{q}|,t)\]

The vertex V encodes how density fluctuations at different length scales couple. This “mode-coupling” gives the theory its name.

Memory Kernel Structure

The MCT memory kernel has a bilinear structure arising from the mode-coupling approximation:

\[m_{\mathbf{q}}(t,s,t') = \int \frac{d^3k}{(2\pi)^3}\; V_{\mathbf{q},\mathbf{k},\mathbf{p}}(t,s,t')\; \Phi_{\mathbf{k}}(t,s)\,\Phi_{\mathbf{p}}(t,s)\]

where \(\mathbf{p} = \mathbf{q} - \mathbf{k}\).

For the schematic \(F_{12}\) model, this complicated \(k\)-space integral is replaced by a polynomial approximation:

\[m(\Phi) = v_1 \Phi + v_2 \Phi^2\]

The quadratic term (\(v_2\Phi^2\)) is essential for the glass transition — it creates the feedback mechanism where slow relaxation leads to stronger caging, which leads to even slower relaxation.

The \(F_{12}\) Schematic Model

Reduction to Scalar Equation

For the schematic model, we ignore the \(k\)-dependence and write:

\[\partial_t \Phi + \Gamma \left[ \Phi + \int_0^t m(\Phi(s)) \partial_s \Phi(s) ds \right] = 0\]

with the polynomial memory kernel:

\[m(\Phi) = v_1 \Phi + v_2 \Phi^2\]

Why this form works:

  1. The linear term (\(v_1\Phi\)) allows for standard viscoelastic relaxation

  2. The quadratic term (\(v_2\Phi^2\)) creates the feedback: slow relaxation \(\to\) strong cage \(\to\) slower relaxation

  3. Together, they capture the divergence of the relaxation time at the glass transition

Glass Transition Criterion

The glass transition occurs when the correlator has a non-zero long-time limit:

\[f = \lim_{t \to \infty} \Phi(t) > 0 \quad \text{(glass)}\]

This happens when the self-consistent equation:

\[f = m(f) = v_1 f + v_2 f^2\]

has a non-zero solution, i.e., when:

\[v_2 > v_{2,c} = \frac{4}{(1-v_1)^2}\]

For \(v_1 = 0\): \(v_{2,c} = 4\).

The separation parameter \(\varepsilon\) measures distance from the transition:

\[\varepsilon = \frac{v_2 - v_{2,c}}{v_{2,c}}\]
  • \(\varepsilon < 0\): Ergodic fluid (\(\Phi \to 0\) at long times)

  • \(\varepsilon = 0\): Critical point (power-law decay)

  • \(\varepsilon > 0\): Glass state (\(\Phi \to f > 0\))

Two-Step Relaxation

Near the glass transition, the correlator shows characteristic two-step decay:

  1. \(\beta\) -relaxation (short times): Initial decay to a plateau

    \[\Phi(t) \approx f_c + h \cdot (t/t_0)^{-a}\]
  2. Plateau regime: Correlator “stuck” near \(f\)

  3. \(\alpha\) -relaxation (long times): Final decay from plateau

    \[\Phi(t) \approx f \cdot \exp\left[-(t/\tau_\alpha)^b\right]\]

The MCT exponents \(a\) and \(b\) are related to the “exponent parameter” \(\lambda\):

\[\frac{\Gamma(1-a)^2}{\Gamma(1-2a)} = \frac{\Gamma(1+b)^2}{\Gamma(1+2b)} = \lambda\]

For \(F_{12}\) with \(v_1 = 0\): \(\lambda = 1\).

Integration Through Transients (ITT)

Extending MCT to Flow

Under shear, density fluctuations are “advected” by the flow.

General Deformation Gradient

For a general homogeneous flow with velocity gradient tensor \(\boldsymbol{\kappa}(t) = \nabla\mathbf{v}(t)\), the deformation gradient from time \(t'\) to \(t\) is:

\[\mathbf{E}(t,t') = \mathcal{T}\exp\left(\int_{t'}^{t}\boldsymbol{\kappa}(s)\,ds\right)\]

where \(\mathcal{T}\) denotes time ordering.

Wavevectors are back-advected as:

\[\mathbf{q}(t,t') = \mathbf{q} \cdot \mathbf{E}^{-1}(t,t')\]

For simple shear (flow in x, gradient in y):

\[k_x(t,t') = k_x - k_y \int_{t'}^t \dot{\gamma}(s) ds = k_x - k_y \gamma(t,t')\]

This advection destroys the cage structure, leading to flow-induced relaxation.

Two-Time Correlator Definition

The transient density correlator under shear is:

\[\Phi_{\mathbf{q}}(t,t') = \frac{\langle \rho_{\mathbf{q}(t,t')}(t)\, \rho_{-\mathbf{q}}(t') \rangle}{N S(q)}\]

This measures how density fluctuations at wavevector \(\mathbf{q}\) decorrelate between times \(t'\) and \(t\), accounting for the fact that the wavevector is advected by the flow.

Physical interpretation: The correlator tracks the “memory” of the cage structure. Under shear, this memory is progressively destroyed as accumulated strain \(\gamma(t,t')\) increases.

Zwanzig-Mori Equation Detail

The full ITT-MCT correlator dynamics obey the integro-differential equation:

\[\partial_t \Phi_{\mathbf{q}}(t,t') + \Gamma_{\mathbf{q}}(t,t')\left[ \Phi_{\mathbf{q}}(t,t') + \int_{t'}^{t} ds\; m_{\mathbf{q}}(t,s,t')\;\partial_s \Phi_{\mathbf{q}}(s,t') \right] = 0\]

with overdamped initial decay rate:

\[\Gamma_{\mathbf{q}}(t,t') = D_0\,\frac{q(t,t')^2}{S(q(t,t'))}\]

where \(D_0\) is the bare diffusion coefficient. The advected wavevector magnitude \(q(t,t')\) increases with strain, accelerating the initial decay.

Strain Decorrelation Function

The advected correlator is:

\[\Phi(t,t') = \Phi_{\text{eq}}(t-t') \cdot h(\gamma(t,t'))\]

where the strain decorrelation function captures how accumulated strain breaks down the correlation. Two functional forms are available:

Gaussian (default): Fast exponential decay at large strains

\[h(\gamma) = \exp\left[-\left(\frac{\gamma}{\gamma_c}\right)^2\right]\]

Lorentzian: Slower algebraic decay (Brader et al. 2008)

\[h(\gamma) = \frac{1}{1 + (\gamma/\gamma_c)^2}\]

Physical interpretation:

  • At \(\gamma = 0\): \(h = 1\) (full correlation)

  • At \(\gamma \gg \gamma_c\): \(h \to 0\) (cage is destroyed)

  • \(\gamma_c \approx 0.1\) corresponds to the “cage strain”

Choosing between forms: The Gaussian form (default) is most common in the ITT-MCT literature and gives faster decay. The Lorentzian form may better capture materials with extended yielding transitions or gradual cage breaking. Use the decorrelation_form parameter to select:

# Default Gaussian
model = ITTMCTSchematic(epsilon=0.05)

# Lorentzian for extended yielding
model = ITTMCTSchematic(epsilon=0.05, decorrelation_form="lorentzian")

Generalized Green-Kubo Relation

The stress under shear is given by a generalized Green-Kubo formula:

\[\sigma(t) = \dot{\gamma}(t) \int_0^t G(t,t') dt' + \int_0^t \dot{\gamma}(t') G(t,t') dt'\]

where the time-dependent modulus:

\[G(t,t') = G_\infty \Phi(t,t')\]

Memory Kernel Forms

The memory kernel can be computed in two forms, controlled by the memory_form parameter:

Simplified (default): Single strain decorrelation

\[m(\Phi) = h[\gamma_{\text{acc}}] \times (v_1 \Phi + v_2 \Phi^2)\]

Here, a single decorrelation factor \(h[\gamma_{\text{acc}}]\) accounts for all strain-induced cage breaking since flow started.

Full: Two-time strain decorrelation (Fuchs & Cates 2002)

\[m(t,s,t_0) = h[\gamma(t,t_0)] \times h[\gamma(t,s)] \times (v_1 \Phi + v_2 \Phi^2)\]

The full form includes two decorrelation factors:

  • \(h[\gamma(t,t_0)]\): How much the cage has broken since flow started

  • \(h[\gamma(t,s)]\): How much the cage breaks during the memory integral (from time s to t)

This captures the physical effect that correlations at earlier times (larger s) have experienced more strain-induced decorrelation than recent correlations.

# Default simplified form (backward compatible)
model = ITTMCTSchematic(epsilon=0.05)

# Full two-time memory kernel
model = ITTMCTSchematic(epsilon=0.05, memory_form="full")

When to use full form: The full form is more physically accurate for strongly driven systems where the memory integral spans multiple decorrelation timescales. The simplified form is computationally faster and often sufficient for qualitative predictions.

Stress Computation Forms

The stress computation can use two approaches, controlled by the stress_form parameter:

Schematic (default): Uses a proxy relation

\[\sigma = G_\infty \dot{\gamma} \int_0^t \Phi(t')^2 \, h(\gamma) \, dt'\]

This gives physically reasonable results with the single modulus parameter \(G_\infty\).

Microscopic: Includes wave-vector integration with structure factor weighting

\[\sigma = \frac{k_B T}{60\pi^2} \int_0^\infty dk \, k^4 \left[\frac{S'(k)}{S(k)^2}\right]^2 \Phi^2\]

The microscopic form uses the Percus-Yevick structure factor \(S(k)\) to weight contributions from different length scales. This provides quantitative stress predictions in physical units when the volume fraction is known.

# Default schematic form
model = ITTMCTSchematic(epsilon=0.05)

# Microscopic stress with Percus-Yevick S(k)
model = ITTMCTSchematic(
    epsilon=0.05,
    stress_form="microscopic",
    phi_volume=0.5,      # Volume fraction for S(k)
    k_BT=4.11e-21,       # Room temperature in Joules (optional)
)

Note: When stress_form="microscopic", the phi_volume parameter is required. This is the colloidal volume fraction used to compute \(S(k)\) via the Percus-Yevick approximation.

When to use microscopic form: Use microscopic stress when you need quantitative stress predictions tied to physical parameters (temperature, volume fraction). The schematic form is simpler and sufficient for qualitative comparisons or when fitting the modulus \(G_\infty\) as a free parameter.

Combining Memory and Stress Forms

Both forms can be combined for maximum physical accuracy:

# Full physics: two-time memory + microscopic stress
model = ITTMCTSchematic(
    epsilon=0.1,
    decorrelation_form="gaussian",
    memory_form="full",
    stress_form="microscopic",
    phi_volume=0.55,
    k_BT=4.11e-21,
)

# Predict flow curve
gamma_dot = np.logspace(-3, 3, 50)
sigma = model.predict(gamma_dot, test_mode='flow_curve')

The model’s __repr__ shows all form selections:

>>> model
ITTMCTSchematic(ε=0.100 [glass], v₂=4.40, h(γ)=gaussian, m=full, σ=microscopic, G_inf=1.00e+06 Pa)

Governing Equations

Flow Curve (Steady Shear)

At steady state with constant \(\dot{\gamma}\), the stress is:

\[\sigma_{ss} = \dot{\gamma} \int_0^\infty G(s) \cdot h(\dot{\gamma} s) ds\]

where \(G(s) = G_\infty \Phi_{\text{eq}}(s)^2\) is the equilibrium relaxation modulus (Fuchs & Cates 2002). The squared correlator arises because the stress autocorrelator couples two density fluctuations.

Yield stress (glass state, \(\varepsilon > 0\)):

\[\sigma_y = \lim_{\dot{\gamma} \to 0} \sigma_{ss} = G_\infty \gamma_c f^2\]

Shear thinning: As \(\dot{\gamma}\) increases, the cage is broken faster, and the effective viscosity decreases:

\[\eta_{\text{eff}} = \sigma / \dot{\gamma}\]

Small Amplitude Oscillation (SAOS)

For small strain \(\gamma_0 \ll \gamma_c\), we can linearize around equilibrium:

\[G^*(\omega) = i\omega \int_0^\infty G_{\text{eq}}(t) e^{-i\omega t} dt\]

This gives the storage and loss moduli:

\[G'(\omega) = \omega \int_0^\infty G_{\text{eq}}(t) \sin(\omega t) dt\]
\[G''(\omega) = \omega \int_0^\infty G_{\text{eq}}(t) \cos(\omega t) dt\]

Glass plateau: For \(\varepsilon > 0\), \(G'(\omega \to 0) \to G_\infty f\) (non-zero plateau).

Startup Flow

Starting from rest with constant \(\dot{\gamma}\):

\[\sigma(t) = \dot{\gamma} \int_0^t G(t-s) \cdot h(\dot{\gamma}(t-s)) ds\]

This shows a characteristic stress overshoot when \(\dot{\gamma} \tau_{\alpha} > 1\), where \(\tau_{\alpha}\) is the structural relaxation time.

Creep

At constant applied stress \(\sigma_0\), the strain rate adjusts to maintain:

\[\sigma_0 = \int_0^t \dot{\gamma}(t') G(t,t') dt'\]

In the glass state (\(\sigma_0 < \sigma_y\)): bounded deformation (solid-like). Above yield (\(\sigma_0 > \sigma_y\)): continuous flow (fluidization).

This leads to viscosity bifurcation - a sharp transition between solid and fluid behavior at the yield stress.

Stress Relaxation

After cessation of flow at \(t = 0\):

\[\sigma(t) = G_\infty \gamma_{\text{pre}} \, \Phi_{\text{relax}}(t)^2\]

In the glass state, stress does not fully relax:

\[\lim_{t \to \infty} \sigma(t) = \sigma_{\text{res}} > 0\]

LAOS

For large amplitude oscillatory shear \(\gamma(t) = \gamma_0 \sin(\omega t)\):

The stress is non-sinusoidal and can be decomposed into Fourier harmonics:

\[\sigma(t) = \sum_{n=1,3,5,...} [\sigma'_n \sin(n\omega t) + \sigma''_n \cos(n\omega t)]\]

Higher harmonics (\(n = 3, 5, \ldots\)) quantify nonlinearity. The ratio \(\sigma_3/\sigma_1\) increases with \(\gamma_0/\gamma_c\).

Parameters

Name

Default

Bounds

Units

Physical Meaning

\(v_1\)

0.0

(0, 5)

Linear vertex coefficient. Usually 0 for pure \(F_{12}\).

\(v_2\)

2.0

(0.5, 10)

Quadratic vertex coefficient. Glass at \(v_2 > 4\).

\(\Gamma\)

1.0

(\(10^{-6}\), \(10^6\))

1/s

Bare relaxation rate. Sets microscopic timescale.

\(\gamma_c\)

0.1

(0.01, 0.5)

Critical strain for cage breaking. Typically 0.05–0.2.

\(G_\infty\)

\(10^6\)

(1, \(10^{12}\))

Pa

High-frequency elastic modulus.

Alternative parameterization with \(\varepsilon\) :

Instead of specifying \(v_2\) directly, use the separation parameter \(\varepsilon\):

model = ITTMCTSchematic(epsilon=0.1)  # Glass state
model = ITTMCTSchematic(epsilon=-0.1)  # Fluid state

This automatically sets \(v_2 = v_{2,c} \times (1 + \varepsilon)\).

Typical Parameter Values

System

\(\varepsilon\)

\(\gamma_c\)

\(G_\infty\) (Pa)

Notes

PMMA colloids (\(\phi = 0.55\))

0.1

0.08

\(10^2\)

Hard-sphere reference

Carbopol microgels

0.05

0.15

\(10^3\)

Soft particles

Mayonnaise

0.02

0.10

\(10^2\)

Dense emulsion

Silica suspensions

0.15

0.05

\(10^4\)

Strong glass

Validity and Assumptions

When the model works well:

  • Dense suspensions (\(\phi > 0.4\) for hard spheres)

  • Near the glass transition (\(|\varepsilon| < 0.3\))

  • Monodisperse or narrow size distribution

  • No attractive interactions (hard-sphere-like)

  • Brownian timescales (colloidal, not granular)

Limitations:

  • Does not capture crystallization

  • Underestimates relaxation times in deeply supercooled regime

  • No hopping/activated processes (important at low \(T\) or high \(\varepsilon\))

  • Assumes isotropic structure (no shear-induced ordering)

What You Can Learn

The ITT-MCT model provides quantitative predictions of glass transition behavior through the lens of density correlators and cage dynamics. The separation parameter \(\varepsilon\) and critical strain \(\gamma_c\) are the key diagnostics.

Parameter Interpretation

\(\varepsilon\) (Separation Parameter):

The distance from the glass transition, defined as \(\varepsilon = (v_2 - v_{2,c})/v_{2,c}\) where \(v_{2,c} = 4\) for the \(F_{12}\) model.

For graduate students: \(\varepsilon\) is the control parameter in the MCT bifurcation analysis. At \(\varepsilon = 0\), the self-consistent equation \(f = v_1 f + v_2 f^2\) undergoes a fold bifurcation, creating a non-zero long-time limit \(f > 0\) for \(\varepsilon > 0\). The \(\alpha\)-relaxation time diverges as \(\tau_\alpha \sim |\varepsilon|^{-\gamma}\) with \(\gamma \approx 2.5\) (MCT universal exponent). The power-law exponents \(a\) and \(b\) for \(\beta\)-relaxation and \(\alpha\)-relaxation are determined by the exponent parameter \(\lambda = \Gamma(1-a)^2 / \Gamma(1-2a)\).

For practitioners: \(\varepsilon < 0\) means fluid (full relaxation), \(\varepsilon > 0\) means glass (permanent caging). Fitting \(\varepsilon\) from oscillatory or flow curve data immediately tells you if the material has a yield stress. \(\varepsilon \approx 0.1\) is a typical moderately strong glass, \(\varepsilon \approx 0.5\) is a very strong glass. Near \(\varepsilon = 0\), expect extreme slowing down and sensitivity to temperature or concentration.

\(\gamma_c\) (Critical Strain):

The strain scale at which the cage structure is destroyed by shear.

For graduate students: \(\gamma_c\) appears in the strain decorrelation function \(h(\gamma) = \exp[-(\gamma/\gamma_c)^2]\), which describes how accumulated strain breaks down density correlations. Physically, \(\gamma_c\) is related to the Lindemann criterion: when a particle is displaced by \({\sim}\gamma_c\) times the cage size (\(\approx\) particle diameter), the cage loses memory of its initial configuration. For hard spheres, \(\gamma_c \approx 0.05\text{--}0.1\) corresponds to the amplitude of thermal vibrations in the cage.

For practitioners: \(\gamma_c\) controls the onset of shear thinning in flow curves. Smaller \(\gamma_c\) means the material yields more easily under strain. Fitting \(\gamma_c\) from the crossover shear rate \(\dot{\gamma}^*\) (where viscosity drops) via \(\dot{\gamma}^* \approx 1/(\tau_\alpha \gamma_c)\) reveals the cage stiffness.

\(v_1, v_2\) (Vertex Coefficients):

The mode-coupling constants determining the memory kernel \(m(\Phi) = v_1 \Phi + v_2 \Phi^2\).

For graduate students: \(v_1\) and \(v_2\) arise from the \(k\)-space convolution integral in the full MCT vertex \(V(k,q,|k-q|) \propto S(k)S(q)S(|k-q|)[\mathbf{k}\cdot\mathbf{q}\, c(q)/k^2 + \mathbf{k}\cdot\mathbf{p}\, c(p)/k^2]^2\). The \(F_{12}\) schematic replaces this with a polynomial approximation. For pure \(F_{12}\), \(v_1 = 0\) and \(v_2\) controls the distance from the glass transition. Higher \(v_2\) means stronger coupling \(\to\) stronger caging \(\to\) higher glass transition.

For practitioners: Usually keep \(v_1 = 0\) (default) and fit only \(v_2\) or equivalently \(\varepsilon\). If \(v_1 \neq 0\), the critical point shifts: \(v_{2,c} = 4/(1-v_1)^2\). Only adjust \(v_1\) if the model fails with \(v_1 = 0\).

\(\Gamma\) (Bare Relaxation Rate):

The inverse microscopic timescale, \(\Gamma = 1/\tau_0\).

For graduate students: In MCT, \(\Gamma(k) = k^2 D_0 / S(k)\) is the bare (non-interacting) relaxation rate for mode k. For the schematic model, \(\Gamma\) is the average rate controlling the short-time \(\beta\)-relaxation. It sets the absolute timescale: all relaxation times scale as \(\Gamma^{-1}\).

For practitioners: \(\Gamma\) determines the high-frequency behavior in oscillatory tests. From the crossover frequency \(\omega^*\) in \(G'(\omega)\), estimate \(\Gamma \approx \omega^*\). Typical values: \(10^3\)-\(10^6\) s-1 for colloids (diffusion-limited), \(10^{-2}\)-\(10^2\) s-1 for pastes.

\(G_\infty\) (High-Frequency Modulus):

The elastic modulus at frequencies above all relaxation processes.

For graduate students: \(G_\infty\) is the plateau modulus in the schematic stress formula \(\sigma = G_\infty \int \Phi^2 h(\gamma) \, dt'\). It corresponds to the \(k\)-space integral \(G_\infty = (k_B T / 60\pi^2) \int dk \, k^4 [S'(k)/S(k)^2]^2\) in the full MCT. For hard spheres, \(G_\infty \approx n k_B T\) where \(n\) is number density.

For practitioners: \(G_\infty\) is fitted from the high-frequency plateau in \(G'(\omega)\) or from the yield stress magnitude. Unlike phenomenological models, \(G_\infty\) has a microscopic interpretation tied to particle stiffness and number density.

Material Classification

Material Classification from ITT-MCT Parameters

\(\varepsilon\) Range

Glass State

Typical Materials

Flow Characteristics

\(\varepsilon\) < -0.2

Deep fluid

Dilute colloids (\(\phi < 0.4\)), weak suspensions

No yield stress, Newtonian or weakly shear-thinning, \(G'' > G'\) at all \(\omega\)

-0.2 < \(\varepsilon\) < 0

Near-critical fluid

Moderate colloids (\(0.4 < \phi < 0.516\)), pre-jammed emulsions

Zero yield stress but very slow relaxation (\(\tau_{\alpha} \to \infty\)), \(G' \approx G''\) at low \(\omega\), extreme shear thinning

0 < \(\varepsilon\) < 0.1

Marginal glass

Dense colloids (\(\phi \approx 0.52\text{--}0.55\)), soft microgel pastes

Small yield stress (10–100 Pa), fragile caging, strong overshoot in startup, \(G' > G''\) with small plateau

0.1 < \(\varepsilon\) < 0.3

Moderate glass

Hard-sphere colloids (\(\phi \approx 0.55\text{--}0.58\)), carbopol gels

Clear yield stress (100–1000 Pa), robust caging, pronounced plateau in \(G'(\omega)\)

\(\varepsilon\) > 0.3

Deep glass

Jammed colloids (\(\phi > 0.58\)), concentrated emulsions

Large yield stress (>1000 Pa), rigid caging, nearly frequency-independent \(G'\)

Connection to Cage Breaking

Critical Strain ( \(\gamma_c\) ): Quantifies cage strength

  • \(\gamma_c\) ~ 0.05: Very rigid cages (hard-sphere-like, strong glass)

  • \(\gamma_c\) ~ 0.15: Soft cages (deformable particles, weak glass)

  • \(\gamma_c\) ~ 0.3: Fragile cages (near-critical or polymer-like)

The strain decorrelation function \(h(\gamma) = \exp[-(\gamma/\gamma_c)^2]\) describes how accumulated strain destroys the structural correlation:

  • At \(\gamma < \gamma_c\): cage is intact, correlations persist

  • At \(\gamma \sim \gamma_c\): cage begins to break, correlations decay rapidly

  • At \(\gamma \gg \gamma_c\): cage is destroyed, system is fully fluidized

Physical Interpretation: \(\gamma_c\) represents the typical strain needed to displace a particle by one particle diameter and escape the cage. It is related to the Lindemann criterion for melting.

Yield Stress Emergence

In the glass state (\(\varepsilon > 0\)), the model predicts a dynamic yield stress:

\[\sigma_y = G_\infty \gamma_c f\]

where \(f\) is the non-ergodicity parameter (glass plateau height). This connects the yield stress to three microscopic quantities:

  1. \(G_\infty\): High-frequency modulus (single-particle stiffness)

  2. \(\gamma_c\): Cage escape strain (local rearrangement threshold)

  3. \(f\): Degree of caging (structural arrest parameter)

Diagnostic use: If fitted \(\sigma_y\) is much larger than expected from \(G_\infty \gamma_c f\), additional yield mechanisms (e.g., attractive forces, structural bonds) may be present beyond MCT caging.

Relaxation Timescale Hierarchy

The model distinguishes multiple timescales:

  1. Microscopic time: \(\tau_0 = 1/\Gamma\) (Brownian diffusion timescale)

  2. \(\beta\) -relaxation: Short-time rattling in cage, \(\tau_\beta \sim \tau_0\)

  3. \(\alpha\) -relaxation: Cage escape time, \(\tau_\alpha \sim \tau_0 |\varepsilon|^{-\gamma}\) (diverges as \(\varepsilon \to 0\))

Near the glass transition, \(\tau_\alpha\) can be \(10^6\)-\(10^{10}\) times larger than \(\tau_0\), explaining why materials appear “glassy” on experimental timescales yet are technically ergodic.

From fitting: The crossover frequency in \(G'(\omega), G''(\omega)\) gives \(\omega_\alpha \sim 1/\tau_\alpha\), revealing the structural relaxation timescale.

Shear-Induced Fluidization

The ITT-MCT model shows how shear melts the glass through strain accumulation:

  • Low shear rates (\(\dot{\gamma} \tau_\alpha \ll 1\)): Cage has time to reform, system behaves as solid with yield stress

  • High shear rates (\(\dot{\gamma} \tau_\alpha \gg 1\)): Cage is continuously broken by flow, effective viscosity decreases (shear thinning)

The Weissenberg number \(Wi = \dot{\gamma} \tau_\alpha\) controls the flow-microstructure coupling:

  • \(Wi \ll 1\): Quasistatic flow, microstructure equilibrates

  • \(Wi \sim 1\): Transient regime, stress overshoot occurs

  • \(Wi \gg 1\): Driven flow, microstructure is fully perturbed

Practical insight: If startup experiments show stress overshoot at shear rate \(\dot{\gamma}_{\text{peak}}\), estimate \(\tau_\alpha \sim 1/\dot{\gamma}_{\text{peak}}\).

Regimes and Behavior

Fluid State (\(\varepsilon < 0\))

  • Long-time correlator: \(\Phi(\infty) = 0\)

  • Zero yield stress

  • Terminal viscosity: \(\eta_0 = G_\infty / \Gamma\)

  • Newtonian at low rates, shear-thinning at high rates

Glass State (\(\varepsilon > 0\))

  • Non-ergodicity: \(\Phi(\infty) = f > 0\)

  • Yield stress: \(\sigma_y \approx G_\infty \gamma_c f\)

  • Plateau modulus: \(G'(\omega \to 0) \approx G_\infty f\)

  • Stress overshoot in startup

  • Residual stress in relaxation

Critical Point (\(\varepsilon = 0\))

  • Power-law decay: \(\Phi(t) \sim t^{-a}\)

  • Diverging relaxation time

  • Maximum susceptibility

  • Singular behavior in rheology

Fitting Guidance

Initialization Strategy

  1. Start with SAOS: Fit \(G'(\omega)\), \(G''(\omega)\) to estimate:

    • \(G_\infty\) from high-frequency plateau

    • \(\varepsilon\) from low-frequency plateau (glass) or terminal regime (fluid)

    • \(\Gamma\) from crossover frequency

  2. Refine with flow curve: Adjust:

    • \(\gamma_c\) from onset of shear thinning

    • \(\varepsilon\) from presence/absence of yield stress

  3. Validate with startup: Check:

    • Overshoot position and height

Troubleshooting

Problem: Poor fit at low frequencies

  • Solution: Check if system is actually glassy (try different \(\varepsilon\) sign)

  • May need to account for aging/thixotropy

Problem: Wrong shear-thinning slope

  • Solution: Adjust \(\gamma_c\)

  • Consider if there are multiple relaxation mechanisms

Problem: No stress overshoot in startup

  • Solution: Increase \(\dot{\gamma}\) or reduce \(\varepsilon\)

  • Overshoot requires \(Wi = \dot{\gamma} \tau_{\alpha} > 1\)

Model Comparison

ITT-MCT vs SGR

Aspect

ITT-MCT

SGR

Physics

Cage effect, density correlators

Energy landscape, trap escape

Control parameter

Volume fraction / \(v_2\)

Noise temperature \(x\)

Glass transition

Sharp (\(v_{2,c} = 4\))

Continuous (\(x \to 1\))

Shear melting

Strain decorrelation

Shear-induced trap escape

Computation

ODE integration

Master equation

ITT-MCT vs Fluidity Models

Aspect

ITT-MCT

Fluidity

Foundation

Microscopic correlators

Phenomenological fluidity \(f\)

Parameters

~5 (schematic)

~8–10

Glass transition

From MCT vertex

From fluidity bounds

Aging

Implicit in correlator

Explicit \(df/dt\) term

Shear banding

Not in schematic

In nonlocal version

Usage

Basic Flow Curve

from rheojax.models.itt_mct import ITTMCTSchematic
import numpy as np

# Create glass-state model
model = ITTMCTSchematic(epsilon=0.1)

# Predict flow curve
gamma_dot = np.logspace(-3, 3, 50)
sigma = model.predict(gamma_dot, test_mode='flow_curve')

# Shows yield stress at low rates
print(f"Yield stress ≈ {sigma[0]:.1f} Pa")

Linear Viscoelasticity

# Get G', G''
omega = np.logspace(-2, 3, 50)
G_components = model.predict(
    omega,
    test_mode='oscillation',
    return_components=True
)
G_prime = G_components[:, 0]
G_double_prime = G_components[:, 1]

# Glass plateau
print(f"G'(ω→0) ≈ {G_prime[0]:.1f} Pa")

Startup with Overshoot

# High shear rate startup
t = np.linspace(0, 10, 200)
gamma_dot = 10.0  # 1/s

sigma = model.predict(t, test_mode='startup', gamma_dot=gamma_dot)

# Find overshoot
i_max = np.argmax(sigma)
print(f"Overshoot at t = {t[i_max]:.2f} s")
print(f"Overshoot ratio = {sigma[i_max]/sigma[-1]:.2f}")

LAOS Harmonics

# Extract nonlinear harmonics
T = 2 * np.pi  # Period
t = np.linspace(0, 5*T, 500)

sigma_prime, sigma_double_prime = model.get_laos_harmonics(
    t, gamma_0=0.2, omega=1.0, n_harmonics=3
)

# Third harmonic ratio (nonlinearity measure)
I_3_1 = np.abs(sigma_prime[1]) / np.abs(sigma_prime[0])
print(f"I₃/I₁ = {I_3_1:.3f}")

Fitting Experimental Data

# Load data
gamma_dot_exp = np.array([...])  # Experimental shear rates
sigma_exp = np.array([...])      # Experimental stresses

# Initial guess
model = ITTMCTSchematic(epsilon=0.0)
model.parameters.set_value('G_inf', 1e4)

# Fit
model.fit(gamma_dot_exp, sigma_exp, test_mode='flow_curve')

# Check glass state
info = model.get_glass_transition_info()
print(f"Fitted ε = {info['epsilon']:.3f}")
print(f"System is {'glass' if info['is_glass'] else 'fluid'}")

Bayesian Inference

# Fit with uncertainty quantification
result = model.fit_bayesian(
    gamma_dot_exp, sigma_exp,
    test_mode='flow_curve',
    num_warmup=1000,
    num_samples=2000,
    num_chains=4
)

# Get credible intervals
intervals = model.get_credible_intervals(
    result.posterior_samples,
    credibility=0.95
)
print(f"v₂ = {intervals['v2']['mean']:.2f} "
      f"[{intervals['v2']['lower']:.2f}, {intervals['v2']['upper']:.2f}]")

Performance Tips

JIT Compilation and Precompilation

The ITT-MCT model uses JAX with diffrax for high-performance ODE integration. The first flow curve prediction triggers JIT (Just-In-Time) compilation, which can take 30-90 seconds depending on your hardware. Subsequent calls are very fast (< 1s for typical data sizes).

Precompilation: For predictable timing in interactive applications or benchmarks, use the precompile() method to trigger compilation upfront:

from rheojax.models.itt_mct import ITTMCTSchematic
import time

model = ITTMCTSchematic(epsilon=0.1)

# Trigger JIT compilation (this is slow)
compile_time = model.precompile()
print(f"Compilation took {compile_time:.1f}s")

# Now flow curve predictions are fast
gamma_dot = np.logspace(-3, 3, 50)
start = time.time()
sigma = model.predict(gamma_dot, test_mode='flow_curve')
print(f"Prediction took {time.time() - start:.2f}s")  # < 1s

Note: Precompilation only affects the diffrax-based flow curve solver. Other protocols (oscillation, startup, creep, relaxation, LAOS) use scipy and don’t require precompilation.

Prony Decomposition

The Volterra ODE approach converts the \(O(N^2)\) memory integral to \(O(N)\) using Prony series decomposition of the memory kernel. The quality of the Prony fit affects accuracy:

# Check Prony mode quality
model.initialize_prony_modes(t_max=1000.0, n_points=1000)
g, tau = model.get_prony_modes()
print(f"Prony modes: {len(g)}")
print(f"τ range: [{tau.min():.2e}, {tau.max():.2e}]")

If you see warnings about “Prony fit failed”, the memory kernel may be ill-conditioned. Solutions:

  1. Increase n_prony_modes (default: 10)

  2. Adjust the time range in initialize_prony_modes()

  3. Check if the system is very close to the glass transition (\(\varepsilon \approx 0\))

Memory Usage

For large batch predictions, memory scales with:

  • Number of shear rates \(\times\) Prony modes \(\times\) time steps

Typical usage: ~100 MB for 50 shear rates with 10 Prony modes.

For memory-constrained systems:

# Reduce Prony modes (trades accuracy for memory)
model = ITTMCTSchematic(epsilon=0.1, n_prony_modes=5)

# Or process in smaller batches
for gamma_chunk in np.array_split(gamma_dot, 10):
    sigma_chunk = model.predict(gamma_chunk, test_mode='flow_curve')

JAX Implementation Patterns

This section provides JAX code patterns for implementing ITT-MCT calculations. These patterns illustrate the core algorithms used internally by RheoJAX.

Memory Kernel Computation

The \(F_{12}\) memory kernel with strain decorrelation:

import jax.numpy as jnp
from jax import jit

@jit
def memory_kernel_f12(Phi, gamma, v1, v2, gamma_c):
    """
    F₁₂ memory kernel: m(Φ, γ) = (v₁Φ + v₂Φ²) · h(γ)

    Parameters
    ----------
    Phi : float
        Correlator value
    gamma : float
        Accumulated strain
    v1, v2 : float
        MCT vertex coefficients
    gamma_c : float
        Critical strain for cage breaking
    """
    # Mode-coupling vertex
    m_mct = v1 * Phi + v2 * Phi**2

    # Shear decorrelation (Gaussian form)
    h = jnp.exp(-(gamma / gamma_c)**2)

    return m_mct * h

Stress from Correlator History

Computing stress from the correlator integral:

@jit
def compute_stress_from_correlator(Phi_history, dt, gamma_dot, G_inf):
    """
    Compute stress from correlator history

    σ(t) = γ̇ ∫₀ᵗ G(τ) dτ = γ̇ G_∞ ∫₀ᵗ Φ(τ)² dτ

    Parameters
    ----------
    Phi_history : array
        Correlator values at each time step
    dt : float
        Time step
    gamma_dot : float
        Shear rate
    G_inf : float
        High-frequency modulus
    """
    G_history = G_inf * Phi_history**2
    return gamma_dot * jnp.trapezoid(G_history, dx=dt)

LAOS Harmonics Extraction

Extracting Fourier harmonics from LAOS stress response:

def extract_laos_harmonics(t, stress, omega, n_harmonics=5):
    """
    Extract odd Fourier harmonics from LAOS stress

    σ(t) = Σ [σ'_n sin(nωt) + σ''_n cos(nωt)]

    Parameters
    ----------
    t : array
        Time points (should cover complete cycles)
    stress : array
        Stress response
    omega : float
        Angular frequency
    n_harmonics : int
        Number of harmonics to extract (1, 3, 5, ...)

    Returns
    -------
    sigma_prime : array
        In-phase components [σ'₁, σ'₃, σ'₅, ...]
    sigma_double_prime : array
        Out-of-phase components [σ''₁, σ''₃, ...]
    """
    period = 2 * jnp.pi / omega

    # Use last complete cycle
    mask = t > (t[-1] - period)
    t_cycle = t[mask] - (t[-1] - period)
    stress_cycle = stress[mask]

    sigma_prime = []
    sigma_double_prime = []

    for n in range(1, 2 * n_harmonics, 2):  # Odd harmonics only
        # Fourier coefficients via projection
        sin_component = (2 / period) * jnp.trapezoid(
            stress_cycle * jnp.sin(n * omega * t_cycle), t_cycle
        )
        cos_component = (2 / period) * jnp.trapezoid(
            stress_cycle * jnp.cos(n * omega * t_cycle), t_cycle
        )

        sigma_prime.append(sin_component)
        sigma_double_prime.append(cos_component)

    return jnp.array(sigma_prime), jnp.array(sigma_double_prime)

Usage for nonlinearity quantification:

# Extract harmonics from LAOS simulation
sigma_prime, sigma_double_prime = model.get_laos_harmonics(
    t, gamma_0=0.2, omega=1.0, n_harmonics=3
)

# Third harmonic ratio (intrinsic nonlinearity)
I_3_1 = jnp.abs(sigma_prime[1]) / jnp.abs(sigma_prime[0])
print(f"I₃/I₁ = {I_3_1:.4f}")

# Fifth harmonic ratio
I_5_1 = jnp.abs(sigma_prime[2]) / jnp.abs(sigma_prime[0])
print(f"I₅/I₁ = {I_5_1:.4f}")

See Also

Choosing between ITT-MCT and SGR:

  • Use ITT-MCT if: You have colloidal systems, know the volume fraction, want to connect to microscopic structure factor \(S(k)\)

  • Use SGR if: You have generic soft glasses (foams, emulsions, pastes), want simpler parameterization, focus on aging/rejuvenation dynamics

API Reference

See ITTMCTSchematic in the Models API reference for the full class documentation, including all methods and attributes.

References