Zener (Standard Linear Solid)¶
Quick Reference¶
Use when: Viscoelastic solid with finite equilibrium modulus, creep-recovery tests
Parameters: 3 (
Ge,Gm,eta)Key equation: \(G(t) = G_e + G_m \exp(-t/\tau)\) where \(\tau = \eta/G_m\)
Test modes: Oscillation, relaxation, creep, flow curve
Material examples: Cross-linked PDMS, vulcanized rubber, hydrogels, biological tissues
Notation Guide¶
Symbol |
Code name |
Meaning |
|---|---|---|
\(G_e\) (or \(G_s\)) |
|
Equilibrium modulus (Pa). Permanent stiffness at infinite time. |
\(G_m\) (or \(G_p\)) |
|
Maxwell arm modulus (Pa). Relaxation strength. |
\(\eta\) (or \(\eta_p\)) |
|
Maxwell arm viscosity (Pa·s). Controls relaxation timescale. |
\(\tau\) |
(derived) |
Relaxation time (s), \(\tau = \eta/G_m\). |
Overview¶
The rheojax.models.Zener model—also known as the Standard Linear Solid—adds a
Maxwell arm in parallel with an equilibrium spring. It is the simplest element that can
capture both an instantaneous modulus and a finite equilibrium plateau, making it a
workhorse for creep-recovery tests, stress relaxation in solids, and instrument compliance
corrections.
Physical Foundations¶
Mechanical Analogue¶
The Zener model consists of a Maxwell element (spring \(G_p\) in series with dashpot \(\eta_p\)) connected in parallel with an equilibrium spring \(G_s\):
┌──────────────────────┐
│ Spring Gs │ ← Equilibrium (parallel)
└──────────┬───────────┘
│
┌──────────┴───────────┐
│ ┌────┐ ┌──────┐ │
│ │ Gp │────│ ηp │ │ ← Maxwell arm (series)
│ └────┘ └──────┘ │
└──────────────────────┘
Total stress: σ_total = σ_spring + σ_Maxwell
Same strain: γ_spring = γ_Maxwell = γ
The parallel configuration means:
Stress is additive: \(\sigma(t) = \sigma_s(t) + \sigma_{\text{Maxwell}}(t)\)
Strain is identical: Both branches experience the same deformation \(\gamma(t)\)
- Alternative nomenclature:
Standard Linear Solid (SLS): Emphasizes 3-parameter linear model
Zener model: Named after Clarence Zener (anelasticity in metals)
Voigt-Kelvin-Maxwell (VKM): Descriptive of element arrangement
Microstructural Interpretation¶
The Zener model represents materials with two distinct energy storage/dissipation mechanisms:
- Equilibrium spring \(G_s\) (parallel branch):
Permanent cross-links in chemical gels (covalent bonds)
Long-lived entanglements in high-MW polymers
Crystalline regions in semi-crystalline polymers
Physical bonds (hydrogen bonds, ionic cross-links)
Stores energy indefinitely → finite equilibrium modulus
- Maxwell arm \(G_p + \eta_p\) (viscoelastic branch):
Temporary network junctions that relax
Chain reptation through transient entanglements
Viscous dissipation from molecular rearrangements
Relaxes stress over timescale \(\tau = \eta_p / G_p\)
- Physical meaning:
At short times/high frequencies, both branches contribute (\(G_{\text{instant}} = G_s + G_p\)). At long times/low frequencies, only the equilibrium spring remains (\(G_{\text{equilib}} = G_s\)).
Material Examples with Typical Parameters¶
Material |
\(G_s\) (Pa) |
\(G_p\) (Pa) |
\(\eta_p\) (Pa·s) |
\(\tau\) (s) |
Ref |
|---|---|---|---|---|---|
Crosslinked PDMS |
\(5 \times 10^4\) |
\(2 \times 10^5\) |
\(2 \times 10^4\) |
0.1 |
[1] |
Vulcanized rubber (NR) |
\(1 \times 10^6\) |
\(3 \times 10^6\) |
\(3 \times 10^7\) |
10 |
[2] |
PVA hydrogel (5 wt%) |
\(2 \times 10^3\) |
\(5 \times 10^3\) |
\(5 \times 10^2\) |
0.1 |
[3] |
Biological tissue (skin) |
\(1 \times 10^4\) |
\(5 \times 10^4\) |
\(1 \times 10^4\) |
0.2 |
[4] |
Filled elastomer (CB 40 phr) |
\(3 \times 10^5\) |
\(7 \times 10^5\) |
\(7 \times 10^6\) |
10 |
[2] |
Epoxy (cured) |
\(2 \times 10^9\) |
\(5 \times 10^8\) |
\(5 \times 10^{10}\) |
100 |
[5] |
Note: NR = natural rubber, CB = carbon black, phr = parts per hundred rubber
Connection to Polymer Network Theory¶
For chemically crosslinked elastomers, the equilibrium modulus follows affine network theory:
- where:
\(\nu\) = number density of elastically effective network strands (mol/\(m^3\))
\(k_B\) = Boltzmann constant
\(T\) = absolute temperature
Equivalent: \(G_e = \rho RT / M_c\) where \(M_c\) = molecular weight between cross-links
- For physical gels (transient networks):
\(G_s\) depends on cross-link lifetime and thermal energy
Lower \(G_s\) than chemical gels (weaker associations)
Example: Alginate gel \(G_s \sim 10^3\) Pa vs epoxy \(G_s \sim 10^9\) Pa
Molecular weight between cross-links:
- Typical values:
Rubber: \(M_c \approx 5000-10000\) g/mol
PDMS elastomer: \(M_c \approx 10000-20000\) g/mol
Epoxy thermoset: \(M_c \approx 500-1000\) g/mol (tightly cross-linked)
Governing Equations¶
Mathematical Derivation¶
Starting from the mechanical analogue with parallel connection:
- Step 1: Express parallel branch (equilibrium spring)
\(\sigma_s = G_s \gamma\)
- Step 2: Express Maxwell branch (series spring + dashpot)
For series elements: \(\gamma_{\text{Maxwell}} = \gamma_{G_p} + \gamma_{\eta_p}\)
Spring: \(\sigma_p = G_p \gamma_{G_p}\) → \(\dot{\sigma}_p = G_p \dot{\gamma}_{G_p}\)
Dashpot: \(\sigma_p = \eta_p \dot{\gamma}_{\eta_p}\)
Total Maxwell strain rate: \(\dot{\gamma} = \frac{\dot{\sigma}_p}{G_p} + \frac{\sigma_p}{\eta_p}\)
- Step 3: Define relaxation times
\(\tau_\epsilon = \eta_p / G_p\) (relaxation time at constant strain)
\(\tau_\sigma = \eta_p / (G_s + G_p)\) (relaxation time at constant stress)
- Step 4: Total stress (parallel)
\(\sigma = \sigma_s + \sigma_p = G_s \gamma + \sigma_p\)
- Step 5: Differentiate and substitute
\(\dot{\sigma} = G_s \dot{\gamma} + \dot{\sigma}_p\)
From Maxwell branch: \(\dot{\sigma}_p = G_p \left(\dot{\gamma} - \frac{\sigma_p}{\eta_p}\right)\)
Substitute \(\sigma_p = \sigma - G_s \gamma\):
\[\dot{\sigma} = G_s \dot{\gamma} + G_p \dot{\gamma} - \frac{G_p}{\eta_p}(\sigma - G_s \gamma)\]
Step 6: Rearrange to constitutive form
Differential form:
Or equivalently:
where \(\tau_\epsilon = \eta_p/G_p\) and \(\tau_\sigma = \eta_p/(G_s + G_p)\).
Stress Relaxation Solution¶
For step strain \(\gamma_0\) at \(t=0\), with \(\dot{\gamma}=0\) for \(t>0\):
The ODE \(\sigma + \tau_\epsilon \dot{\sigma} = G_s \gamma_0\) has solution:
- Interpretation:
Initial modulus: \(G(0) = G_s + G_p\) (instantaneous response)
Equilibrium modulus: \(G(\infty) = G_s\) (long-time plateau)
Relaxation strength: \(\Delta G = G_p\) (magnitude of decay)
Relaxation time: \(\tau_\epsilon = \eta_p / G_p\)
Fourier Transform to Frequency Domain¶
For harmonic excitation \(\gamma(t) = \gamma_0 e^{i\omega t}\):
- Step 1: Apply Fourier transform
\(\dot{\sigma} = i\omega \sigma\), \(\dot{\gamma} = i\omega \gamma\)
- Step 2: Substitute into constitutive equation
\(\sigma(1 + i\omega\tau_\epsilon) = G_s \gamma(1 + i\omega\tau_\sigma)\)
- Step 3: Define complex modulus
- \[G^*(\omega) = \frac{\sigma}{\gamma} = G_s \frac{1 + i\omega\tau_\sigma}{1 + i\omega\tau_\epsilon}\]
Step 4: Multiply by conjugate and separate
Complex modulus:
Storage and loss moduli:
Alternative form (more compact):
Mathematical Significance¶
Rational function form: The complex modulus is a first-order rational function (ratio of polynomials), characteristic of single-relaxation-time models.
Loss tangent minimum: Unlike Maxwell model (monotonic tan \(\delta\)), Zener exhibits a minimum in loss tangent:
At low \(\omega\): \(\tan\delta \sim \omega\) (solid-like, tan \(\delta\) → 0)
At high \(\omega\): \(\tan\delta \sim 1/\omega\) (glassy, tan \(\delta\) → 0)
At intermediate \(\omega\): maximum dissipation (tan \(\delta\) peaks near \(\omega \approx 1/\tau_\epsilon\))
Creep compliance: Unlike Maxwell, Zener predicts bounded creep:
At \(t \to \infty\): \(J_e = 1/G_s\) (finite equilibrium compliance, no flow).
Parameters¶
Name |
Units |
Description / Constraints |
|---|---|---|
|
Pa |
Equilibrium modulus; > 0 to retain solid plateau. |
|
Pa |
Maxwell spring modulus; > 0 controls relaxation magnitude. |
|
Pa·s |
Maxwell dashpot viscosity; > 0 sets relaxation time \(\tau = \eta/G_m\). |
Parameter Interpretation¶
- Gs (Equilibrium Modulus):
Physical meaning: Long-time elastic response from permanent network structure
Molecular origin: Cross-link density in rubbers, crystallinity in semicrystalline polymers
- Typical ranges:
Soft hydrogels: \(10^2 - 10^4\) Pa
Rubbers/elastomers: \(10^5 - 10^7\) Pa
Thermosets (epoxy): \(10^9 - 10^{10}\) Pa
Scaling: \(G_s = \rho RT / M_c\) (affine network theory)
Diagnostic: \(G_s = \lim_{\omega \to 0} G'(\omega)\) (low-frequency plateau)
- Gp (Maxwell Arm Modulus):
Physical meaning: Relaxation strength (magnitude of stress decay)
Molecular origin: Transient entanglements or weak physical bonds that relax
Typical ranges: Similar to \(G_s\) (often \(G_p \approx G_s\) to \(5G_s\))
Relation to initial modulus: \(G_0 = G_s + G_p\)
Diagnostic: \(G_p = G(0) - G(\infty)\) from relaxation data
- \(\eta_p\) (Maxwell Dashpot Viscosity):
Physical meaning: Controls timescale of stress relaxation
Molecular origin: Chain friction, reptation, or bond breakage/reformation
Typical ranges: \(10^2 - 10^{10}\) Pa·s (highly material-dependent)
- Derived relaxation times:
\(\tau_\epsilon = \eta_p / G_p\) (relaxation at constant strain)
\(\tau_\sigma = \eta_p / (G_s + G_p)\) (relaxation at constant stress)
Diagnostic: \(\tau_\epsilon^{-1} \approx \omega_{\max}\) where \(G''(\omega)\) peaks
Important parameter relations:
Relation to Molecular Properties¶
For crosslinked networks:
Cross-link density:
Factor of 2 from tetrafunctional cross-links (each cross-link connects 4 chains).
Degree of cross-linking:
where \(M_0\) = monomer molecular weight.
For filled elastomers:
Filler reinforcement increases both \(G_s\) and \(G_p\):
where \(\phi\) = filler volume fraction (Guth-Gold equation for rigid spheres).
Validity and Assumptions¶
Linear viscoelasticity: yes
Small amplitude: yes (strain < critical strain \(\gamma_c\))
Isothermal: yes
Data/test modes: relaxation, creep, oscillation (all three work well)
Additional assumptions: single relaxation time
Limitations¶
- Single relaxation time:
Real materials exhibit continuous distributions \(H(\tau)\). Zener adequate when: - One dominant relaxation process - Data span < 2-3 decades in time/frequency - Material is simple (monodisperse polymer, single cross-link type)
- No terminal flow:
\(G_e = G_s > 0\) means material never flows. This fails for: - Uncrosslinked polymers (use Maxwell or Burgers instead) - Physical gels that eventually relax (use fractional models)
- Linear regime only:
Zener assumes \(\sigma \propto \gamma\). Fails for: - Large strains (yielding, strain-stiffening) - Nonlinear materials (LAOS required)
When to Upgrade¶
From Zener to more complex models:
Broad relaxation spectra → Generalized Maxwell (Prony series) or Fractional Zener (FZSS)
Multiple relaxation processes → Multi-mode Zener (parallel Zener elements)
Power-law relaxation → Fractional Zener Solid-Solid (FZSS), see Fractional Zener Solid-Solid (Fractional)
Terminal flow → Burgers (4-element), Fractional Maxwell Liquid
Nonlinear behavior → Gent model, LAOS analysis
Regimes and Behavior¶
Limiting Cases¶
Low frequency ( \(\omega\) → 0, terminal region):
Interpretation: Elastic solid-like (\(G' > G''\)), but with residual dissipation from Maxwell arm.
High frequency ( \(\omega \to \infty\) , glassy region):
Interpretation: Fully elastic (Maxwell arm frozen, acts as spring).
Crossover frequency \(\omega_c \approx 1/\tau_\epsilon\):
This defines the characteristic relaxation timescale.
Asymptotic Behavior Summary¶
Regime |
\(G'(\omega)\) |
\(G''(\omega)\) |
Physical interpretation |
|---|---|---|---|
Low \(\omega \ll 1/\tau_\epsilon\) |
\(\to G_s\) |
\(\sim \omega\) |
Elastic solid (\(G' > G''\)) |
\(\omega \approx 1/\tau_\epsilon\) |
\(\approx G_s + G_p/2\) |
\(\approx G_p/2\) (peak) |
Maximum dissipation |
High \(\omega \gg 1/\tau_\epsilon\) |
\(\to G_s + G_p\) |
\(\to 0\) |
Glassy solid (fully elastic) |
Special Cases (Parameter Limits)¶
- Case 1: \(G_s \to 0\) (remove equilibrium spring)
Zener → Maxwell model (viscoelastic liquid)
\(G(t) = G_p e^{-t\cdot G_p/\eta_p}\) (exponential decay to zero)
- Case 2: \(\eta_p \to \infty\) (dashpot becomes rigid)
Zener → Two springs in parallel
\(G(t) = G_s + G_p\) (purely elastic, no relaxation)
- Case 3: \(G_p \to 0\) (remove Maxwell spring)
Zener → Kelvin-Voigt model (spring + dashpot in parallel)
Good for creep but poor for relaxation (doesn’t capture instantaneous response)
- Case 4: \(G_s = G_p\) (symmetric model)
Common simplification: \(G(t) = G_s (1 + e^{-t/\tau})\), \(\tau = \eta_p/G_s\)
Diagnostic Signatures¶
- 1. Loss tangent minimum:
Unlike Maxwell (monotonic decrease), Zener exhibits tan \(\delta\) peak then decrease at high \(\omega\).
- 2. Two plateaus in \(G'(\omega)\):
Low-frequency: \(G' \approx G_s\)
High-frequency: \(G' \approx G_s + G_p\)
- 3. Creep recovery:
After removing stress, material partially recovers:
\[\gamma_{\text{recovered}} = \gamma_{\text{total}} \cdot \frac{G_p}{G_s + G_p}\]Fraction recovered = \(G_p / (G_s + G_p)\)
What You Can Learn¶
This section explains how to extract material insights and process guidance from fitted Zener parameters.
Parameter Interpretation¶
- Gs (Equilibrium Modulus):
Fitted \(G_s\) reveals the permanent network structure:
Low values (< \(10^3\) Pa): Weak hydrogels, low cross-link density, soft tissues
Moderate values ( \(10^4-10^6\) Pa): Elastomers, biological tissues, filled rubbers
High values (> \(10^7\) Pa): Thermosets, highly crosslinked networks, rigid materials
For researchers: Calculate cross-link density from \(G_s\):
\[\nu_c = \frac{G_s}{RT} \quad (\text{mol/m}^3), \qquad M_c = \frac{\rho RT}{2G_s} \quad (\text{g/mol})\]For practitioners: \(G_s\) indicates dimensional stability under sustained load. Higher \(G_s\) means less creep deformation.
- Gp (Maxwell Arm Modulus):
Fitted \(G_p\) quantifies transient network contribution:
Low \(G_p/G_s\) ratio (<0.5): Strongly crosslinked, minimal relaxation
Moderate \(G_p/G_s\) (0.5-2): Balanced network (permanent + transient)
High \(G_p/G_s\) (>2): Weak permanent structure, strong transient bonds
For researchers: \(G_p/(G_s + G_p)\) = fraction of strain recovered in creep-recovery test
For practitioners: High \(G_p\) means strong viscous dissipation (damping), useful for vibration isolation
- \(\eta_p\) (Maxwell Dashpot Viscosity):
Fitted \(\eta_p\) controls stress relaxation timescale:
Short \(\tau_\epsilon = \eta_p/G_p\) (<0.1 s): Fast relaxation, minimal processing history
Moderate \(\tau_\epsilon\) (0.1-100 s): Typical elastomers, biological timescales
Long \(\tau_\epsilon\) (>100 s): Slow relaxation, shape memory effects
For researchers: \(\eta_p\) relates to chain friction and entanglement dynamics
For practitioners: Processing Deborah number \(De = \tau_\epsilon \cdot \dot{\gamma}_{process}\) determines if elastic effects are significant
Material Classification¶
Parameter Pattern |
Material Type |
Examples |
Key Property |
|---|---|---|---|
High \(G_s\), low \(G_p\) |
Strongly crosslinked |
Thermosets, vulcanized rubber |
Minimal creep, high recovery |
Moderate \(G_s\), high \(G_p\) |
Physical gels, tissues |
Gelatin, collagen, skin |
Significant relaxation |
Low \(G_s\), high \(G_p\) |
Weak gels |
Alginate, low cross-link |
Poor dimensional stability |
\(G_s \approx G_p\) |
Balanced viscoelastic |
Filled elastomers |
Equal elastic/viscous contribution |
Network Structure Estimation¶
Cross-link density from \(G_s\):
For elastomers at temperature \(T\):
Example: PDMS with \(G_s = 5 \times 10^4\) Pa at 298 K, \(\rho = 965\) kg/\(m^3\):
Creep recovery fraction:
Example: \(G_s = 5 \times 10^4\) Pa, \(G_p = 2 \times 10^5\) Pa:
Diagnostic Indicators¶
Warning signs in fitted parameters:
If \(G_s \to 0\): Material is liquid, not solid → use Maxwell or Burgers model
If \(G_p \gg G_s\) (>10×): Weak network, consider fractional models (FZSS)
If \(\tau_\epsilon\) outside data range: Expand frequency sweep or use time-temperature superposition
If \(R^2 < 0.95\): Single relaxation time inadequate → use Generalized Maxwell or fractional models
If \(\eta_p > 10^{12}\) Pa·s: Unrealistic viscosity, check bounds and initialization
Material quality checks:
Cross-link uniformity: Low \(G_p/G_s\) ratio indicates uniform crosslinking
Cure completion: \(G_s\) should not change with waiting time if fully cured
Filler dispersion: High \(G_s\) and \(G_p\) indicate good filler-polymer interaction
Application Examples¶
- Quality Control (Elastomers):
Track \(G_s\) batch-to-batch to verify crosslink density consistency
Monitor \(\tau_\epsilon\) for cure optimization (shorter → faster production)
Use \(G_p/(G_s + G_p)\) to classify grades (soft/medium/hard)
- Material Design (Hydrogels):
Target \(G_s = 10^3-10^4\) Pa for soft tissue mimics
Adjust crosslinker ratio to achieve desired \(M_c\)
Use \(\tau_\epsilon\) to match physiological timescales (0.1-10 s)
- Process Optimization:
Calculate \(De = \tau_\epsilon \cdot \dot{\gamma}\) for molding/extrusion
If \(De > 1\): Reduce processing rate or increase temperature
If \(De < 0.1\): Can increase throughput without elastic defects
- Failure Prediction:
Low \(G_s\) indicates weak network → creep failure risk
High \(\tau_\epsilon\) indicates stress accumulation → relaxation cracking risk
Recovery fraction < 50% suggests permanent deformation under load
Experimental Design¶
Recommended Test Modes¶
1. Small Amplitude Oscillatory Shear (SAOS) - Frequency Sweep
- Why optimal for Zener:
Captures both low-frequency plateau (\(G_s\)) and high-frequency plateau (\(G_s + G_p\))
\(G''(\omega)\) peak location gives \(\tau_\epsilon\) directly
Simultaneous fit of 3 parameters from single experiment
- Protocol:
Amplitude sweep first: Determine LVR (typically \(\gamma_0 = 0.5-5\%\) for elastomers)
Frequency range: Must span \(1/\tau_\epsilon\) → recommend 3-4 decades
Example: \(10^{-2}\) to \(10^2\) rad/s for \(\tau \approx 1\) s
Points per decade: 8-12 (logarithmic spacing)
Temperature control: ±0.1°C
- Expected features:
\(G'\) levels off at low \(\omega\) (plateau = \(G_s\))
\(G''\) shows clear peak at \(\omega \approx 1/\tau_\epsilon\)
\(G' > G''\) across all frequencies (solid-like, tan \(\delta\) < 1)
2. Stress Relaxation Test
- Why optimal for Zener:
Direct measurement of \(G(t) = G_s + G_p e^{-t/\tau}\)
Easy parameter extraction: plateau = \(G_s\), initial = \(G_s + G_p\)
Validates exponential relaxation assumption
- Protocol:
Step strain: \(\gamma_0 = 1-5\%\) (within LVR)
Rise time: < \(0.05\tau_\epsilon\) (instrument limitation)
Duration: \(5-10\tau_\epsilon\) to observe plateau
Critical: Measure long enough to reach \(G(\infty) = G_s\) (many users stop too early!)
- Data analysis:
Plot \(G(t)\) vs \(t\) → exponential decay to plateau
Non-linear regression: fit \(G(t) = G_s + G_p e^{-t/\tau}\)
Extract all 3 parameters directly
3. Creep-Recovery Test
- Why useful for Zener:
Gold standard for determining equilibrium compliance \(J_e = 1/G_s\)
Recovery phase quantifies \(G_p / (G_s + G_p)\) ratio
Excellent for viscoelastic solids
- Protocol:
- Creep phase: Apply constant stress \(\sigma_0\) within LVR
Duration: \(5-10\tau_\sigma\) until \(J(t)\) plateaus
\(J_e = 1/G_s\) (equilibrium compliance)
- Recovery phase: Remove stress, measure strain recovery
Duration: \(5-10\tau_\sigma\) (same timescale as creep)
Recovered strain / total strain = \(G_p / (G_s + G_p)\)
- Advantages:
Very sensitive to network structure (cross-links)
Distinguishes elastic vs viscous contributions
Common in polymer engineering (ASTM D2990)
Sample Preparation Considerations¶
- Crosslinked elastomers:
Cure completely (post-cure if needed) to avoid time-dependent cross-linking during test
Compression molding: \(T > T_g + 50°C\), 5-10 MPa pressure
Punch disks: 8 mm (strain-controlled rheometer) or 25 mm (stress-controlled)
Check for air bubbles (reduce void content < 1%)
- Hydrogels:
Maintain hydration: Use humidity chamber or immersion cell
Equilibrate in buffer/water for 24 h before testing
Avoid evaporation (can increase modulus by 10× in 1 hour!)
Typical geometry: Parallel plates with roughened surface (prevent slip)
- Biological tissues:
Keep hydrated in physiological saline
Test within 2-4 hours post-mortem (degradation)
Temperature: 37°C ± 0.5°C (physiological)
Low strain amplitudes: \(\gamma_0 = 0.1-1\%\) (tissues are fragile)
- Thermosets (epoxy, polyurethane):
Cure cycle must be complete (DSC to check residual cure)
Machine samples to required geometry (precision ±0.01 mm)
High modulus → torsional rheometer or DMA (not rotational)
Common Experimental Artifacts¶
Artifact |
Symptom |
Solution |
|---|---|---|
Wall slip |
Anomalously low moduli, non-reproducible |
Sandblasted/serrated plates, adhesive bonding, reduce gap |
Sample swelling/drying |
\(G_s\) drifts during test |
Humidity control, immersion cell, shorter test duration |
Incomplete curing |
\(G_s\) increases over time |
Post-cure, verify with DSC, discard if curing during test |
Stress overshoot in relaxation |
\(G(t)\) > \(G_s + G_p\) at \(t=0\) |
Inertia artifact, ignore first 1-2 data points |
No \(G''\) peak visible |
\(\tau\) outside frequency window |
Expand frequency range, use TTS, or estimate from \(G(t)\) |
Creep doesn’t plateau |
Uncrosslinked material (flows) |
Check cure, use Maxwell/Burgers model instead |
Fitting Guidance¶
Parameter Initialization Strategies¶
Method 1: From oscillatory frequency sweep
- Step 1: Estimate \(G_s\) from low-frequency plateau
\(G_s \approx \lim_{\omega \to 0} G'(\omega)\) (use lowest 3-5 data points, average)
- Step 2: Estimate \(G_s + G_p\) from high-frequency plateau
\(G_0 = G_s + G_p \approx \lim_{\omega \to \infty} G'(\omega)\)
Then \(G_p = G_0 - G_s\)
- Step 3: Estimate \(\tau_\epsilon\) from \(G''(\omega)\) peak
\(\tau_\epsilon \approx 1 / \omega_{\max}\) where \(G''\) is maximum
- Step 4: Calculate \(\eta_p\)
\(\eta_p = G_p \tau_\epsilon\)
Method 2: From stress relaxation data
- Step 1: Extract plateau modulus
\(G_s = G(\infty)\) (average last 20% of data after equilibration)
- Step 2: Extract initial modulus
\(G_0 = G(0)\) → \(G_p = G_0 - G_s\)
- Step 3: Exponential fit to relaxation curve
Fit \(G(t) = G_s + G_p e^{-t/\tau}\) → extract \(\tau_\epsilon\)
- Step 4: Calculate \(\eta_p\)
\(\eta_p = G_p \tau_\epsilon\)
Method 3: From creep-recovery data
- Step 1: Equilibrium compliance
\(J_e = 1/G_s\) from creep plateau
- Step 2: Instantaneous compliance
\(J_0 = 1/(G_s + G_p)\) from initial creep response
- Step 3: Retardation time from recovery
Fit recovery curve to \(\gamma(t) = \gamma_{\text{rec}}(1 - e^{-t/\tau_\sigma})\)
- Step 4: Calculate parameters
\(G_s = 1/J_e\), \(G_p = 1/J_0 - G_s\), \(\eta_p = (G_s + G_p) \tau_\sigma\)
Optimization Algorithm Selection¶
- RheoJAX default: NLSQ (GPU-accelerated)
Recommended for Zener (3 parameters, well-conditioned if initialized correctly)
Critical: Good initialization required (especially \(G_s\) vs \(G_p\) separation)
5-270× faster than scipy.optimize
- Alternative: Bayesian inference (NUTS)
Highly recommended for Zener to quantify parameter uncertainty
\(G_s\) and \(G_p\) can be correlated → credible intervals important
Warm-start from NLSQ for faster convergence
See ../../examples/bayesian/01-bayesian-basics
- Bounds (adjust based on material class):
\(G_s\): [1e2, 1e10] Pa
\(G_p\): [1e2, 1e10] Pa
\(\eta_p\): [1e0, 1e12] Pa·s
Constraint: Ensure \(G_s > 0\) (otherwise not a solid)
Troubleshooting Common Fitting Problems¶
Problem |
Diagnostic |
Solution |
|---|---|---|
\(G_s\) fits to zero or negative |
Material is liquid, not solid |
Use Maxwell or Burgers model instead (no equilibrium modulus) |
\(G_p\) much larger than \(G_s\) |
Weak network (mostly transient) |
Check cross-linking, may need fractional model (FZSS) |
\(G''\) peak not fit well |
\(\tau\) poorly initialized |
Reinitialize \(\tau = 1/\omega_{\max}\) from data peak |
Fitted \(\eta_p\) unrealistic (> 10^{15}) |
\(G_p\) too small or \(\tau\) too large |
Check frequency range covers relaxation, verify data quality |
Good fit but \(R^2 < 0.95\) |
Single relaxation inadequate |
Try multi-mode Zener or Fractional Zener (FZSS) |
\(G_s\) and \(G_p\) swap values |
Poor initialization or local minimum |
Initialize with \(G_s < G_p\), add inequality constraint |
Special challenge: Gs vs Gp identifiability
- When \(\tau\) is outside the experimental window (too fast or too slow):
Too fast (\(\omega \ll 1/\tau\)): Only see \(G' \approx G_s\) → \(G_p\) unidentifiable
Too slow (\(\omega \gg 1/\tau\)): Only see \(G' \approx G_s + G_p\) → cannot separate \(G_s\), \(G_p\)
Solution: Expand frequency range via time-temperature superposition (TTS) or use complementary relaxation data.
Validation Strategies¶
1. Residual Analysis
- Visual check:
Plot residuals for \(G'\) and \(G''\) separately
Should be random, no systematic curvature
Check near \(G''\) peak (most sensitive region)
- Statistical metrics:
\(R^2 > 0.98\) for \(G'\), \(R^2 > 0.95\) for \(G''\) (\(G''\) is noisier)
RMSE in log-space < 0.1
2. Physical Plausibility Checks
3. Cross-validation Between Test Modes
- Discrepancies > 20% indicate:
Nonlinearity (strain amplitude too high)
Time-dependent structure (cross-linking, aging)
Multi-mode relaxation (need more parameters)
4. Kramers-Kronig Validation
For Zener model, \(G'\) and \(G''\) automatically satisfy Kramers-Kronig (causal model). Use to validate experimental data before fitting.
Worked Example with Numbers¶
Material: Crosslinked PDMS elastomer
- Experimental data (SAOS):
Low-frequency plateau: \(G'(0.01 \text{ rad/s}) \approx 5.0 \times 10^4\) Pa
High-frequency plateau: \(G'(100 \text{ rad/s}) \approx 2.5 \times 10^5\) Pa
\(G''\) peak at \(\omega = 10\) rad/s, \(G''_{\max} \approx 1.0 \times 10^5\) Pa
- Initialization:
\(G_s = 5.0 \times 10^4\) Pa (low-\(\omega\) plateau)
\(G_s + G_p = 2.5 \times 10^5\) Pa → \(G_p = 2.0 \times 10^5\) Pa
\(\tau_\epsilon = 1 / 10 = 0.1\) s
\(\eta_p = G_p \tau_\epsilon = 2.0 \times 10^5 \times 0.1 = 2.0 \times 10^4\) Pa·s
- Optimization (NLSQ, 150 iterations):
Fitted: \(G_s = 4.8 \times 10^4\) Pa, \(G_p = 2.1 \times 10^5\) Pa, \(\eta_p = 2.05 \times 10^4\) Pa·s
\(R^2 = 0.996\) (excellent)
Validation: \(\tau_\epsilon = 2.05 \times 10^4 / 2.1 \times 10^5 = 0.098\) s \(\approx\) 0.1 s
- Physical interpretation:
Cross-link density: \(\nu_c = G_s / RT = 4.8 \times 10^4 / (8.314 \times 298) = 19.4\) mol/\(m^3\)
Molecular weight between cross-links: \(M_c = \rho / (2\nu_c) \approx 25000\) g/mol (typical for PDMS)
Relaxation time: 0.1 s suggests moderate chain dynamics
Model Comparison¶
When to Use Zener vs Alternatives¶
Use Zener when… |
Use alternative when… |
Recommended model |
|---|---|---|
Viscoelastic solid (\(G_e > 0\)) |
Viscoelastic liquid (\(G_e = 0\)) |
Maxwell, Burgers |
Single relaxation time |
Broad relaxation spectrum |
FZSS, Generalized Maxwell |
Creep recovery observed |
No recovery (pure flow) |
Maxwell (liquid) |
Exponential \(G(t)\) decay to plateau |
Power-law relaxation |
FZSS, FMG |
3 parameters sufficient |
Need creep + relaxation accuracy |
Burgers (4 params) |
Simple network structure |
Complex filled/composite |
Fractional models |
Model Hierarchy (Simpler → More Complex)¶
- Level 1: Maxwell
2 parameters
Viscoelastic liquid (no equilibrium modulus)
- Level 2: Zener (this model)
3 parameters
Viscoelastic solid (finite \(G_e\))
Simplest model capturing both relaxation and creep
- Level 3: Burgers (4-element)
4 parameters
Combines Maxwell + Kelvin-Voigt
Better creep modeling than Zener
See ../advanced/burgers (if available)
- Level 4: Generalized Maxwell
\(2N+1\) parameters (N modes + equilibrium)
Discrete relaxation spectrum
High accuracy but many parameters
- Level 5: Fractional Zener Solid-Solid (FZSS)
4-5 parameters
Power-law relaxation via fractional elements
Captures broad spectra with fewer parameters than Generalized Maxwell
Diagnostic Tests to Discriminate Models¶
- Test 1: Creep-recovery
Full recovery → Purely elastic (Hookean spring, not Zener)
Partial recovery → Zener (or FZSS)
No recovery → Maxwell (liquid)
- Test 2: Plot log \(G(t) - G_s\) vs \(t\)
Linear → Zener (exponential relaxation)
Curved (concave down) → Multi-mode or fractional
- Test 3: Loss tangent vs frequency
Peak then decrease → Zener
Monotonic decrease → Maxwell
Flat (constant) → Critical gel (FMG)
- Test 4: Low-frequency \(G'\) behavior
Plateau (\(G' \to G_s\)) → Zener
Decreases (\(G' \sim \omega^2\)) → Maxwell
Power-law (\(G' \sim \omega^\alpha\), \(0 < \alpha < 1\)) → Fractional
Connection to Advanced Models¶
- Thermorheological complexity:
For Zener, time-temperature superposition (TTS) requires single shift factor \(a_T\) if material is thermorheologically simple. If \(G_s\) and \(\eta_p\) have different temperature dependences, material is thermorheologically complex → need fractional models or multi-mode.
- Relationship to fractional models:
Fractional Zener (FZSS) generalizes Zener by replacing springs with SpringPots:
\[ \begin{align}\begin{aligned}\text{Zener: } G(t) = G_s + G_p e^{-t/\tau}\\\text{FZSS: } G(t) = G_s E_{\alpha_s}(-(t/\tau)^{\alpha_s}) + G_p E_{\alpha_p}(-(t/\tau)^{\alpha_p})\end{aligned}\end{align} \]where \(E_\alpha\) is Mittag-Leffler function. Zener is special case with \(\alpha_s = 0\), \(\alpha_p = 1\).
- Percolation and gel point:
At the gel point (incipient infinite network), Winter-Chambon criterion predicts power-law behavior inconsistent with Zener. Use FMG or FZSS near gel point.
Usage¶
Basic Fitting Example¶
from rheojax.core.jax_config import safe_import_jax
jax, jnp = safe_import_jax()
from rheojax.models import Zener
omega = jnp.logspace(-1, 3, 160)
G_data = measured_modulus(omega)
model = Zener()
model.parameters.set_value('Ge', 2.5e4)
model.parameters.set_value('Gm', 9.0e4)
model.parameters.set_value('eta', 4.2e3)
model.fit(omega, G_data)
prediction = model.predict(omega)
Advanced: Stress Relaxation Fitting¶
from rheojax.models import Zener
import numpy as np
# Stress relaxation data
time = np.logspace(-2, 2, 100) # 0.01 to 100 s
G_relaxation = measured_relaxation_modulus(time)
# Initialize from data
G_s_init = np.mean(G_relaxation[-10:]) # Average last 10 points
G_0_init = G_relaxation[0]
G_p_init = G_0_init - G_s_init
# Fit
model = Zener()
model.parameters.set_value('Ge', G_s_init)
model.parameters.set_value('Gm', G_p_init)
model.parameters.set_value('eta', 1e4)
model.fit(time, G_relaxation, test_mode='relaxation')
print(f"Equilibrium modulus: {model.parameters.get_value('Ge'):.2e} Pa")
print(f"Relaxation time: {model.parameters.get_value('eta') / model.parameters.get_value('Gm'):.3f} s")
Bayesian Inference with Uncertainty Quantification¶
from rheojax.models import Zener
# 1. NLSQ point estimation
model = Zener()
model.fit(omega, G_star)
# 2. Bayesian inference (warm-start)
result = model.fit_bayesian(
omega, G_star,
num_warmup=1500,
num_samples=3000
)
# 3. Check parameter correlations (Ge and Gm often correlated)
posterior_Ge = result.posterior_samples['Ge']
posterior_Gm = result.posterior_samples['Gm']
import matplotlib.pyplot as plt
plt.scatter(posterior_Ge, posterior_Gm, alpha=0.3)
plt.xlabel('Ge (Pa)')
plt.ylabel('Gm (Pa)')
plt.title('Parameter correlation')
# 4. Credible intervals
intervals = model.get_credible_intervals(result.posterior_samples, credibility=0.95)
print(f"Ge: [{intervals['Ge'][0]:.2e}, {intervals['Ge'][1]:.2e}] Pa")
Tips & Pitfalls¶
Normalize frequency data so that \(\omega \tau\) spans both < 1 and > 1; otherwise
etaandGmbecome unidentifiable.If the data show residual flow, augment with a dashpot in series (
rheojax.models.Maxwell) instead of forcingGeto zero.Use log-scale residuals when fitting \(G'\) and \(G''\) together so high- frequency points do not dominate.
Keep
GeandGmstrictly positive; unconstrained optimizers can otherwise dip below zero and destabilize the ODE.Seed \(\tau\) from the peak of \(G''\) or crossover of \(G'\) and \(G''\) to reduce optimizer iterations.
Critical: Ensure frequency range captures \(G''\) peak. If \(\tau\) is outside experimental window, use TTS or relaxation tests.
For filled polymers or composites, consider fractional models (FZSS) if Zener fit is poor.
Check creep recovery: If no recovery observed, material is liquid → use Maxwell/Burgers instead.
See Also¶
Classical Models:
Maxwell (Classical) — series spring-dashpot limit for purely viscous relaxation
SpringPot (Scott-Blair Element) — replaces the dashpot with a fractional element for power-law decay
Fractional Models:
Fractional Zener Solid-Liquid (Fractional) — fractional generalization with SpringPot behavior plus an equilibrium branch
Fractional Zener Solid-Solid (Fractional) — both springs replaced with SpringPots (power-law relaxation)
Transforms:
FFTAnalysis — convert relaxation data to \(G^*(\omega)\) before fitting
Mastercurve (Time-Temperature Superposition) — time-temperature superposition to extend frequency range
Examples:
../../examples/basic/02-zener-creep — notebook that estimates \(G_s\), \(G_p\), and \(\eta_p\) from creep-recovery experiments
User Guides:
../../user_guide/model_selection — decision flowcharts for model selection