DMTA Model Selection & Applicability¶
Every oscillation-capable model in RheoJAX works with DMTA data through the
automatic \(E^* \leftrightarrow G^*\) conversion in BaseModel.
This page provides a complete inventory of compatible models and transforms,
a tiered recommendation guide, and the conversion mechanism.
Recommended Starting Points¶
If you are new to DMTA analysis in RheoJAX, start here:
# |
Model / Workflow |
When to Use |
|---|---|---|
1 |
|
Broad glass transitions in amorphous polymers. 3–5 parameters capture the full \(T_g\) transition with physically meaningful fractional order \(\alpha\). Best first choice for single-sweep DMTA data. |
2 |
|
Any spectrum shape + FEM export. N-mode Prony series fits arbitrary
relaxation spectra. Use |
3 |
|
Vitrimers showing topology-freezing transition \(T_v\) in DMTA. Built-in Arrhenius kinetics for bond-exchange, permanent + exchangeable crosslink moduli. |
4 |
|
Multi-temperature TTS workflow. Collapse multi-T frequency sweeps into a master curve, then fit with FZSS for compact parameterisation or GMM for FEM export. Extracts WLF \(C_1, C_2\) and activation energy \(E_a\). |
# Recommended starting point: FZSS for single-sweep DMTA
from rheojax.models import FractionalZenerSolidSolid
model = FractionalZenerSolidSolid()
model.fit(
omega, E_star,
test_mode='oscillation',
deformation_mode='tension',
poisson_ratio=0.5, # rubber (0.35 glassy, 0.40 semicrystalline)
)
E_pred = model.predict(omega, test_mode='oscillation') # returns E*
How DMTA Support Works¶
The E* ↔ G* conversion is handled by BaseModel, not by
individual models. This means all 45 oscillation-capable model registrations
(39 unique classes) work with DMTA data without any model-level changes.
fit(ω, E*, test_mode='oscillation', deformation_mode='tension', ν=0.5)
│
├─ 1. Parse deformation_mode → DeformationMode.TENSION
├─ 2. Store: self._deformation_mode, self._poisson_ratio
├─ 3. is_tensile() → True → convert_modulus(E*, "tension", "shear", ν)
│ E* ÷ 2(1+ν) → G*
├─ 4. Call self._fit(ω, G*, ...) ← model sees G* only
└─ 5. Parameters stored in G-space (G₀, not E₀)
predict(ω, test_mode='oscillation')
│
├─ 1. Call self._predict(ω) → G*
├─ 2. Check self._deformation_mode
├─ 3. is_tensile() → True → G* × 2(1+ν) → E*
└─ 4. Return E*
fit_bayesian() follows the same conversion pattern.
Note
Some models are registered under multiple names (aliases). For example,
hvm and hvm_local both instantiate HVMLocal.
The 45 registrations correspond to 39 unique model classes.
Complete Model Inventory¶
The following tables list every model in RheoJAX and its DMTA compatibility.
Tier 1 — Primary DMTA Models¶
These models are the first choice for standard DMTA data analysis.
Model |
Params |
Registry Name(s) |
Best For |
|---|---|---|---|
|
3–5 |
|
Amorphous polymers through \(T_g\), broad \(\tan\delta\) peak |
|
2N+1 |
|
Any polymer, master curves, FEM export (Prony series) |
|
3 |
|
Quick fits, narrow relaxation (< 1 decade) |
|
2 |
|
Single-mode baseline comparison |
|
2 |
|
Power-law relaxation element |
Tier 2 — Temperature-Dependent Models¶
Models with built-in Arrhenius or WLF temperature dependence, ideal for multi-temperature DMTA datasets.
Model |
Params |
Registry Name(s) |
Best For |
|---|---|---|---|
2+ |
|
Crosslinked polymers, Arrhenius \(k_d(T)\) |
|
4+ |
|
Advanced VLB with \(G(T)\), first-principles TTS |
|
6+ |
|
Multi-network VLB with independent dissociation |
|
|
10 |
|
Vitrimers / CANs showing \(T_v\) transition |
|
15 |
|
NP-filled vitrimers with Payne effect + \(T_v\) |
|
8+ |
|
Thixotropic polymers with T-dependent yield |
|
8+ |
|
Fractional modified Lenoir-IKH |
Tier 3 — Specialist Viscoelastic Models¶
These models target specific material classes or physics.
Model |
Params |
Registry Name(s) |
Best For |
|---|---|---|---|
|
4 |
|
Polymer melts above \(T_g\) |
|
4N |
|
Multi-mode polymer melts |
|
5+ |
|
Telechelic polymers, physically crosslinked hydrogels |
|
3+ |
|
Soft glassy materials (foams, pastes, colloidal glasses) |
|
4+ |
|
Generalized SGR with GENERIC structure |
|
6+ |
|
Dense colloids near glass transition |
|
6+ |
|
Isotropic MCT variant |
|
6+ |
|
Shear transformation zones (metallic glasses) |
4+ |
|
Hébraud-Lequeux glassy dynamics |
|
|
4+ |
|
de Souza Mendes-Thompson thixotropy |
Tier 4 — Extended Fractional & Kinematic Models¶
Additional fractional viscoelastic and kinematic hardening models.
Model |
Params |
Registry Name(s) |
Best For |
|---|---|---|---|
|
3–5 |
|
Solid-to-liquid fractional transition |
|
3–5 |
|
Liquid-liquid fractional regime |
|
3 |
|
Simple fractional dashpot |
|
3 |
|
Gel-like power-law response |
|
3 |
|
Fractional liquid behaviour |
|
3 |
|
Solid-dominant fractional |
|
4–5 |
|
Kelvin-Voigt + Zener combination |
|
5–7 |
|
Two fractional elements in series |
|
5–6 |
|
Jeffreys model with fractional order |
|
5 |
|
Poynting-Thomson with springpot |
|
6+ |
|
Modified isotropic kinematic hardening |
|
6+ |
|
Multi-layer IKH |
|
3+ |
|
Elastoplastic lattice model |
|
4+ |
|
Tensorial elastoplastic model |
|
3+ |
|
Fluidity-based model |
|
4+ |
|
Nonlocal fluidity |
|
5+ |
|
Saramito EVP fluidity |
Models NOT Compatible with DMTA¶
The following 14 models cannot be used with DMTA data because they lack
Protocol.OSCILLATION support.
Flow-curve models (steady shear \(\eta(\dot\gamma)\) only):
power_law— Power lawcarreau— Carreaucarreau_yasuda— Carreau-Yasudacross— Crossbingham— Binghamherschel_bulkley— Herschel-Bulkley
TNT advanced variants (startup/flow protocols only):
tnt_cates— Cates living polymer modeltnt_sticky_rouse— Sticky Rousetnt_loop_bridge— Loop-bridge topologytnt_multi_species— Multi-species TNT
Nonlocal PDE models (spatially resolved, no oscillation):
vlb_nonlocal— VLB nonlocaldmt_nonlocal— DMT nonlocalfluidity_saramito_nonlocal— Saramito EVP nonlocal
Other:
spp_yield_stress— SPP yield stress decomposition (LAOS shear analysis)
Tip
To check DMTA compatibility programmatically:
from rheojax.core.registry import ModelRegistry
from rheojax.core.test_modes import DeformationMode
from rheojax.core.inventory import Protocol
# All models supporting tension + oscillation
models = ModelRegistry.find(
protocol=Protocol.OSCILLATION,
deformation_mode=DeformationMode.TENSION,
)
Transform Applicability for DMTA¶
RheoJAX transforms vary in their DMTA compatibility. Unlike models, transforms
do not have built-in deformation_mode handling — the conversion must be
managed at the model or utility level.
Transform |
DMTA Status |
Notes |
|---|---|---|
|
Direct |
Modulus-agnostic TTS; works on E* or G* without conversion |
|
Direct |
\(E(t) \leftrightarrow E^*(\omega)\) via Prony series; amplitude-agnostic |
|
Direct |
Recover \(H(\tau)\) from \(E'(\omega)\), \(E''(\omega)\) directly |
|
After E* → G* |
Operates on time-domain signals; convert first |
|
After E* → G* |
LVE envelope from \(G', G''\) |
|
After E* → G* |
Mutation number from \(G'(t)\) evolution |
|
After E* → G* |
Numerical derivative (generic utility) |
|
Not applicable |
Shear-specific (\(\eta^*\) vs \(\eta\)) |
|
Not applicable |
Shear chirp protocol |
|
Not applicable |
LAOS shear decomposition |
|
Not applicable |
Shear rate frequency superposition |
Using transforms that require conversion:
from rheojax.utils.modulus_conversion import convert_modulus
# Convert E* to G* before applying the transform
G_star = convert_modulus(E_star, "tension", "shear", poisson_ratio=0.5)
# Apply the transform on G*
from rheojax.transforms import LVEEnvelope
envelope = LVEEnvelope()
result = envelope.transform(omega, G_star)
Modulus conversion presets:
from rheojax.utils.modulus_conversion import POISSON_PRESETS
# Available presets:
# rubber / elastomer: 0.50
# glassy_polymer: 0.35
# semicrystalline: 0.40
# hydrogel: 0.50
# foam: 0.30
# metal: 0.30
# ceramic: 0.25
# biological_tissue: 0.45
Model Complexity Ladder¶
Models are listed from simplest to most expressive. Start with the simplest model that captures your data and move up only if residuals are systematic (see Numerical Implementation for convergence criteria):
Maxwell (2 params) — Single relaxation time. Baseline; fails for broad transitions.
Zener (3 params) — Adds equilibrium modulus \(G_e\). Plateau–transition–plateau. Fails if the transition spans > 1 decade.
Fractional Zener (3–5 params) — Power-law springpot replaces the dashpot. Captures broad \(T_g\) transitions with \(\alpha \in (0, 1)\).
Generalized Maxwell (2N + 1 params) — N-mode Prony series. Fits any smooth spectrum. Use ~1 mode per 3 decades of data.
VLB / HVM / HVNM (5–15 params) — Molecular-level models with bond-exchange kinetics, temperature dependence, and network topology. Use when physical insight (activation energy, crosslink density, topology freezing) is the primary goal.
Tip
For a master curve spanning 15–20 decades, the GMM with
n_modes=10--20 is almost always the best practical choice. Fractional
models are better when you need compact parameterisations or physical
interpretation of the relaxation breadth.
Experimental Situation → Model¶
Choose your model based on the data you have:
Your Situation |
Recommended Model(s) |
|---|---|
Single isothermal frequency sweep |
|
Multi-temperature frequency sweeps |
|
Temperature sweep with first-principles TTS |
|
Vitrimer \(T_v\) transition in DMTA |
|
Stress relaxation \(E(t)\) |
|
Need FEM Prony series export |
|
Uncertainty quantification on any model |
Any model + |
Thixotropic yield + temperature |
|
Physically crosslinked hydrogel |
|
Soft glassy material (foam, paste) |
|
Dense colloids near glass transition |
|
See also
DMTA Workflows — end-to-end fitting examples for each model tier
DMTA Theory & Conversion — E* expressions and conversion details per model
Knowledge Extraction from DMTA Data — physical insight extractable from each model family