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\))

Ge

Equilibrium modulus (Pa). Permanent stiffness at infinite time.

\(G_m\) (or \(G_p\))

Gm

Maxwell arm modulus (Pa). Relaxation strength.

\(\eta\) (or \(\eta_p\))

eta

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

Representative Zener 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:

\[G_s = G_e = \nu k_B T\]
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:

\[M_c = \frac{\rho RT}{G_s}\]
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:

\[\sigma(t) + \frac{\eta_p}{G_p} \dot{\sigma}(t) = G_s \gamma(t) + \left(G_s + G_p\right)\frac{\eta_p}{G_p} \dot{\gamma}(t)\]

Or equivalently:

\[\sigma + \tau_\epsilon \dot{\sigma} = G_s (\gamma + \tau_\sigma \dot{\gamma})\]

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:

\[G(t) = \frac{\sigma(t)}{\gamma_0} = G_s + G_p e^{-t/\tau_\epsilon}\]
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:

\[G^*(\omega) = G_s + \frac{i\omega \eta_p G_p}{G_p + i \omega \eta_p}.\]

Storage and loss moduli:

\[ \begin{align}\begin{aligned}G'(\omega) = G_s + G_p \frac{(\omega \tau_\epsilon)^2}{1 + (\omega \tau_\epsilon)^2}\\G''(\omega) = G_p \frac{\omega \tau_\epsilon}{1 + (\omega \tau_\epsilon)^2}\end{aligned}\end{align} \]

Alternative form (more compact):

\[G'(\omega) = G_s + \frac{G_p (\omega \tau_\epsilon)^2}{1 + (\omega \tau_\epsilon)^2}, \qquad G''(\omega) = \frac{G_p \omega \tau_\epsilon}{1 + (\omega \tau_\epsilon)^2}\]

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:

\[\tan\delta(\omega) = \frac{G''}{G'} = \frac{G_p \omega \tau_\epsilon}{G_s (1 + (\omega\tau_\epsilon)^2) + G_p (\omega\tau_\epsilon)^2}\]

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:

\[J(t) = \frac{1}{G_s + G_p} + \frac{G_p}{G_s(G_s + G_p)} \left(1 - e^{-t/\tau_\sigma}\right)\]

At \(t \to \infty\): \(J_e = 1/G_s\) (finite equilibrium compliance, no flow).

Parameters

Parameter summary

Name

Units

Description / Constraints

Ge

Pa

Equilibrium modulus; > 0 to retain solid plateau.

Gm

Pa

Maxwell spring modulus; > 0 controls relaxation magnitude.

eta

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:

\[ \begin{align}\begin{aligned}\tau_\sigma = \tau_\epsilon \cdot \frac{G_p}{G_s + G_p} < \tau_\epsilon\\\text{Relaxation strength: } \Delta G = G_p = G(0) - G(\infty)\end{aligned}\end{align} \]

Relation to Molecular Properties

For crosslinked networks:

Cross-link density:

\[ \begin{align}\begin{aligned}\nu_c = \frac{G_s}{RT} \quad (\text{mol/m}^3)\\M_c = \frac{\rho}{2\nu_c} = \frac{\rho RT}{2 G_s}\end{aligned}\end{align} \]

Factor of 2 from tetrafunctional cross-links (each cross-link connects 4 chains).

Degree of cross-linking:

\[\text{Cross-link density (mol\%)} = \frac{M_0}{M_c} \times 100\%\]

where \(M_0\) = monomer molecular weight.

For filled elastomers:

Filler reinforcement increases both \(G_s\) and \(G_p\):

\[G_s^{\text{filled}} = G_s^{\text{unfilled}} \cdot (1 + 2.5\phi + 14.1\phi^2)\]

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):

\[ \begin{align}\begin{aligned}G'(\omega) \to G_s \quad (\text{equilibrium plateau})\\G''(\omega) \approx \frac{G_p \eta_p}{G_s^2} \omega \sim \omega\end{aligned}\end{align} \]

Interpretation: Elastic solid-like (\(G' > G''\)), but with residual dissipation from Maxwell arm.

High frequency ( \(\omega \to \infty\) , glassy region):

\[ \begin{align}\begin{aligned}G'(\omega) \to G_s + G_p = G_0 \quad (\text{instantaneous modulus})\\G''(\omega) \to 0\end{aligned}\end{align} \]

Interpretation: Fully elastic (Maxwell arm frozen, acts as spring).

Crossover frequency \(\omega_c \approx 1/\tau_\epsilon\):

\[G''(\omega_c) \approx \frac{G_p}{2} \quad (\text{peak in loss modulus})\]

This defines the characteristic relaxation timescale.

Asymptotic Behavior Summary

Frequency-dependent regimes

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

Material Classification from Zener Parameters

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\):

\[M_c = \frac{\rho RT}{2 G_s}\]

Example: PDMS with \(G_s = 5 \times 10^4\) Pa at 298 K, \(\rho = 965\) kg/\(m^3\):

\[M_c = \frac{965 \times 8.314 \times 298}{2 \times 5 \times 10^4} \approx 24000 \text{ g/mol}\]

Creep recovery fraction:

\[\text{Recovery} = \frac{G_p}{G_s + G_p}\]

Example: \(G_s = 5 \times 10^4\) Pa, \(G_p = 2 \times 10^5\) Pa:

\[\text{Recovery} = \frac{2 \times 10^5}{5 \times 10^4 + 2 \times 10^5} = 0.80 = 80\%\]

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

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

Troubleshooting experimental issues

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

Fitting diagnostics and solutions

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

\[ \begin{align}\begin{aligned}\text{Check 1: } \tau_\epsilon = \eta_p / G_p \quad (\text{should match } 1/\omega_{\max})\\\text{Check 2: } G_s > 0 \quad (\text{viscoelastic solid})\\\text{Check 3: } G_p > 0 \quad (\text{relaxation strength positive})\\\text{Check 4: } \tau_\sigma = \frac{\eta_p}{G_s + G_p} < \tau_\epsilon \quad (\text{always true})\end{aligned}\end{align} \]

3. Cross-validation Between Test Modes

\[G_s^{\text{SAOS}} \stackrel{?}{=} G(\infty)^{\text{relaxation}} \stackrel{?}{=} (J_e^{\text{creep}})^{-1}\]
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

Model selection decision tree

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
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)

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 eta and Gm become unidentifiable.

  • If the data show residual flow, augment with a dashpot in series (rheojax.models.Maxwell) instead of forcing Ge to zero.

  • Use log-scale residuals when fitting \(G'\) and \(G''\) together so high- frequency points do not dominate.

  • Keep Ge and Gm strictly 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:

Fractional Models:

Transforms:

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

References