Model Inventory System¶
RheoJAX provides a powerful Protocol-Driven Inventory System to help you discover models and transforms that match your experimental data. Instead of guessing which models support which tests, you can query the system programmatically or via the command line.
The inventory categorizes components into two types:
Models: Constitutive equations fit to data (e.g., Maxwell, SGR).
Transforms: Data processing operations (e.g., FFT, TTS).
CLI Usage¶
You can explore the available models and transforms using the rheojax inventory command.
List All Components¶
$ rheojax inventory
RheoJAX Inventory
=================
Models
------
Name Protocols Description
------------------- ---------------------------------------- ------------------------------
bingham flow_curve Bingham model for linear viscoplastic flow...
carreau flow_curve Carreau model for non-Newtonian flow...
...
Transforms
----------
Name Type Description
------------------- --------------- ------------------------------
fft_analysis spectral Transform time-domain rheological data...
mastercurve superposition Time-Temperature Superposition (TTS)...
...
Filter by Protocol¶
Find models that support a specific experimental protocol, such as Large Amplitude Oscillatory Shear (LAOS).
$ rheojax inventory --protocol laos
Models
------
(Filtered by protocol: laos)
Name Protocols Description
------------------- ---------------------------------------- ------------------------------
generalized_maxwell ... oscillation, flow_curve, startup, laos Generalized Maxwell Model...
sgr_conventional ... startup, oscillation, laos Soft Glassy Rheology (SGR)...
sgr_generic ... startup, oscillation, laos Soft Glassy Rheology (SGR)...
spp_yield_stress flow_curve, laos SPP-based yield stress model...
stz_conventional ... startup, oscillation, laos Conventional Shear Transformation Zone...
Filter by Transform Type¶
Find transforms for specific operations, such as superposition (shifting curves).
$ rheojax inventory --type superposition
Transforms
----------
(Filtered by type: superposition)
Name Type Description
------------------- --------------- ------------------------------
mastercurve superposition Time-Temperature Superposition (TTS)...
srfs superposition Strain-Rate Frequency Superposition...
Python API Usage¶
You can also access the inventory system within your Python scripts to build dynamic analysis pipelines.
Finding Compatible Models¶
from rheojax.core.registry import ModelRegistry
from rheojax.core.inventory import Protocol
# Find all models that support Creep experiments
creep_models = ModelRegistry.find(protocol=Protocol.CREEP)
print(creep_models)
# Output: ['maxwell', 'zener', 'springpot', 'fractional_maxwell', ...]
# Instantiate a model by name
model_name = creep_models[0]
model = ModelRegistry.create(model_name)
Finding DMTA-Compatible Models¶
from rheojax.core.registry import ModelRegistry
from rheojax.core.test_modes import DeformationMode
from rheojax.core.inventory import Protocol
# Find all models that support tensile (DMTA) oscillation
dmta_models = ModelRegistry.find(
protocol=Protocol.OSCILLATION,
deformation_mode=DeformationMode.TENSION,
)
print(f"{len(dmta_models)} DMTA-compatible models")
# Output: 41 DMTA-compatible models
Finding Transforms¶
from rheojax.core.registry import TransformRegistry
from rheojax.core.inventory import TransformType
# Find spectral transforms (Time <-> Frequency)
transforms = TransformRegistry.find(type=TransformType.SPECTRAL)
print(transforms)
# Output: ['fft_analysis']
Core Definitions¶
Protocols (Models)¶
Protocol |
Description |
|---|---|
|
Steady shear viscosity vs. shear rate (Flow curves) |
|
Strain vs. time at constant stress |
|
Stress vs. time at constant strain |
|
Stress growth vs. time at constant shear rate (Transient) |
|
Small Amplitude Oscillatory Shear (SAOS) - \(G'\), \(G''\) vs. frequency |
|
Large Amplitude Oscillatory Shear - Lissajous curves, Harmonics |
Transform Types¶
Type |
Description |
|---|---|
|
Domain conversion (Time ↔ Frequency), e.g., FFT |
|
Shifting data to create master curves, e.g., TTS, SRFS |
|
Splitting signals into components, e.g., SPP |
|
Extracting metrics or fingerprints, e.g., Mutation Number |
|
Data cleaning and smoothing, e.g., Smooth Derivative |