SpringPot (Scott-Blair Element)¶
Quick Reference¶
Use when: Power-law behavior, broad relaxation spectra, fractional viscoelasticity
Parameters: 2 (\(c_\alpha\), \(\alpha\))
Key equation: \(G^*(\omega) = V (i\omega)^{\alpha}\), \(G'(\omega) \sim G''(\omega) \sim \omega^{\alpha}\)
Test modes: Oscillation, relaxation, creep
Material examples: Critical gels (\(\alpha=0.5\)), polymer melts near Tg, soft glassy materials, biological tissues
Notation Guide¶
Symbol |
Meaning |
|---|---|
\(V\) |
Fractional stiffness (Pa·s\(^{\alpha}\)). Sets absolute magnitude of modulus. |
\(\alpha\) |
Fractional order (0 < \(\alpha\) < 1). Controls power-law slope and spectrum breadth. |
\({}^{C}D_t^{\alpha}\) |
Caputo fractional derivative operator. |
\(\tan\delta\) |
Loss tangent = \(\tan(\pi\alpha/2)\). Frequency-independent for pure SpringPot. |
Overview¶
The rheojax.models.SpringPot represents a fractional viscoelastic element that interpolates continuously between an ideal spring (\(\alpha = 0\)) and a Newtonian dashpot (\(\alpha = 1\)). Introduced by G.W. Scott Blair in 1944, the SpringPot replaces classical integer-order elements with a fractional derivative, enabling single-parameter power-law relaxation or creep that spans decades in time or frequency without requiring large Prony series. This model is foundational to fractional rheology and serves as the building block for all fractional viscoelastic models in RheoJAX.
The SpringPot is particularly powerful for materials exhibiting broad relaxation spectra—systems where stress relaxation or creep compliance cannot be captured by a single exponential timescale. Common applications include polymer gels, biological tissues, soft glassy materials, and any system near a critical transition (e.g., gelation, glass transition).
Physical Foundations¶
Microstructural Interpretation¶
The SpringPot describes materials with hierarchical or fractal structure where relaxation processes occur across multiple length and time scales:
- Polymer Networks:
Cross-linked networks with broad distribution of cross-link lifetimes
Hierarchical structures (e.g., fibrillar collagen networks)
Semi-flexible polymers with multiple relaxation mechanisms
- Soft Glassy Materials:
Systems near jamming transition with broad distribution of cage escape times
Power-law rheology from structural disorder
Examples: Colloidal glasses, dense emulsions, concentrated suspensions
- Critical Gels ( \(\alpha\) = 0.5):
Materials at the gel point (percolation threshold)
Self-similar network structure
Winter-Chambon criterion: \(G' = G'' \propto \omega^{0.5}\)
- Biological Tissues:
Multi-component systems with distributed relaxation times
Fibrous networks with varying strand stiffness
Examples: Articular cartilage, skin, lung parenchyma
Connection to Fractional Calculus¶
The Caputo fractional derivative generalizes integer-order derivatives. For \(n-1 < \alpha < n\) (where \(n = \lceil\alpha\rceil\)):
For viscoelastic SpringPot (\(0 < \alpha < 1\), so \(n=1\)):
Order \(\alpha\) |
n |
Formula |
|---|---|---|
\(0 < \alpha < 1\) |
1 |
\(\frac{1}{\Gamma(1-\alpha)} \int_0^t (t-s)^{-\alpha} f'(s) \, ds\) |
\(1 < \alpha < 2\) |
2 |
\(\frac{1}{\Gamma(2-\alpha)} \int_0^t (t-s)^{1-\alpha} f''(s) \, ds\) |
\(2 < \alpha < 3\) |
3 |
\(\frac{1}{\Gamma(3-\alpha)} \int_0^t (t-s)^{2-\alpha} f'''(s) \, ds\) |
Limiting behavior (recovers integer derivatives):
As \(\alpha \to 1^-\): \({}^{C}D_t^{\alpha} f(t) \to f'(t)\)
As \(\alpha \to 2^-\): \({}^{C}D_t^{\alpha} f(t) \to f''(t)\)
Memory effect: The integral form means the fractional derivative depends on the entire history of \(f\) from 0 to \(t\), not just local behavior. This power-law kernel \((t-s)^{-\alpha}\) captures fading memory—why fractional calculus models viscoelastic materials with long-range temporal correlations (unlike exponential memory in Maxwell models).
Physical interpretation of \(\alpha\) :
\(\alpha \to 0\): Short-range memory (elastic, spring-like)
\(\alpha = 0.5\): Self-similar memory (critical gel)
\(\alpha \to 1\): Long-range memory (viscous, dashpot-like)
Physical Foundation¶
The SpringPot generalizes the classical spring-dashpot duality using fractional calculus:
Constitutive Equation (Caputo Derivative):
where:
\(\sigma(t)\) = stress (Pa)
\(\gamma(t)\) = strain (dimensionless)
\(V\) = generalized modulus (Pa·salpha)
\({}^{C}D_t^{\alpha}\) = Caputo fractional derivative of order \(\alpha\)
\(\alpha\) = fractional order in (0, 1)
Physical Meaning of Fractional Order \(\alpha\):
The fractional order \(\alpha\) quantifies the width of the relaxation spectrum:
\(\alpha \to 0\): Nearly elastic (spring-like), narrow spectrum
\(\alpha = 0.5\): Balanced viscoelastic behavior, critical gel signature
\(\alpha \to 1\): Nearly viscous (dashpot-like), narrow spectrum
\(0 < \alpha < 1\): Broad distribution of relaxation times, power-law behavior
Materials with hierarchical structures, fractal networks, or significant polydispersity exhibit intermediate \(\alpha\) values (\(0.2 < \alpha < 0.8\)).
Governing Equations¶
Complex Modulus (Oscillatory):
Storage and Loss Moduli:
Loss Tangent (Frequency-Independent):
This frequency-independent loss tangent is the hallmark of SpringPot behavior and the Winter-Chambon criterion for critical gels.
Relaxation Modulus:
Shows pure power-law decay without exponential components.
Creep Compliance:
Shows power-law growth in strain under constant stress.
Parameters¶
Name |
Units |
Description / Constraints |
|---|---|---|
|
Pa·salpha |
Fractional stiffness; > 0. Sets vertical placement of \(G^*\) on log-log plots. |
|
– |
Fractional order in (0, 1). Controls slope of \(G'\) and \(G''\) in log-log space. |
Validity and Assumptions¶
Linear viscoelasticity: yes
Small amplitude: yes
Isothermal: yes
Data/test modes: oscillation, relaxation, creep
Additional assumptions: pure power-law behavior (no plateaus or terminal flow)
Limitations¶
- No terminal flow or equilibrium plateau:
SpringPot alone cannot capture: - Terminal viscosity (need dashpot in series) - Equilibrium modulus (need spring in parallel) - Use composite models (Fractional Maxwell, Fractional Zener) for complete behavior
- Valid only in power-law regime:
Real materials exhibit power-law behavior only over limited frequency/time windows. SpringPot should be restricted to the range where \(\log(G')\) vs \(\log(\omega)\) is linear.
- Singular limits:
\(\alpha \to 0\) or \(\alpha \to 1\) are numerically unstable. Use bounds [0.05, 0.95] in fitting. For \(\alpha < 0.1\), use spring model; for \(\alpha > 0.9\), use dashpot model.
- Temperature dependence:
Both V and \(\alpha\) may depend on temperature. For time-temperature superposition, use composite models where \(\alpha\) can remain constant while timescales shift.
What You Can Learn¶
This section explains how to extract physical insights from fitted SpringPot parameters and diagnose material behavior.
Parameter Interpretation¶
- V (Fractional Stiffness):
Fitted \(V\) reveals the absolute magnitude of the material response:
Low values (< \(10^2\) Pa·s:sup:` \(\alpha\) `): Soft materials (weak gels, dilute solutions)
Moderate values ( \(10^2-10^4\) Pa·s:sup:` \(\alpha\) `): Biological tissues, polymer gels
High values (> \(10^4\) Pa·s:sup:` \(\alpha\) `): Dense colloidal suspensions, concentrated emulsions
For practitioners: \(V\) at reference frequency \(\omega_{\text{ref}}\) gives characteristic modulus via \(|G^*(\omega_{\text{ref}})| = V \omega_{\text{ref}}^{\alpha}\).
For researchers: Compare \(V\) across samples to track structural changes (crosslinking, aging, degradation).
- alpha (Fractional Order):
Fitted \(\alpha\) quantifies spectrum breadth and material state:
Low \(\alpha\) (<0.2): Narrow spectrum, nearly elastic solid
\(\alpha \approx 0.5\): Critical gel (Winter-Chambon criterion), self-similar structure
High \(\alpha\) (>0.8): Broad spectrum, nearly viscous liquid
- For researchers: \(\alpha\) relates to structural complexity:
Monodisperse systems: \(\alpha \to 0\) or \(1\) (single timescale)
Polydisperse/hierarchical systems: \(0.2 < \alpha < 0.8\) (broad spectrum)
At gel point: \(\alpha = 0.5\) exactly (percolation threshold)
For quality control: Track \(\alpha\) to monitor gelation progress or structural degradation.
Material Classification¶
\(\alpha\) Range |
Material Type |
Physical State |
Examples |
|---|---|---|---|
0.1-0.3 |
Weak gels, soft solids |
Near-solid, narrow spectrum |
Gelatin, weak hydrogels |
0.4-0.6 |
Critical gels, soft glasses |
Gel point, self-similar |
Colloidal glasses at jamming |
0.7-0.9 |
Viscoelastic fluids |
Near-liquid, broad spectrum |
Polymer melts near Tg |
- Winter-Chambon Gel Point Criterion:
At gelation, \(\alpha = 0.5\) exactly and \(\tan\delta = 1\) (\(G' = G''\)).
- To verify gel point:
Fit SpringPot to frequency sweep
Check \(\alpha \approx 0.5\) (within \(\pm 0.05\))
Verify \(\tan\delta\) is frequency-independent
Confirm \(G' \approx G''\) across decades
Diagnostic Indicators¶
Warning signs in fitted parameters:
If \(\alpha < 0.1\) or \(\alpha > 0.9\): Power-law regime too narrow; SpringPot not appropriate. Use Maxwell (\(\alpha \to 1\)) or spring (\(\alpha \to 0\)) instead.
If fit quality poor ( \(R^2\) < 0.95): Material exhibits plateaus or terminal flow. Use Fractional Maxwell or Fractional Zener models.
If \(\alpha\) varies with temperature: Material is thermorheologically complex. Cannot use simple time-temperature superposition.
If tan \(\delta\) not constant: Pure SpringPot inadequate; mixture of relaxation processes. Use composite models.
Verification strategies:
Log-log linearity: Plot \(\log(G')\) vs \(\log(\omega)\) → slope should equal \(\alpha\) across entire range
Loss tangent constancy: \(\tan\delta = \tan(\pi\alpha/2)\) should be frequency-independent
\(G'/G''\) ratio: Should satisfy \(G'/G'' = \cot(\pi\alpha/2)\) at all frequencies
Relaxation modulus: \(\log(G(t))\) vs \(\log(t)\) → slope = -\(\alpha\)
Application Examples¶
- Gel Point Determination:
Track \(\alpha\) during crosslinking/gelation
Gel point occurs when \(\alpha = 0.5\) (\(\pm 0.05\))
Confirms percolation transition
- Material Development:
Tune crosslink density to achieve target \(\alpha\)
\(\alpha = 0.3\text{--}0.4\) for soft tissue mimics
\(\alpha = 0.5\) for self-healing gels at rest state
- Quality Control:
Monitor \(\alpha\) batch-to-batch for consistency
Degradation typically increases \(\alpha\) (network breakdown)
Aging typically decreases \(\alpha\) (network strengthening)
Material Examples¶
Polymer Gels (\(\alpha \approx 0.3-0.7\)):
Gelatin gels: \(V \approx 10^3-10^4\) Pa·salpha, \(\alpha \approx 0.4-0.6\)
Alginate gels: \(\alpha \approx 0.3-0.5\) depending on cross-link density
Collagen networks: \(\alpha \approx 0.4\) (hierarchical fibrillar structure)
Biological Tissues (\(\alpha \approx 0.1-0.5\)):
Articular cartilage: \(\alpha \approx 0.2\), \(V \approx 10^5\) Pa·salpha
Skin (dermis): \(\alpha \approx 0.3-0.4\)
Lung tissue: \(\alpha \approx 0.15-0.25\)
Liver parenchyma: \(\alpha \approx 0.2\)
Soft Glassy Materials (\(\alpha \approx 0.3-0.6\)):
Carbopol gels: \(\alpha \approx 0.4-0.5\)
Laponite suspensions: \(\alpha \approx 0.3-0.6\) near jamming
Concentrated emulsions: \(\alpha \approx 0.4\)
Critical Gels (\(\alpha = 0.5\)):
Materials at the gel point exhibit \(G' = G'' \propto \omega^{0.5}\)
This is the Winter-Chambon criterion for gelation
Experimental Design¶
Frequency Sweep (SAOS):
Frequency range: Span at least 2 decades (e.g., 0.1-10 Hz) to resolve power-law slope
Strain amplitude: Within LVR (typically 0.5-5% for gels)
Temperature control: ±0.1°C (critical for soft materials)
Verification: Plot \(\log(G')\) vs \(\log(\omega)\) → slope = \(\alpha\)
Stress Relaxation:
Step strain: \(\gamma_0 = 1-5\%\) within LVR
Time span: Cover 3-4 decades in time
Sampling: Log-spaced time points to capture power-law decay
Analysis: \(\log(G(t))\) vs \(\log(t)\) → slope = \(-\alpha\)
Creep Test:
Constant stress: Within LVR (verify with amplitude sweep)
Time span: Long enough to observe power-law regime (> \(10^3\) s for gels)
Sampling: Log-spaced to avoid early-time bias
Analysis: \(\log(J(t))\) vs \(\log(t)\) → slope = \(\alpha\)
Fitting Guidance¶
Parameter Initialization Strategies¶
Method 1: From frequency sweep
- Step 1: Estimate \(\alpha\) from log-log slope
Plot \(\log(G')\) vs \(\log(\omega)\) → slope = \(\alpha\)
- Step 2: Calculate \(V\) from a reference point
Choose \(\omega_{\text{ref}}\) in middle of data range:
\[V = \frac{G'(\omega_{\text{ref}})}{\omega_{\text{ref}}^{\alpha} \cos(\pi\alpha/2)}\]
Method 2: From relaxation data
- Step 1: Estimate \(\alpha\) from log-log slope
Plot \(\log(G(t))\) vs \(\log(t)\) → slope = \(-\alpha\)
- Step 2: Calculate \(V\) using Gamma function
Choose \(t_{\text{ref}}\) in middle of data range:
\[V = G(t_{\text{ref}}) \cdot \Gamma(1-\alpha) \cdot t_{\text{ref}}^{\alpha}\]
Method 3: From loss tangent (critical gels)
If \(\tan\delta\) is constant:
- Step 1: Calculate \(\alpha\) directly
- \[\alpha = \frac{2}{\pi} \arctan(\tan\delta)\]
Step 2: Use frequency sweep method above for \(V\)
Optimization Algorithm Selection¶
- RheoJAX default: NLSQ (GPU-accelerated)
Recommended for SpringPot (2 parameters, well-conditioned)
Fast convergence if initialized from slope analysis
5-270× faster than scipy.optimize
- Bounds:
\(c\_{\alpha}\): (1e-3, 1e9) Pa·s\(^{\alpha}\) (adjust based on material)
\(\alpha\): (0.0, 1.0) (avoid singularities at exact 0 and 1)
- Fitting strategy:
Use log-spaced data to avoid early/late time dominance
Fit in log-space: minimize \(\sum (\log|G^*_{\text{data}}| - \log|G^*_{\text{fit}}|)^2\)
Weight \(G'\) and \(G''\) equally in log-space
Troubleshooting Common Fitting Problems¶
Problem |
Diagnostic |
Solution |
|---|---|---|
\(\alpha\) converges to bounds (0.05 or 0.95) |
Power-law regime too narrow |
Use Maxwell (\(\alpha \to 1\)) or spring (\(\alpha \to 0\)) model instead |
Poor fit despite linear log-log plot |
Transition regions at data edges |
Restrict fitting to middle decade where slope is constant |
Noisy \(\alpha\) estimate |
Insufficient frequency/time span |
Extend measurement to cover 3+ decades |
Oscillatory residuals |
Multiple relaxation modes present |
Use Fractional Zener or Generalized Maxwell |
V unrealistic (negative or extreme) |
Poor \(\alpha\) initialization |
Reinitialize \(\alpha\) from slope analysis before fitting V |
Validation Strategies¶
1. Visual Inspection
- Plot on log-log axes:
\(G'\) and \(G''\) vs \(\omega\) should be parallel straight lines
Slope of both curves should equal \(\alpha\)
Vertical separation = \(\pi\alpha/2\) radians in phase
2. Loss Tangent Check
If \(\tan\delta\) varies > 10% across frequency range, SpringPot is inadequate.
3. Residual Analysis
- Residuals in log-space should be:
Random (no systematic curvature)
Equal magnitude for \(G'\) and \(G''\)
RMSE < 0.1 (10% error in log-space)
4. Cross-validation
- Convert between test modes:
Fit oscillation → predict relaxation via inverse Fourier
Fit relaxation → predict oscillation via Fourier
Discrepancies > 20% indicate model inadequacy
Usage¶
Basic Fitting Example¶
from rheojax.core.jax_config import safe_import_jax
jax, jnp = safe_import_jax()
from rheojax.models import SpringPot
# Frequency sweep data (critical gel)
omega = jnp.logspace(-2, 2, 120) # 0.01 - 100 rad/s
G_star = measure_complex_modulus(omega)
# Initialize and fit
model = SpringPot()
model.parameters.set_value('c_alpha', 1.0e3)
model.parameters.set_value('alpha', 0.5)
model.fit(omega, G_star, test_mode='oscillation')
# Check fitted parameters
c_alpha = model.parameters.get_value('c_alpha')
alpha = model.parameters.get_value('alpha')
print(f"c_alpha = {c_alpha:.2e} Pa·s^{alpha:.3f}")
print(f"alpha = {alpha:.3f}")
# Verify gel point (alpha should be ~0.5)
if abs(alpha - 0.5) < 0.05:
print("Material is at gel point (Winter-Chambon criterion satisfied)")
Advanced: Slope Verification¶
from rheojax.core.jax_config import safe_import_jax
jax, jnp = safe_import_jax()
import numpy as np
from rheojax.models import SpringPot
# Fit model
model = SpringPot()
model.fit(omega, G_star, test_mode='oscillation')
# Extract parameters
alpha_fit = model.parameters.get_value('alpha')
# Verify slope from data
log_omega = np.log10(omega)
log_Gp = np.log10(np.real(G_star))
# Linear regression on middle 80% of data
n = len(omega)
idx_start, idx_end = int(0.1*n), int(0.9*n)
slope_measured = np.polyfit(
log_omega[idx_start:idx_end],
log_Gp[idx_start:idx_end],
1
)[0]
print(f"Fitted alpha: {alpha_fit:.3f}")
print(f"Measured slope: {slope_measured:.3f}")
print(f"Difference: {abs(alpha_fit - slope_measured):.4f}")
Cross-Mode Prediction¶
from rheojax.core.jax_config import safe_import_jax
jax, jnp = safe_import_jax()
from rheojax.models import SpringPot
# Fit to oscillatory data
model = SpringPot()
model.fit(omega, G_star, test_mode='oscillation')
# Predict relaxation modulus
t = jnp.logspace(-2, 3, 100)
G_t = model.predict(t, test_mode='relaxation')
# Predict creep compliance
J_t = model.predict(t, test_mode='creep')
# Verify power-law: G(t) ~ t^(-alpha)
alpha = model.parameters.get_value('alpha')
expected_slope = -alpha
log_t = jnp.log10(t[10:-10])
log_G = jnp.log10(G_t[10:-10])
actual_slope = jnp.polyfit(log_t, log_G, 1)[0]
print(f"Expected slope: {expected_slope:.3f}")
print(f"Actual slope: {actual_slope:.3f}")
Model Comparison¶
SpringPot vs Maxwell:
Maxwell: Exponential relaxation, single timescale
SpringPot: Power-law relaxation, broad spectrum
Use SpringPot when \(\log(G(t))\) vs \(\log(t)\) is linear over decades
SpringPot vs Zener:
Zener: Has equilibrium plateau (\(G_e > 0\))
SpringPot: No plateau, pure power-law
Combine as Zener (Standard Linear Solid) + SpringPot for finite plateau with power-law approach
SpringPot vs Fractional Maxwell:
SpringPot: Single element (building block)
Fractional Maxwell Gel (Fractional): SpringPot + dashpot (terminal flow)
Fractional Maxwell Liquid (Fractional): SpringPot + spring (finite plateau)
Limitations¶
No terminal flow: SpringPot alone does not capture viscous dissipation at long times
No equilibrium plateau: Cannot model cross-linked solids without modification
Narrow applicability: Valid only in power-law regime; most real materials need composite models
Singular limits: \(\alpha \to 0, 1\) numerically unstable; use bounds \([0.05, 0.95]\)
Troubleshooting¶
Issue: Fitted \(\alpha\) close to 0 or 1
Cause: Data span insufficient frequency/time range
Solution: Extend measurement window or use Maxwell/Zener model
Issue: Poor fit quality despite power-law appearance
Cause: Transition regions at edges of data
Solution: Restrict fitting to middle decade where slope is constant
Issue: Noisy derivative from creep data
Solution: Use SmoothDerivative with Savitzky-Golay window ≥ 11 points
Issue: Oscillatory residuals in log-log plot
Cause: Multiple relaxation modes, not pure SpringPot
Solution: Use Fractional Zener Solid-Solid (Fractional) or generalized models
Tips & Best Practices¶
Log-space fitting: Resample data onto log-spaced grids to avoid early/late-time bias
Verify power-law: Plot \(\log(G')\) vs \(\log(\omega)\) → linear with slope \(\alpha\)
Check loss tangent: For pure SpringPot, \(\tan\delta\) should be frequency-independent
Combine with transforms: Use FFTAnalysis to convert relaxation → oscillation
Parallel spring: Add spring (Zener (Standard Linear Solid)) if equilibrium modulus \(G_e > 0\) exists
Series dashpot: Add dashpot (Fractional Maxwell Gel (Fractional)) for terminal flow
Differentiation: Use SmoothDerivative for creep compliance derivatives
References¶
See Also¶
Classical Models:
Zener (Standard Linear Solid) — adds an equilibrium spring in parallel for finite creep recovery
Maxwell (Classical) — limiting case with \(\alpha = 1\) (pure dashpot)
Fractional Models (Built on SpringPot):
Fractional Maxwell Gel (Fractional) — series combination with a dashpot for gel-like response
Fractional Kelvin-Voigt (Fractional) — SpringPot in parallel with a spring for quasi-solid behavior
Fractional Zener Solid-Solid (Fractional) — most general fractional Zener model
Transforms:
FFTAnalysis — convert time sweeps to \(G'(\omega)\) and \(G''(\omega)\) before fitting
SmoothDerivative — noise-robust differentiation for creep data
MutationNumber — verify frequency-independent loss tangent
Examples:
../../examples/advanced/04-fractional-models-deep-dive — notebook comparing all fractional families
../../examples/basic/03-springpot-fitting — step-by-step SpringPot parameter estimation
User Guides:
../../user_guide/model_selection — decision flowcharts for choosing rheological models