API Reference

This page contains the complete API reference for all public modules, classes, and functions in rheojax.

API Modules

Overview by Category

Core Components

Base Classes:

  • rheojax.core.base.BaseModel - Base class for all models

  • rheojax.core.base.BaseTransform - Base class for all transforms

Data Structures:

  • rheojax.core.data.RheoData - Primary data container

  • rheojax.core.parameters.Parameter - Single parameter

  • rheojax.core.parameters.ParameterSet - Parameter collection

  • rheojax.core.parameters.SharedParameterSet - Multi-technique shared parameters

Registries:

Test Modes & Deformation:

Models (53 total)

Classical Models (3):

  • rheojax.models.Maxwell - Spring and dashpot in series

  • rheojax.models.Zener - Standard Linear Solid (SLS)

  • rheojax.models.SpringPot - Fractional power-law element

Multi-Mode Models (1):

  • rheojax.models.GeneralizedMaxwell - Generalized Maxwell Model (Prony series)

Fractional Maxwell Family (4):

  • rheojax.models.FractionalMaxwellGel - Spring + SpringPot

  • rheojax.models.FractionalMaxwellLiquid - SpringPot + dashpot

  • rheojax.models.FractionalMaxwellModel - Two SpringPots

  • rheojax.models.FractionalKelvinVoigt - Parallel spring + SpringPot

Fractional Zener Family (4):

  • rheojax.models.FractionalZenerSolidLiquid (FZSL) - Solid + fractional liquid

  • rheojax.models.FractionalZenerSolidSolid (FZSS) - Two solids + fractional

  • rheojax.models.FractionalZenerLiquidLiquid (FZLL) - Most general

  • rheojax.models.FractionalKelvinVoigtZener (FKVZ) - FKV + series spring

Advanced Fractional Models (3):

  • rheojax.models.FractionalBurgersModel (FBM) - Maxwell + FKV in series

  • rheojax.models.FractionalPoyntingThomson (FPT) - FKV + spring in series

  • rheojax.models.FractionalJeffreysModel (FJM) - Two dashpots + SpringPot

Non-Newtonian Flow Models (6):

  • rheojax.models.PowerLaw - tau = \(K \, \dot{\gamma}^n\)

  • rheojax.models.Carreau - Smooth Newtonian -> power-law

  • rheojax.models.CarreauYasuda - Extended Carreau

  • rheojax.models.Cross - Alternative to Carreau

  • rheojax.models.HerschelBulkley - Yield stress + power-law

  • rheojax.models.Bingham - Yield stress + Newtonian

Soft Glassy Rheology Models (2):

  • rheojax.models.SGRConventional - Soft Glassy Rheology (Sollich 1998)

  • rheojax.models.SGRGeneric - Thermodynamic SGR (GENERIC)

STZ Models (1):

  • rheojax.models.STZConventional - Shear Transformation Zone (Langer 2008)

SPP LAOS Models (1):

  • rheojax.models.SPPYieldStress - Yield stress for SPP analysis

Elasto-Plastic Models (2):

  • rheojax.models.LatticeEPM - Mesoscopic lattice model (FFT-based)

  • rheojax.models.TensorialEPM - Tensorial scaffolding

Fluidity Models (2):

  • rheojax.models.FluidityLocal - Local fluidity with aging/rejuvenation

  • rheojax.models.FluidityNonlocal - Nonlocal fluidity with cooperativity length

Fluidity-Saramito EVP Models (2):

  • rheojax.models.FluiditySaramitoLocal - Tensorial EVP with fluidity coupling

  • rheojax.models.FluiditySaramitoNonlocal - Nonlocal Saramito EVP

DMT Thixotropic Models (2):

  • rheojax.models.DMTLocal - de Souza Mendes-Thompson (0D)

  • rheojax.models.DMTNonlocal - DMT with structure diffusion (1D)

IKH Models (2):

  • rheojax.models.MIKH - Single-mode isotropic-kinematic hardening

  • rheojax.models.MLIKH - Multi-layer IKH

FIKH Models (2):

  • rheojax.models.FIKH - Fractional IKH (Caputo structure kinetics)

  • rheojax.models.FMLIKH - Fractional multi-layer IKH

Hébraud-Lequeux Model (1):

  • rheojax.models.HebraudLequeux - Mean-field soft glass model

Giesekus Models (2):

  • rheojax.models.GiesekusSingleMode - Nonlinear differential constitutive

  • rheojax.models.GiesekusMultiMode - Multi-mode Giesekus

ITT-MCT Models (2):

  • rheojax.models.ITTMCTSchematic - F12 schematic MCT

  • rheojax.models.ITTMCTIsotropic - Isotropic MCT with S(k) input

TNT Models (5):

  • rheojax.models.TNTSingleMode - Single-mode transient network

  • rheojax.models.TNTLoopBridge - Loop-bridge conversion kinetics

  • rheojax.models.TNTStickyRouse - Sticky Rouse chain dynamics

  • rheojax.models.TNTCates - Living polymer (worm-like micelles)

  • rheojax.models.TNTMultiSpecies - Multi-species bond network

VLB Models (4):

  • rheojax.models.VLBLocal - Vernerey-Long-Brighenti (local)

  • rheojax.models.VLBMultiNetwork - Multi-network VLB

  • rheojax.models.VLBVariant - VLB with modified kinetics

  • rheojax.models.VLBNonlocal - Nonlocal VLB (1D PDE)

