Material Classification¶
Learning Objectives
After completing this section, you will be able to:
Classify materials as liquid-like, solid-like, or gel-like from rheological data
Identify key signatures in \(G'\) and \(G''\) frequency sweeps
Distinguish between physical gels, chemical gels, and viscoelastic liquids
Predict material behavior from modulus frequency dependence
Select appropriate models based on material classification
Prerequisites
What is Rheology? — Core rheology concepts
Understanding of \(G'\) (storage modulus) and \(G''\) (loss modulus)
The Classification Problem¶
When you measure a material’s rheological properties, the first question is:
“What type of material is this?”
The answer determines:
Which mathematical models are appropriate
What test modes to use
How to interpret parameters physically
What processing or application behavior to expect
Classification is based on observing how moduli change with frequency (or equivalently, how stress relaxes with time).
Three Main Categories¶
Materials fall into three broad rheological classes:
Viscoelastic Liquids — Flow at long times (zero equilibrium modulus)
Viscoelastic Solids — Finite equilibrium modulus (network structure)
Gels — Power-law relaxation (critical or near-critical structure)
Let’s explore each in detail.
1. Viscoelastic Liquids¶
Definition¶
Liquids flow — they have no equilibrium modulus. At long times (low frequencies), all stress relaxes to zero.
Rheological Signature¶
In a frequency sweep (Small-Amplitude Oscillatory Shear, SAOS):
Low frequencies (\(\omega \to 0\)):
\(G'' > G'\) (loss dominates)
\(G'' \sim \omega^1\) (linear with frequency)
\(G' \sim \omega^2\) (quadratic with frequency)
High frequencies:
\(G' > G''\) (storage dominates — elastic-like on short timescales)
Both \(G'\) and \(G''\) increase
Crossover frequency (\(\omega_c\)):
Point where \(G' = G''\) (transition from liquid-like to solid-like)
Related to characteristic relaxation time: \(\tau \sim 1/\omega_c\)
Physical interpretation: At low frequencies (long observation times), the material has time to flow — viscous dissipation (\(G''\)) dominates. At high frequencies (short observation times), molecular rearrangements can’t keep up — elastic storage (\(G'\)) dominates.
Mathematical Models¶
Appropriate models for viscoelastic liquids:
Maxwell model: Single relaxation time (simplest)
Fractional Maxwell Liquid (FML): Distribution of relaxation times
Generalized Maxwell model: Discrete spectrum of relaxation times
Examples¶
Polymer melts: Polystyrene, polyethylene above \(T_g\)
Polymer solutions: DNA solutions, xanthan gum solutions
Micellar solutions: Surfactant solutions above CMC
Code Example: Identifying a Viscoelastic Liquid¶
import numpy as np
import matplotlib.pyplot as plt
# Synthetic frequency sweep data for a viscoelastic liquid
omega = np.logspace(-2, 2, 50) # Angular frequency (rad/s)
# Maxwell-like behavior
tau = 1.0 # Relaxation time (s)
G0 = 1e5 # Plateau modulus (Pa)
G_prime = G0 * (omega * tau)**2 / (1 + (omega * tau)**2)
G_double_prime = G0 * (omega * tau) / (1 + (omega * tau)**2)
# Plot
plt.figure(figsize=(8, 5))
plt.loglog(omega, G_prime, 'o-', label="G' (storage)")
plt.loglog(omega, G_double_prime, 's-', label='G" (loss)')
plt.xlabel('Angular Frequency (rad/s)')
plt.ylabel('Modulus (Pa)')
plt.legend()
plt.title('Viscoelastic Liquid: G" > G\' at low ω')
plt.grid(True, alpha=0.3)
# Identify crossover
crossover_idx = np.argmin(np.abs(G_prime - G_double_prime))
omega_c = omega[crossover_idx]
print(f"Crossover frequency: {omega_c:.3f} rad/s")
print(f"Characteristic time: {1/omega_c:.3f} s")
Classification criteria:
# Check low-frequency behavior
low_freq_idx = 0
if G_double_prime[low_freq_idx] > G_prime[low_freq_idx]:
print("Classification: VISCOELASTIC LIQUID")
print("(G\" > G' at low frequencies)")
2. Viscoelastic Solids¶
Definition¶
Solids have a finite equilibrium modulus — they can support stress indefinitely without flowing. The network structure (chemical crosslinks or strong physical interactions) prevents flow.
Rheological Signature¶
In a frequency sweep:
Low frequencies (\(\omega \to 0\)):
\(G' > G''\) (storage dominates)
\(G' \to G_e\) (plateau at equilibrium modulus)
\(G'' \to 0\) or small constant
High frequencies:
Both \(G'\) and \(G''\) increase
\(G'\) remains larger than \(G''\)
No terminal flow: Unlike liquids, there is NO crossover where \(G''\) exceeds \(G'\) at low frequencies.
Physical interpretation: The crosslinked network can store elastic energy indefinitely. Even at long timescales, the material does not flow—it remains solid-like.
Mathematical Models¶
Appropriate models for viscoelastic solids:
Zener model (Standard Linear Solid): Two elastic elements + one viscous
Fractional Zener Solid-Solid (FZSS): Two elastic elements + fractional damping
Kelvin-Voigt model: Elastic + viscous in parallel
Examples¶
Crosslinked rubbers: Vulcanized rubber, silicone elastomers
Chemical gels: Covalently crosslinked hydrogels
Strong physical gels: Agar, gelatin (below melting temperature)
Code Example: Identifying a Viscoelastic Solid¶
# Zener model (solid)
Ge = 1e4 # Equilibrium modulus (Pa)
Gm = 5e4 # Arm modulus (Pa)
tau = 1.0 # Relaxation time (s)
G_prime_solid = Ge + Gm * (omega * tau)**2 / (1 + (omega * tau)**2)
G_double_prime_solid = Gm * (omega * tau) / (1 + (omega * tau)**2)
plt.figure(figsize=(8, 5))
plt.loglog(omega, G_prime_solid, 'o-', label="G' (storage)")
plt.loglog(omega, G_double_prime_solid, 's-', label='G" (loss)')
plt.axhline(Ge, color='gray', linestyle='--', label=f'G_e = {Ge} Pa')
plt.xlabel('Angular Frequency (rad/s)')
plt.ylabel('Modulus (Pa)')
plt.legend()
plt.title('Viscoelastic Solid: G\' plateaus at G_e, G\' > G" everywhere')
plt.grid(True, alpha=0.3)
Classification criteria:
# Check low-frequency behavior
low_freq_idx = 0
if G_prime_solid[low_freq_idx] > G_double_prime_solid[low_freq_idx]:
# Check if G' plateaus
G_prime_slope = np.gradient(np.log(G_prime_solid), np.log(omega))
if abs(G_prime_slope[low_freq_idx]) < 0.1: # Nearly flat
print("Classification: VISCOELASTIC SOLID")
print(f"Equilibrium modulus G_e ≈ {G_prime_solid[low_freq_idx]:.1e} Pa")
3. Gels and Power-Law Materials¶
Definition¶
Gels exhibit power-law relaxation — neither fully solid nor fully liquid. They sit at or near a critical gelation point, with a broad distribution of relaxation times.
Rheological Signature¶
In a frequency sweep:
Across all frequencies:
\(G' \sim \omega^\alpha\) (power-law scaling)
\(G'' \sim \omega^\alpha\) (parallel scaling)
\(G' \approx G''\) (often within same order of magnitude)
Exponent \(\alpha\) between 0 and 1 (typically 0.1–0.5)
Log-log plot: Both \(G'\) and \(G''\) are nearly parallel straight lines
Physical interpretation: Gels have a fractal or near-critical network structure with relaxation times spanning many decades. The power-law exponent \(\alpha\) characterizes the breadth of the relaxation spectrum.
Types of Gels¶
Physical gels:
Weak transient networks (thermoreversible)
Examples: Gelatin (warm), wormlike micelles, clay suspensions
Chemical gels (at gelation point):
Crosslinking in progress (critical gel)
Power-law behavior only AT gelation transition
Weak gels / soft solids:
\(G'\) slightly \(> G''\) across frequencies
Small equilibrium modulus
Examples: Yogurt, mayonnaise, soft pastes
Mathematical Models¶
Appropriate models for gels:
Fractional Maxwell Gel (FMG): Pure power-law (critical gel)
Fractional Burgers: Gel-like with weak plateau
SpringPot: Simplest fractional element
Examples¶
Weak gels: Yogurt, soft cheese, mayonnaise
Colloidal gels: Fumed silica dispersions, carbon black gels
Biopolymer networks: Fibrin, collagen (weak crosslinking)
Code Example: Identifying a Gel¶
# Fractional power-law gel
alpha = 0.3 # Fractional exponent
S = 1e4 # Quasi-modulus (Pa·s^α)
G_prime_gel = S * omega**alpha * np.cos(np.pi * alpha / 2)
G_double_prime_gel = S * omega**alpha * np.sin(np.pi * alpha / 2)
plt.figure(figsize=(8, 5))
plt.loglog(omega, G_prime_gel, 'o-', label="G' (storage)")
plt.loglog(omega, G_double_prime_gel, 's-', label='G" (loss)')
plt.xlabel('Angular Frequency (rad/s)')
plt.ylabel('Modulus (Pa)')
plt.legend()
plt.title(f'Gel: Power-law scaling G\', G" ~ ω^{alpha}')
plt.grid(True, alpha=0.3)
Classification criteria:
# Check for power-law scaling
log_omega = np.log(omega)
log_Gprime = np.log(G_prime_gel)
# Linear fit in log-log space
slope, _ = np.polyfit(log_omega, log_Gprime, 1)
if 0.1 < slope < 0.9: # Power-law exponent
print("Classification: GEL / POWER-LAW MATERIAL")
print(f"Power-law exponent α ≈ {slope:.2f}")
Visual Summary: Frequency Sweep Signatures¶
VISCOELASTIC LIQUID
─────────────────────
log(G', G")
│ G'
│ /
│ /
│ / G' > G" (high ω)
│ /
─────┼───────── ω_c (crossover)
│\
│ \ G" > G' (low ω)
│ \
│ \ G"
└─────────── log(ω)
Low ω: G" > G' (liquid-like)
High ω: G' > G" (solid-like)
Crossover: τ ~ 1/ω_c
VISCOELASTIC SOLID
──────────────────
log(G', G")
│
│ G'
│ ╱
G_e ├──╱─────── G' plateau
│ ╱
│╱ G' > G" everywhere
│ G"
└─────────── log(ω)
Low ω: G' → G_e (equilibrium modulus)
High ω: Both increase
No terminal flow
GEL (POWER-LAW)
───────────────
log(G', G")
│
│ ╱ G'
│ ╱
│ ╱ Parallel lines
│ ╱
│╱ G"
│
└─────────── log(ω)
All ω: G', G" ~ ω^α (parallel)
G' ≈ G" (similar magnitude)
No single relaxation time
Classification Flowchart¶
START: Frequency sweep data (G' vs G" vs ω)
│
▼
[Low frequency: G' or G" larger?]
│
├─→ G" > G' ──→ VISCOELASTIC LIQUID
│ │
│ ├─→ Models: Maxwell, FML
│ └─→ Examples: Polymer melts
│
├─→ G' > G" ──→ [Does G' plateau?]
│ │
│ ├─→ YES ──→ VISCOELASTIC SOLID
│ │ │
│ │ ├─→ Models: Zener, FZSS
│ │ └─→ Examples: Rubbers, chemical gels
│ │
│ └─→ NO ──→ Check power-law
│
└─→ G' ≈ G" ──→ [Parallel lines in log-log?]
│
├─→ YES ──→ GEL / POWER-LAW
│ │
│ ├─→ Models: FMG, SpringPot
│ └─→ Examples: Yogurt, soft gels
│
└─→ NO ──→ Re-examine data quality
Practical Classification Algorithm¶
Use this code to automatically classify materials:
def classify_material(omega, G_prime, G_double_prime):
"""
Classify material from frequency sweep data.
Parameters
----------
omega : array
Angular frequency (rad/s)
G_prime : array
Storage modulus (Pa)
G_double_prime : array
Loss modulus (Pa)
Returns
-------
classification : str
'liquid', 'solid', or 'gel'
details : dict
Classification metrics
"""
# Low-frequency behavior (first 10% of data)
low_freq_idx = len(omega) // 10
G_prime_low = G_prime[:low_freq_idx]
G_double_prime_low = G_double_prime[:low_freq_idx]
# 1. Check low-frequency dominance
if np.mean(G_double_prime_low) > np.mean(G_prime_low):
return 'liquid', {'note': 'G" > G\' at low frequencies'}
# 2. Check for plateau (solid)
log_omega = np.log(omega[:low_freq_idx])
log_Gprime = np.log(G_prime_low)
slope, _ = np.polyfit(log_omega, log_Gprime, 1)
if abs(slope) < 0.15: # Nearly flat
Ge = np.mean(G_prime_low)
return 'solid', {'Ge': Ge, 'note': 'G\' plateau detected'}
# 3. Check for power-law (gel)
log_omega_all = np.log(omega)
log_Gprime_all = np.log(G_prime)
slope_all, _ = np.polyfit(log_omega_all, log_Gprime_all, 1)
if 0.1 < slope_all < 0.9:
return 'gel', {'alpha': slope_all, 'note': 'Power-law scaling'}
# Default
return 'unknown', {'note': 'Re-examine data or try different tests'}
# Example usage
material_type, info = classify_material(omega, G_prime, G_double_prime)
print(f"Material classification: {material_type}")
print(f"Details: {info}")
Key Concepts¶
Main Takeaways
Viscoelastic liquids: \(G'' > G'\) at low frequencies, flow at long times (Maxwell, FML)
Viscoelastic solids: \(G' > G''\) everywhere, \(G'\) plateaus at \(G_e\) (Zener, FZSS)
Gels: \(G' \approx G''\) with power-law scaling \(G' \sim \omega^\alpha\) (FMG, SpringPot)
Classification determines model selection and expected behavior
Frequency sweeps (SAOS) are the primary tool for material classification
Self-Check Questions
A material has \(G' = 100\) Pa and \(G'' = 1000\) Pa at 0.01 rad/s. What type of material is it likely to be?
Hint: Compare \(G'\) and \(G''\) at low frequency
You observe \(G' = 5000\) Pa at all frequencies from 0.01 to 100 rad/s, while \(G''\) varies from 100 to 500 Pa. What classification?
Hint: Look for a plateau in \(G'\)
Both \(G'\) and \(G''\) scale as \(\omega^{0.4}\) over 3 decades of frequency. What material type?
Hint: Parallel power-law scaling
Why can’t you use a single-frequency measurement to classify a material?
Hint: Need to see frequency dependence to distinguish types
A material shows \(G'' > G'\) at low frequencies but also has a small plateau in \(G'\). What might this indicate?
Hint: Could be intermediate case or weak gel
Further Reading¶
Within this documentation:
Test Modes in Rheology — Experimental methods for probing material behavior
Model Families Overview — Mathematical models for each material type
Model Selection Guide — Flowcharts for choosing models
External resources:
Winter, H.H. & Chambon, F. “Analysis of Linear Viscoelasticity of a Crosslinking Polymer at the Gel Point” J. Rheol. 30, 367 (1986) — Critical gels
Ferry, J.D. Viscoelastic Properties of Polymers, Chapter 3 — Material classification
Summary¶
Materials are classified rheologically into viscoelastic liquids (\(G'' > G'\) at low \(\omega\), terminal flow), viscoelastic solids (\(G'\) plateaus at \(G_e\), no flow), and gels (power-law scaling \(G' \sim \omega^\alpha\)). Classification is based on frequency sweep signatures and determines appropriate models and expected behavior.
Next Steps¶
Proceed to: Test Modes in Rheology
Learn about the four major experimental techniques (SAOS, relaxation, creep, flow) used to characterize materials.