SPP Decomposer (Sequence of Physical Processes)¶
Quick Reference¶
Use when: Large Amplitude Oscillatory Shear (LAOS) analysis of yield-stress fluids, colloidal glasses, soft glassy materials
Parameters: Extracted quantities (\(G_{\text{cage}}\), \(\sigma_{sy}\), \(\sigma_{dy}\), \(I_3/I_1\), S-factor, T-factor)
Key equation: \(\sigma(t) = G'_t(t)\gamma(t) + \frac{G''_t(t)}{\omega}\dot{\gamma}(t) + \sigma_d(t)\)
Test modes: LAOS (time-domain stress-strain waveforms)
Material examples: Colloidal glasses, microgel pastes, concentrated emulsions, foams, polymer gels
Notation Guide¶
Symbol |
Meaning |
|---|---|
\(G_{\text{cage}}\) |
Cage modulus (elastic stiffness at \(\sigma\) = 0) |
\(\sigma_{y,\text{static}}\) |
Static yield stress (at strain reversal, \(\dot{\gamma} = 0\)) |
\(\sigma_{y,\text{dynamic}}\) |
Dynamic yield stress (at rate reversal, \(\gamma \neq 0\)) |
\(G'_t(t)\) |
Instantaneous storage modulus (time-dependent) |
\(G''_t(t)\) |
Instantaneous loss modulus (time-dependent) |
\(\gamma_0\) |
Strain amplitude |
\(\omega\) |
Angular frequency (rad/s) |
\(I_3/I_1\) |
Third harmonic intensity ratio (nonlinearity measure) |
\(S\) |
Strain stiffening factor |
\(T\) |
Shear thickening factor |
\(\delta_t(t)\) |
Instantaneous phase angle |
\(\gamma_{eq}(t)\) |
Equilibrium strain position (material frame) |
Overview¶
The Sequence of Physical Processes (SPP) framework, introduced by Rogers et al. (2011) [1] and comprehensively formalized in Rogers (2017) [2], provides a time-domain approach to Large Amplitude Oscillatory Shear (LAOS) analysis that extracts instantaneous elastic modulus and dynamic viscosity without Fourier decomposition.
Unlike Fourier/Chebyshev methods that decompose stress into potentially infinite harmonics representing a static point in n-dimensional space, SPP views the stress response as a dynamic trajectory through a two-dimensional, easily interpretable space. The material response is described as a sequence of discrete physical processes:
Elastic extension of microstructural cages
Static yielding when cages rupture
Viscous flow following the steady-state flow curve
Cage reformation when instantaneous shear rate approaches zero
This approach provides intuitively simpler interpretation while removing the problem of understanding an infinite number of harmonic coefficients. The SPP framework:
Makes no assumptions about symmetries in the response
Views each infinitesimal portion of the response as the object to be analyzed
Uses differential parameters that are immune to arbitrary reference state choices
Distinguishes between strains in the lab frame and material frame
Physical Foundations¶
The Four-Step Yielding Sequence¶
For yield-stress materials under LAOS, the material undergoes a characteristic four-step sequence within each oscillatory cycle:
Step 1: Elastic Extension (Cage Deformation)
Beginning at zero stress, strain causes the microstructural cage to extend elastically. The cage represents the effective constraint formed by nearest neighbors (colloidal particles, polymer entanglements). During this phase:
Stress increases linearly with strain
The slope represents the cage modulus \(G_{\text{cage}}\)
Material behaves as an elastic solid
Step 2: Static Yielding (Cage Rupture)
When cages are strained beyond their yield strains, the system begins to flow:
Associated with the stress overshoot (“bump”) after linear buildup
Static yield stress \(\sigma_{y,\text{static}}\): maximum stress before rupture
Yield strain \(\gamma_y\): strain at which cages break
Step 3: Viscous Flow (Post-Yield)
After yielding, the material follows the steady-state flow curve:
Power-law behavior: \(\sigma = K|\dot{\gamma}|^n\)
Same flow curve as steady-shear experiments
Continues until instantaneous shear rate approaches zero
Step 4: Cage Reformation (Recovery)
When the instantaneous shear rate momentarily becomes zero at strain extrema:
Cages instantaneously reform
Dynamic yield stress \(\sigma_{y,\text{dynamic}}\): stress at reformation
Process begins again in opposite direction
Cage Model Physics¶
The SPP framework is built on the cage model from colloidal physics [3]. In a quiescent system of concentrated colloids:
A representative colloid’s motion is hindered by nearest neighbors forming an effective cage
At short times: \(\beta\)-relaxation (rattling within cage)
At long times: \(\alpha\)-relaxation (cage escape)
External shearing can break cages and induce flow
The cage modulus \(G_{\text{cage}}\) directly measures the elastic strength of this microstructural caging. Key properties:
Constant across amplitudes: Unlike \(G'\), \(G_{\text{cage}}\) remains constant even at large amplitudes where \(G'\) decreases by more than a decade
State-dependent: Solid-state cages are stronger than soft-state cages
Recovers after breaking: Once broken, cages reform with the soft-state modulus
Constitutive Equations¶
Complete Stress Reconstruction (Rogers 2017)¶
The fundamental contribution of Rogers (2017) [2] is recognizing that three, not two, time-dependent nonlinear viscoelastic functions are required to fully describe any response. The complete stress decomposition is:
- where:
\(G'_t(t)\) — instantaneous storage modulus (elastic contribution)
\(G''_t(t)\) — instantaneous loss modulus (viscous contribution)
\(\gamma_{eq}(t)\) — equilibrium strain position (can shift during deformation)
\(\sigma_y(t)\) — yield stress term (zero-rate stress intercept)
The third term, representing the displacement of the osculating plane, accounts for:
Yield stresses: Stress offsets not captured by moduli alone
Shifting strain equilibria: The point of zero elastic extension can move
Non-Newtonian flow: Deviation from simple viscoelastic behavior
Frenet-Serret Frame Derivation¶
The SPP formulation uses differential geometry on the 3D response trajectory in the native deformation space \([\gamma(t), \dot{\gamma}(t)/\omega, \sigma(t)]\). Following the Frenet-Serret apparatus [2]:
Binormal Vector Definition:
where \(\mathbf{T}\) is the tangent vector and \(\mathbf{N}\) is the principal normal.
Instantaneous Moduli Definitions (Equations 18-19 from Rogers 2017):
where \(B_\gamma\), \(B_{\dot{\gamma}/\omega}\), and \(B_\sigma\) are the components of the binormal vector in the strain, strain-rate, and stress directions.
Key Property: Because the binormal vector is a differential parameter, \(G'_t(t)\) and \(G''_t(t)\) depend only on changes in strain, not the total strain. They are therefore immune to the arbitrary choice of reference state that affects static schemes. This approach has been validated against theoretical nonlinear models [4].
Lab Frame vs Material Frame¶
A central conceptual advance in Rogers (2017) [2] is the distinction between the lab frame strain and the material frame strain. This distinction explains how SPP captures yielding without requiring explicit yield criteria.
- Lab Frame Strain: \(\gamma(t)\)
The externally imposed deformation, measured relative to the initial configuration. This is what the rheometer controls and reports.
- Material Frame Strain: \(\gamma(t) - \gamma_{eq}(t)\)
The actual elastic deformation experienced by the microstructure, relative to its current equilibrium position. This is the strain that produces elastic stress.
- Equilibrium Strain \(\gamma_{eq}(t)\):
The position of zero elastic extension, which can shift during deformation. In linear viscoelasticity, \(\gamma_{eq} = 0\) at all times. For yield stress materials, \(\gamma_{eq}\) shifts as cages rupture and reform.
Physical Interpretation:
Consider a material undergoing LAOS with amplitude \(\gamma_0\):
Pre-yield (\(|\gamma| < \gamma_y\)): - \(\gamma_{eq} = 0\) (equilibrium hasn’t shifted) - Material frame strain equals lab frame strain - Elastic stress: \(\sigma_{elastic} = G'_t \cdot \gamma\)
During yielding (cage rupture): - \(\gamma_{eq}\) begins to shift toward \(\gamma\) - Material frame strain decreases even as lab frame strain increases - This is how plastic flow reduces elastic stress
Post-yield (\(|\gamma| > \gamma_y\)): - \(\gamma_{eq} \to \pm(\gamma_0 - \gamma_y)\) for yield stress materials - Material frame strain saturates near \(\gamma_y\) - Subsequent deformation is predominantly viscous
Mathematical Expression:
The complete stress decomposition becomes:
For linear viscoelastic materials: \(\gamma_{eq} = 0\) and \(\sigma_y = 0\).
For generalized Newtonian fluids: \(\gamma_{eq} = \gamma(t)\) (no elastic stress).
For yield stress materials: \(\gamma_{eq}\) shifts during the yielding process, capturing the plastic strain accumulation through the displacement term.
The Displacement Term¶
The displacement term (Equation 11 from Rogers 2017) determines the position of the osculating plane:
This is physically interpreted as:
For linear viscoelastic responses: The displacement is identically zero.
For generalized Newtonian fluids: The equilibrium strain equals the lab frame strain, \(\gamma_{eq}(t) = \gamma(t)\), ensuring zero elastic stress at all times.
For yield-stress materials: The equilibrium position shifts during yielding, with \(\gamma_{eq}\) moving to \(\pm(\gamma_0 - \gamma_y)\) after cage rupture.
Cage Modulus Definition¶
The cage modulus is defined as the instantaneous slope at zero stress:
In the small phase angle, small-amplitude limit:
Yield Stress Definitions¶
Static Yield Stress (stress at yielding point):
Dynamic Yield Stress (stress at cage reformation):
Both yield stresses exhibit power-law rate dependence with identical exponents (~0.2):
In the large-amplitude limit: \(\sigma_{y,\text{static}} \approx 2.75 \times \sigma_{y,\text{dynamic}}\)
Rates of Change (Stiffening/Softening, Thickening/Thinning)¶
Rogers (2017) provides explicit definitions for the rates at which moduli change (Equations 22-23), enabling quantitative identification of transitions:
where \(\tau\) is the torsion of the response trajectory.
Interpretation:
\(\dot{G}'_t > 0\): Stiffening (increasing elasticity)
\(\dot{G}'_t < 0\): Softening (decreasing elasticity)
\(\dot{G}''_t > 0\): Thickening (increasing viscosity)
\(\dot{G}''_t < 0\): Thinning (decreasing viscosity)
Key insight: In the linear regime where responses are planar, the torsion \(\tau = 0\) everywhere, making both derivatives zero. The moduli are therefore constant in time. Nonzero torsion indicates nonlinear behavior.
Time-Domain Cole-Cole Plots¶
SPP enables dynamic Cole-Cole analysis by plotting \(G''_t(t)\) vs \(G'_t(t)\) parametrically through the oscillation cycle [2]:
Linear regime: Collapses to a single point \((G', G'')\)
Nonlinear regime: Traces a trajectory showing material evolution
Trajectory interpretation legend (from Rogers 2017, Figure 2):
Position/Motion |
Interpretation |
|---|---|
\(G''_t = 0\) |
Purely elastic |
\(G'_t = 0\) |
Purely viscous |
\(G''_t > G'_t\) |
Predominantly viscous |
\(G'_t > G''_t\) |
Predominantly elastic |
Crossing \(G'_t=G''_t\) toward viscous |
Fluidization |
Crossing \(G'_t=G''_t\) toward elastic |
Reformation |
Time-Domain Phase Angle¶
SPP defines an instantaneous phase angle without Fourier decomposition:
- This phase evolves continuously through the cycle:
\(\delta_t \to 0°\): Purely elastic (solid-like)
\(\delta_t \to 90°\): Purely viscous (liquid-like)
Transition regions reveal yielding and recovery
Governing Equations¶
Complete Stress Decomposition (Rogers 2017)¶
The SPP framework provides a complete time-domain decomposition of the stress response without Fourier analysis:
This three-term decomposition includes:
Elastic term: \(G'_t(t)[\gamma(t) - \gamma_{eq}(t)]\) — instantaneous elastic response in material frame
Viscous term: \(\frac{G''_t(t)}{\omega}\dot{\gamma}(t)\) — instantaneous viscous dissipation
Displacement term: \(\sigma_y(t)\) — yield stress contribution
Frenet-Serret Differential Geometry¶
The instantaneous moduli are computed from the Frenet-Serret binormal vector of the 3D response trajectory \(\mathbf{A}(t) = [\gamma(t), \dot{\gamma}(t)/\omega, \sigma(t)]\):
Binormal vector:
Instantaneous moduli definitions:
where \(B_\gamma, B_{\dot{\gamma}/\omega}, B_\sigma\) are the binormal components in the strain, strain-rate, and stress directions.
Key property: These are differential parameters depending only on changes in strain, making them immune to arbitrary reference state choices.
Rates of Change (Stiffening/Softening Dynamics)¶
Rogers (2017) provides explicit formulas for the rates at which moduli evolve:
where \(\tau(t)\) is the torsion of the trajectory and \(\mathbf{N}(t)\) is the principal normal vector.
- Physical interpretation:
\(\dot{G}'_t > 0\): Stiffening (increasing elasticity)
\(\dot{G}'_t < 0\): Softening (decreasing elasticity)
\(\dot{G}''_t > 0\): Thickening (increasing viscosity)
\(\dot{G}''_t < 0\): Thinning (decreasing viscosity)
In the linear regime, \(\tau = 0\) everywhere, making both derivatives zero (constant moduli). Nonzero torsion indicates nonlinearity.
Analysis Methods¶
The SPP framework supports two complementary analysis approaches for computing instantaneous moduli from LAOS waveforms. RheoJAX implements both methods with Rogers-parity defaults matching the MATLAB SPPplus v2.1 implementation.
Fourier Domain Filtering¶
The Fourier method reconstructs the stress waveform using a finite number of odd harmonics before computing derivatives:
Parameters:
n_harmonics(M): Number of harmonics for reconstruction (default: 39, must be odd)n_periods(p): Number of oscillation periods in the data
When to use:
High-quality periodic data at steady alternance
When Fourier spectrum provides additional insight
For comparison with FTC (Fourier-Chebyshev) analysis
Key consideration: M should be set based on the noise floor—higher M captures more nonlinear detail but may amplify noise. The default M=39 balances detail capture with noise rejection for typical rheometer data.
Numerical Differentiation¶
The numerical method uses finite differences directly on the measured waveforms:
Parameters:
step_size(k): Points for finite difference stencil (default: 8)num_mode: Differentiation procedureMode 1: Standard (forward/backward at ends, centered elsewhere)
Mode 2: Looped (assumes periodic, centered everywhere—recommended for LAOS)
When to use:
Non-periodic or partial-cycle data
When Fourier decomposition is unnecessary
For real-time or streaming analysis
Method Comparison¶
Aspect |
Fourier Domain |
Numerical Differentiation |
|---|---|---|
Data requirement |
Integer periods, even points/period |
Any sampling |
Noise handling |
Implicit filtering via harmonic truncation |
Requires pre-smoothing or larger k |
Computational cost |
FFT + filtering |
Direct finite differences |
Best for |
Steady-state LAOS |
Transients, partial cycles |
What You Can Learn¶
This section explains how to interpret SPP decomposition results to gain physical insights about yielding materials and extract actionable knowledge for both research and industrial applications.
Parameter Interpretation¶
- :math:`G_{text{cage}}` (Cage Modulus):
The cage modulus measures the elastic strength of the confining microstructural cage.
For graduate students: \(G_\text{cage} = d\sigma/d\gamma|_{\sigma=0}\) is amplitude-independent, unlike \(G'(\gamma_0)\). It directly reflects nearest-neighbor interaction stiffness and is constant across loading protocols. Compare with theoretical predictions: \(G_\text{cage} \approx \phi^2 k_B T / a^3\) for hard spheres where \(\phi\) is volume fraction and \(a\) is particle radius.
For practitioners: \(G_{\text{cage}}\) provides a true material property unaffected by strain amplitude. Use for batch-to-batch QC of complex fluids. Typical values: 10–1000 Pa (colloidal glasses), 100–10000 Pa (polymer gels), 1–100 Pa (emulsions).
- \(\sigma_{y,static}\) (Static Yield Stress):
Stress required to initiate flow from rest, measured at strain reversal.
For graduate students: \(\sigma_{y,static} > \sigma_{y,dynamic}\) due to cage reformation during momentary rest. The ratio \(\sigma_{y,static}/\sigma_{y,dynamic} \approx 2\text{--}3\) reveals thixotropic strength and cage reformation kinetics.
For practitioners: Critical for applications requiring material to hold shape (coatings, pastes). Higher \(\sigma_{y,static}\) = better sag resistance.
- \(\sigma_{y,dynamic}\) (Dynamic Yield Stress):
Stress during continuous flow, measured at rate reversal.
For graduate students: Connects to steady-shear yield stress extrapolation. Both yield stresses scale as \(\sigma_y \propto \gamma_0^n\) where \(n \approx 0.2\) for colloidal systems.
For practitioners: Determines minimum stress for maintained flow. Use for pump sizing and flow assurance calculations.
- I_3/I_1 (Nonlinearity Ratio):
Third harmonic ratio quantifying degree of nonlinearity.
For graduate students: \(I_3/I_1\) grows as \(\sim\gamma_0^2\) in weakly nonlinear regime. Larger values indicate stronger deviation from linear viscoelasticity and correlate with yield stress behavior.
For practitioners: \(I_3/I_1 > 0.1\) indicates significant nonlinearity. Use as quick screening metric for yield stress presence.
Material Classification¶
Parameter Range |
Material Behavior |
Typical Materials |
Processing Implications |
|---|---|---|---|
\(G_\text{cage} > 1000\) Pa |
Stiff microstructure |
Dense colloids, filled polymers |
High yield stress, difficult pumping |
\(G_\text{cage} < 100\) Pa |
Soft microstructure |
Dilute emulsions, weak gels |
Easy flow, poor shape retention |
\(\sigma_{sy}/\sigma_{dy} > 3\) |
Strong thixotropy |
Paints, drilling muds |
Time-dependent processing |
\(\sigma_{sy}/\sigma_{dy} \approx 1.5\) |
Weak thixotropy |
Food emulsions, cosmetics |
Near-instantaneous recovery |
\(I_3/I_1 > 0.3\) |
Highly nonlinear |
Yield stress fluids, gels |
Large amplitude processing needed |
\(I_3/I_1 < 0.05\) |
Weakly nonlinear |
Polymer solutions |
SAOS sufficient for characterization |
Physical Insights from SPP Decomposition¶
Cage Modulus (:math:`G_{text{cage}}`**) — Microstructural Stiffness:**
The cage modulus directly measures the elastic strength of the confining microstructural cage:
- Key insights:
Constant across amplitudes: Unlike \(G'(\gamma_0)\), which decreases at large amplitudes, \(G_{\text{cage}}\) remains constant
True material property: Independent of loading history or amplitude
Microstructural interpretation: Directly related to nearest-neighbor confinement stiffness
Typical values: 10-1000 Pa for colloidal glasses, 100-10000 Pa for polymer gels
Static vs Dynamic Yield Stress — Intracycle Physical Processes:
SPP distinguishes two physically distinct yield stresses:
- Static yield stress \(\sigma_{y,\text{static}}\):
Measured at strain reversal (\(\gamma = \pm\gamma_0, \dot{\gamma} = 0\))
Represents the stress required to initiate flow from rest
Larger than dynamic yield due to cage reformation during momentary rest
Scales as \(\sigma_{y,\text{static}} \propto \gamma_0^{0.2}\) (typical for colloids)
- Dynamic yield stress \(\sigma_{y,\text{dynamic}}\):
Measured at rate reversal (\(\dot{\gamma} = 0, \gamma \neq 0\))
Represents the stress during continuous flow
Connects to steady-shear yield stress extrapolation
Scales as \(\sigma_{y,\text{dynamic}} \propto \gamma_0^{0.2}\) with same exponent
- Ratio interpretation: \(\sigma_{y,\text{static}} / \sigma_{y,\text{dynamic}} \approx 2\text{--}3\) reveals information about:
Cage reformation kinetics (fast reformation leads to larger ratio)
Thixotropic strength (strong thixotropy leads to larger ratio)
Structural memory (long memory leads to larger ratio)
Intracycle Processes — Yielding Sequence:
SPP reveals the four-step sequence within each LAOS cycle:
- Elastic extension (linear regime):
\(G'_t \approx G_{\text{cage}}\), nearly constant
Stress builds linearly with strain
Cages deform elastically
- Static yielding (cage rupture):
\(G'_t\) decreases sharply
Stress overshoot (“bump” in Lissajous)
Cages break, flow initiates
- Viscous flow (post-yield):
\(G''_t > G'_t\) (predominantly viscous)
Follows steady-state flow curve
Material flows until rate reversal
- Cage reformation (recovery):
\(G'_t\) increases sharply
Fluidity decreases as \(\dot{\gamma} \to 0\)
Cages reform at dynamic yield stress
Material Characterization Capabilities¶
- From Amplitude Sweeps:
\(G_{\text{cage}}\) (constant, true material property)
Yield stress amplitude scaling exponent (\(\sigma_y \propto \gamma_0^n\))
Static/dynamic yield stress ratio (thixotropic signature)
Nonlinearity onset (via \(I_3/I_1\) ratio)
- From Single LAOS Waveform:
Instantaneous moduli trajectories \(G'_t(t), G''_t(t)\)
Yield points (static and dynamic)
Intracycle Cole-Cole trajectory
Stiffening/softening/thickening/thinning regions
- From Time-Domain Cole-Cole:
Viscoelastic character evolution through cycle
Fluidization transitions (crossing \(G'_t = G''_t\))
Reformation transitions (return to elastic dominance)
- From Harmonic Analysis:
\(I_3/I_1\) ratio (degree of nonlinearity)
Higher harmonic content (explained by power-law flow post-yield)
Comparison with Fourier methods (qualitative consistency)
Parameters¶
SPP Output Variables¶
The SPP decomposer produces the following time-dependent quantities. These correspond to the output variables in the MATLAB SPPplus v2.1 implementation.
Variable |
Description |
Notes |
|---|---|---|
\(G'_t(t)\) |
Time-dependent storage modulus |
Instantaneous elastic response |
\(G''_t(t)\) |
Time-dependent loss modulus |
Instantaneous viscous response |
\(|G^*_t(t)|\) |
Magnitude of complex modulus |
\(\sqrt{{G'_t}^2 + {G''_t}^2}\) |
\(\tan(\delta_t)\) |
Time-dependent loss tangent |
\(G''_t / G'_t\) |
\(\delta_t(t)\) |
Time-dependent phase angle |
Range: \([-\pi/2, 3\pi/2]\) |
\(\sigma_d(t)\) |
Displacement stress |
Osculating plane position |
\(\gamma_{eq,est}(t)\) |
Estimated equilibrium strain |
Valid when \(G'_t \gg G''_t\) |
\(\dot{G}'_t(t)\) |
Storage modulus rate |
Stiffening (+) / softening (-) |
\(\dot{G}''_t(t)\) |
Loss modulus rate |
Thickening (+) / thinning (-) |
\(|\dot{G}^*_t(t)|\) |
Complex modulus speed |
Rate of modulus change |
\(\tilde{\dot{\delta}}_t(t)\) |
Normalized phase angle velocity |
Assumes sinusoidal strain |
Variable |
Description |
Notes |
|---|---|---|
\(\mathbf{T}(t)\) |
Tangent vector |
Direction of motion in deformation space |
\(\mathbf{N}(t)\) |
Normal vector |
Direction of curvature |
\(\mathbf{B}(t)\) |
Binormal vector |
Osculating plane orientation |
Extracted Physical Parameters¶
The SPP decomposer extracts the following physical parameters:
Name |
Symbol |
Units |
Description |
|---|---|---|---|
|
\(G_{\text{cage}}\) |
Pa |
Apparent cage modulus; elastic strength of microstructure |
|
\(\sigma_{y,\text{static}}\) |
Pa |
Static yield stress; stress at cage rupture |
|
\(\sigma_{y,\text{dynamic}}\) |
Pa |
Dynamic yield stress; stress at cage reformation |
|
\(\gamma_y\) |
— |
Yield strain; strain at cage rupture |
|
\(I_3/I_1\) |
— |
Third harmonic ratio; nonlinearity measure |
|
\(S\) |
— |
Strain stiffening factor |
|
\(T\) |
— |
Shear thickening factor |
|
\(\langle G'_t \rangle\) |
Pa |
Cycle-averaged instantaneous storage modulus |
|
\(\langle G''_t \rangle\) |
Pa |
Cycle-averaged instantaneous loss modulus |
Parameter Interpretation¶
- :math:`G_{text{cage}}` (Cage Modulus):
Instantaneous elastic slope at zero stress, measuring cage stiffness independently of deformation history. For graduate students: \(G_{\text{cage}} = d\sigma/d\gamma|_{\sigma=0}\) represents true microstructural stiffness. Unlike \(G'(\gamma_0)\) which decreases at large amplitudes due to cage breaking, \(G_{\text{cage}}\) remains constant. In small-amplitude limit: \(\lim_{\gamma_0 \to 0} G_{\text{cage}} = \lim_{\gamma_0 \to 0} G'\). Relates to plateau modulus in entangled polymers or colloidal cage elastic modulus. For hard-sphere colloids: \(G_{\text{cage}} \sim k_BT/(\pi a^3) \phi\) where a is particle radius, \(\phi\) is volume fraction. For practitioners: Extract from Lissajous slope at origin or SPP decomposition. Typical ranges: colloidal glasses 10-100 Pa, microgel pastes 100-1000 Pa, polymer gels 1000-10000 Pa. Higher \(G_{\text{cage}}\) = stiffer microstructural cages.
- \(\sigma_{sy}\) , \(\sigma_{dy}\) (Static and Dynamic Yield Stresses):
Two distinct yield stresses: \(\sigma_{sy}\) at strain reversal (\(\dot{\gamma} = 0\), \(\gamma = \pm\gamma_0\)), \(\sigma_{dy}\) at rate reversal (\(\dot{\gamma} = 0\), \(\gamma \neq 0\)). For graduate students: Power-law scaling: \(\sigma_{sy}(\gamma_0) \sim \gamma_0^{n_{sy}}\), \(\sigma_{dy}(\gamma_0) \sim \gamma_0^{n_{dy}}\) with \(n \approx 0.2\) typical for hard-sphere colloids (Rogers et al. 2011). Ratio \(\sigma_{sy}/\sigma_{dy} \sim 2\text{--}3\) quantifies cage reformation kinetics during momentary rest at strain extrema. Connects to Herschel-Bulkley yield via extrapolation: \(\sigma_{y,HB} \approx \sigma_{dy}(\gamma_0 \to 0)\). For practitioners: Static yield (higher) = restart stress from rest. Dynamic yield (lower) = continuous flow stress. Large ratio (> 3) indicates strong thixotropy or fast cage reformation. Extract from SPP at multiple \(\gamma_0\).
- :math:`I_3/I_1` (Third Harmonic Ratio):
Ratio of third to first harmonic intensities, quantifying degree of nonlinearity in LAOS. For graduate students: Fourier decomposition: \(\sigma(t) = \sum_n I_n \sin(n\omega t + \phi_n)\). \(I_3/I_1\) measures deviation from linear viscoelasticity. For small \(\gamma_0\): \(I_3/I_1 \sim \gamma_0^2\). Saturation at large \(\gamma_0\) indicates full yielding. Connects to Pipkin space: \(I_3/I_1\) contours reveal nonlinear regime boundaries. For practitioners: \(I_3/I_1 < 0.01\) (linear regime), 0.01–0.1 (nonlinear), \(> 0.1\) (strongly nonlinear/yielding). Use to define transition amplitude \(\gamma_{0,NL}\) where material enters nonlinear regime.
- S, T (Stiffening/Thickening Factors):
Dimensionless factors quantifying intracycle strain stiffening (S) and shear thickening (T). For graduate students: Defined via rates \(dG'_t/d\gamma\) (S-factor) and \(dG''_t/d(\dot{\gamma}/\omega)\) (T-factor) per Rogers (2017). Positive values indicate stiffening/thickening, negative indicate softening/thinning. Transitions between regimes reveal yielding sequence. For practitioners: Use S and T to identify intracycle phases: elastic extension (\(S \approx 0\), \(T \approx 0\)), yielding (\(S < 0\), T changes sign), flow (\(S \approx 0\), \(T < 0\)), reformation (\(S > 0\), \(T > 0\)).
Material Classification¶
Parameter Range |
Material Behavior |
Typical Materials |
Processing Implications |
|---|---|---|---|
\(G_{\text{cage}}\) = 10–100 Pa |
Soft cages |
Colloidal glasses (\(\phi \sim 0.6\)), microgels |
Low yield stress, gentle handling needed |
\(G_{\text{cage}}\) = 100–1000 Pa |
Moderate stiffness |
Concentrated emulsions, foams, pastes |
Moderate processing stresses |
\(G_{\text{cage}} > 1000\) Pa |
Stiff cages |
Polymer gels, filled elastomers |
High processing stresses, robust structures |
\(\sigma_{sy}/\sigma_{dy}\) < 2 |
Weak thixotropy, fast reformation |
Simple yield-stress fluids, weak gels |
Predictable restart behavior |
\(\sigma_{sy}/\sigma_{dy}\) = 2-3 |
Moderate thixotropy |
Concentrated suspensions, soft glasses |
Time-dependent yield, moderate memory |
\(\sigma_{sy}/\sigma_{dy}\) > 3 |
Strong thixotropy, slow reformation |
Aged pastes, strongly thixotropic gels |
Long rest-time dependence |
\(I_3/I_1 < 0.01\) |
Linear regime |
All materials at small \(\gamma_0\) |
SAOS applicable |
\(I_3/I_1\) = 0.01–0.1 |
Nonlinear transition |
Near yielding |
MAOS/LAOS needed |
\(I_3/I_1 > 0.1\) |
Strongly nonlinear, full yielding |
LAOS at large \(\gamma_0\) |
Yielding cycle clearly observed |
- :math:`sigma_{sy}/sigma_{dy}` (Yield Stresses):
Physical meaning: Stress thresholds for cage rupture and reformation
Rate dependence: Both scale as \(\dot{\gamma}_0^{0.2}\)
Ratio: \(\sigma_{y,\text{static}} / \sigma_{y,\text{dynamic}} \approx 2.75\)
- :math:`I_3/I_1` (Third Harmonic Ratio):
Physical meaning: Degree of nonlinearity in stress response
Linear regime: \(I_3/I_1 \to 0\)
Nonlinear regime: \(I_3/I_1 \sim 0.1 - 0.3\)
Validity and Assumptions¶
Assumptions:
Time-domain analysis: Raw stress-strain waveforms required (not harmonic coefficients)
Periodic steady state: Material has reached oscillatory steady state
Weak thixotropy: Structure equilibrates within each cycle
Homogeneous deformation: No wall slip or shear banding
Valid test modes:
LAOS (Large Amplitude Oscillatory Shear)
Strain-controlled oscillation with time-resolved waveform capture
Limitations:
- Strong thixotropy:
For materials where structure changes dramatically over cycles, instantaneous properties may not be well-defined. Rule of thumb: SPP works when structural relaxation time \(\tau_s > 2\pi/\omega\).
- Noise sensitivity near zero stress:
Ratios become sensitive when \(\sigma \approx 0\). Apply smoothing or exclude these regions from analysis.
- Cycle selection effects:
Early cycles may contain transients; late cycles may show fatigue. Always verify consistency across multiple cycles.
SPP vs Fourier/Chebyshev¶
Aspect |
SPP (Time-Domain) |
Fourier/Chebyshev |
|---|---|---|
Domain |
Time (instantaneous properties) |
Frequency (harmonic coefficients) |
Basis functions |
Physical processes (discrete) |
Orthonormal harmonics (infinite) |
Yield stress |
Direct extraction |
Indirect from \(G_M, G_L\) |
Higher harmonics |
Explained by power-law flow |
Individual physical meanings unclear |
Best for |
Yield-stress fluids, physical mechanisms |
Material fingerprinting, literature comparison |
SPP is qualitatively consistent with Fourier-Chebyshev analysis [5]. Higher harmonics observed in Fourier spectra are explained by the power-law flow response post-yielding. For a comprehensive review of LAOS methods including both SPP and Fourier approaches, see Hyun et al. (2011) [6].
SPP vs FTC: Complementary Analysis¶
Recent studies (2022-2024) have demonstrated that SPP and Fourier-Transform coupled with Chebyshev decomposition (FTC) methods provide complementary insights for nonlinear rheology characterization:
SPP Advantages:
Time-resolved instantaneous parameters at any point in the cycle
Direct physical interpretation (cage modulus, yield stresses)
No assumption about response symmetry
Applicable to partial cycles and transients
Reveals intracycle yielding sequence
FTC Advantages:
Global measures averaged over complete cycles
Direct connection to Pipkin diagram coordinates
Established elastic/viscous Chebyshev coefficients (\(e_n, v_n\))
Broader literature base for material fingerprinting
Standard nonlinearity metrics (\(S, T, I_3/I_1\))
Recommended Workflow:
Apply FTC for initial nonlinearity characterization (\(I_3/I_1\), S, T factors)
Apply SPP for intracycle process identification
Combine insights: FTC defines “what” is nonlinear, SPP reveals “when” and “why”
Recent comparative studies have applied both methods to food rheology (doughs, gels), 3D printing materials, and emulsions, finding that the combined approach provides more complete material understanding than either method alone [11] [12].
Usage¶
Input Data Requirements¶
For reliable SPP analysis, input data should meet these specifications:
Data Format:
Time series: \(t, \gamma(t), \dot{\gamma}(t), \sigma(t)\)
Columns: Time [s], Strain [-], Strain Rate [1/s], Stress [Pa]
If strain rate unavailable, will be differentiated from strain (requires periodic data)
Sampling Requirements:
For Fourier method: Integer number of periods with even points per period
For numerical method: Uniform time spacing recommended
Typical: 200-1000 points per period for smooth derivatives
Unit Conversions:
The decomposer accepts standard SI units. For non-SI data, apply conversion factors:
# Example: strain in % to strain units
data['strain'] = data['strain_percent'] / 100
# Example: stress in kPa to Pa
data['stress'] = data['stress_kPa'] * 1000
Data Quality Checklist:
Remove startup transients (typically first 1-2 cycles)
Ensure steady alternance before analysis
Check for wall slip or shear banding artifacts
Verify data spans complete oscillation cycles
Confirm stress-strain Lissajous forms closed loops
Basic SPP Analysis¶
import numpy as np
from rheojax.transforms import SPPDecomposer
from rheojax.io.readers import auto_read
# Load LAOS waveform data
data = auto_read("laos_waveforms.csv")
# Create SPP decomposer with Rogers-parity defaults
decomposer = SPPDecomposer(
omega=1.0, # Angular frequency (rad/s)
gamma_0=1.0, # Strain amplitude
n_harmonics=39, # Rogers default (odd)
step_size=8, # 8-point stencil
use_numerical_method=True,
)
# Apply decomposition
result = decomposer.transform(data)
spp_results = decomposer.get_results()
# Access extracted quantities
G_cage = spp_results['G_cage']
sigma_sy = spp_results['sigma_sy']
sigma_dy = spp_results['sigma_dy']
I3_I1 = spp_results['I3_I1_ratio']
print(f"Cage modulus: {G_cage:.1f} Pa")
print(f"Static yield stress: {sigma_sy:.1f} Pa")
print(f"Dynamic yield stress: {sigma_dy:.1f} Pa")
print(f"Yield stress ratio: {sigma_sy/sigma_dy:.2f}")
Cycle Selection¶
# Skip startup transients (cycles 0-1), analyze cycles 2-5
decomposer = SPPDecomposer(
omega=1.0,
gamma_0=1.0,
start_cycle=2,
end_cycle=5,
)
result = decomposer.transform(data)
print(f"Cycles analyzed: {decomposer.results_['cycles_analyzed']}")
Amplitude Sweep Analysis¶
from rheojax.pipeline import SPPAmplitudeSweepPipeline
import numpy as np
# Define amplitude sweep
gamma_0_values = np.logspace(-2, 1, 20)
# Run batch SPP analysis
pipeline = SPPAmplitudeSweepPipeline(omega=1.0)
results = pipeline.run_sweep(
data_files=amplitude_files,
gamma_0_values=gamma_0_values,
)
# Extract amplitude-dependent quantities
G_cage_vs_gamma = results['G_cage']
sigma_sy_vs_gamma = results['sigma_sy']
Bayesian Yield Stress Fitting¶
from rheojax.models import SPPYieldStress
from rheojax.core import RheoData
# Prepare amplitude-dependent yield stress data
rheo_data = RheoData(
x=gamma_0_values,
y=sigma_sy_values,
test_mode='spp_yield',
)
# Fit power-law model with Bayesian inference
model = SPPYieldStress()
model.fit(rheo_data)
result = model.fit_bayesian(rheo_data, num_warmup=1000, num_samples=2000)
# Get credible intervals
intervals = model.get_credible_intervals(result.posterior_samples)
print(f"K = {intervals['K']['mean']:.2f} Pa")
print(f"n = {intervals['n']['mean']:.3f}")
Visualization¶
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# 1. Lissajous with yield points
ax = axes[0, 0]
ax.plot(strain, stress, 'b-', lw=1.5)
ax.axhline(sigma_sy, color='r', ls='--', label=r'$\sigma_{y,static}$')
ax.axhline(sigma_dy, color='g', ls=':', label=r'$\sigma_{y,dynamic}$')
ax.set_xlabel(r'Strain $\gamma$')
ax.set_ylabel(r'Stress $\sigma$ (Pa)')
ax.legend()
# 2. Instantaneous moduli
ax = axes[0, 1]
ax.plot(phase, Gp_t, 'b-', label=r"$G'_t$")
ax.plot(phase, Gpp_t, 'r--', label=r"$G''_t$")
ax.set_xlabel('Phase in cycle')
ax.set_ylabel('Modulus (Pa)')
ax.legend()
# 3. Cole-Cole spiral
ax = axes[1, 0]
ax.plot(Gp_t, Gpp_t, 'b-')
ax.set_xlabel(r"$G'_t$ (Pa)")
ax.set_ylabel(r"$G''_t$ (Pa)")
ax.set_aspect('equal')
# 4. Amplitude dependence
ax = axes[1, 1]
ax.loglog(gamma_0, sigma_sy, 'ro-', label='Static')
ax.loglog(gamma_0, sigma_dy, 'bs-', label='Dynamic')
ax.set_xlabel(r'$\gamma_0$')
ax.set_ylabel('Yield stress (Pa)')
ax.legend()
plt.tight_layout()
Fitting Guidance¶
Rogers-Parity Defaults¶
RheoJAX uses MATLAB/Rogers-aligned defaults for SPP analysis:
Parameter |
Default |
Notes |
|---|---|---|
|
39 |
Odd harmonics; matches SPPplus v2.1 |
|
8 |
8-point 4th-order finite difference stencil |
|
2 |
Periodic/looped differentiation |
|
0.02 |
Tolerance for yield point detection |
Troubleshooting¶
Problem |
Cause |
Solution |
|---|---|---|
Noisy \(G'_t, G''_t\) |
Raw data noise propagates |
Apply Savitzky-Golay smoothing before SPP |
Missing yield points |
Tolerance too strict |
Increase |
Inconsistent across cycles |
Startup transients or fatigue |
Adjust |
\(G_{\text{cage}}\) varies |
Strong thixotropy |
Consider time-resolved protocols instead |
See Also¶
SPP Yield Stress Model — Power-law model for SPP-extracted yield stresses
SGR Conventional (Soft Glassy Rheology) — Handbook — Soft Glassy Rheology model
OWChirp — Fourier-based LAOS analysis
Sequence of Physical Processes (SPP) — Comprehensive SPP user guide
API References¶
Module:
rheojax.transformsClass:
rheojax.transforms.SPPDecomposer