HVM Model (1):

  • rheojax.models.HVMLocal - Hybrid vitrimer (3 sub-networks)

HVNM Model (1):

  • rheojax.models.HVNMLocal - Hybrid vitrimer nanocomposite (4 sub-networks)

Transforms (7 total)

  • rheojax.transforms.FFTAnalysis - Time -> frequency domain (FFT)

  • rheojax.transforms.Mastercurve - Time-temperature superposition (WLF/Arrhenius)

  • rheojax.transforms.MutationNumber - Viscoelastic character quantification

  • rheojax.transforms.OWChirp - Optimal waveform analysis for LAOS

  • rheojax.transforms.SmoothDerivative - Noise-robust differentiation

  • rheojax.transforms.SRFS - Strain-rate frequency superposition

  • rheojax.transforms.SPPDecomposer - Sequence of Physical Processes decomposition

Pipeline API

Core Pipeline:

Specialized Workflows:

Batch Processing:

I/O (Input/Output)

Readers:

  • rheojax.io.auto_load() - Auto-detect format and load

  • rheojax.io.load_trios() - TA TRIOS text files

  • rheojax.io.load_csv() - CSV files

  • rheojax.io.load_excel() - Excel files (.xlsx, .xls)

  • rheojax.io.load_anton_paar() - Anton Paar files

Writers:

  • rheojax.io.save_hdf5() - HDF5 format (full fidelity)

  • rheojax.io.save_excel() - Excel reports (multi-sheet)

Utilities

Optimization:

Mittag-Leffler Functions:

Test Modes:

Visualization

Plotting Functions:

  • rheojax.visualization.plot_rheo_data() - Plot RheoData objects

  • rheojax.visualization.plot_model_fit() - Plot data with model fit

  • rheojax.visualization.plot_residuals() - Plot fit residuals

  • rheojax.visualization.plot_mastercurve() - Plot mastercurve with shift factors

Styles:

  • ‘default’: Standard matplotlib style

  • ‘publication’: High-quality for publications

  • ‘presentation’: Large fonts and markers for presentations

API Design Principles

Consistency

All rheojax classes follow consistent patterns:

Models:

model = ModelClass()              # Instantiate
model.fit(X, y)                   # Fit to data
predictions = model.predict(X)    # Make predictions
score = model.score(X, y)         # Calculate R^2

Transforms:

transform = TransformClass()      # Instantiate
result = transform.transform(data)           # Apply transform
result = transform.fit_transform(data)       # Fit and transform
original = transform.inverse_transform(result)  # Inverse (if available)

Pipelines:

pipeline = (Pipeline()
    .load(source)
    .transform(name, **params)
    .fit(model, **kwargs)
    .plot(**options)
    .save(filepath))

scikit-learn Compatibility

rheojax models are compatible with scikit-learn:

  • fit(X, y), predict(X), score(X, y) methods

  • get_params(), set_params(**params) for hyperparameter access

  • Can be used in scikit-learn pipelines and GridSearchCV

JAX Integration

All numerical operations use JAX:

  • Automatic differentiation for optimization

  • JIT compilation for performance

  • GPU/CPU automatic dispatch

  • Compatible with JAX transformations (vmap, pmap, etc.)

Type Hints

All public APIs include type hints:

def fit(self, X: ArrayLike, y: ArrayLike, **kwargs) -> Self:
    """Fit model to data."""
    ...

Documentation Standards

All classes and functions include:

  • Docstrings with description

  • Parameters with types and descriptions

  • Returns with type and description

  • Examples showing typical usage

  • Cross-references to related functions

Getting Started

For new users, we recommend:

  1. Read the User Guide: user_guide/getting_started

  2. Try the Pipeline API: Pipeline API for high-level workflows

  3. Explore Models: Models API to understand available models

  4. Learn Transforms: Transforms API for data preprocessing

For advanced users:

  1. Master the Modular API: user_guide/modular_api

  2. Understand Core Classes: Core Module (rheojax.core)

  3. Implement Custom Workflows: user_guide/multi_technique_fitting

Version Information

This documentation covers rheojax version 0.6.0.

Phase 1 (v0.1.0): Core infrastructure, test mode detection, I/O, visualization

Phase 2 (v0.1.5): 20 models, 5 transforms, Pipeline API, multi-technique fitting

Phase 3 (v0.2.0): Bayesian inference with NumPyro NUTS, ArviZ diagnostics, BayesianPipeline, all 20 models support Bayesian inference

Phase 4 (v0.3.0): Generalized Maxwell Model (GMM) with PyVisco integration, auto shift factors for mastercurves

Phase 5 (v0.3.1): JAX-native foundation with 30-45% performance improvements

Phase 6 (v0.3.2): Vectorization and memory optimizations (50-75% cumulative improvement)

Phase 7 (v0.4.0): Mode-aware Bayesian inference (critical correctness fix), GMM element search optimization (2-5x speedup), TRIOS auto-chunking (50-70% memory reduction)

Phase 8 (v0.5.0): SGR models (Soft Glassy Rheology), SRFS transform, shear banding detection, SPP LAOS analysis

Phase 9 (v0.6.0): GUI improvements (Diagnostics, Export pages), comprehensive logging system, piblin-jax removal

Support