Skip to content

Material Model Catalog

Overview

hyper-surrogate provides a comprehensive library of hyperelastic constitutive models for both isotropic and anisotropic materials.

Model Type Invariants Parameters Use Case
NeoHooke Isotropic \(\bar{I}_1\) 1 Simple rubber-like materials
MooneyRivlin Isotropic \(\bar{I}_1, \bar{I}_2\) 2 Rubber with moderate strains
Yeoh Isotropic \(\bar{I}_1\) 3 Rubber at large strains
Demiray Isotropic \(\bar{I}_1\) 2 Soft biological tissues
Ogden Isotropic \(\bar{\lambda}_i\) \(2N\) General rubber (any strain range)
Fung Isotropic \(\mathbf{E}\) 3 Soft tissues (exponential stiffening)
HolzapfelOgden Anisotropic \(\bar{I}_1, I_4\) 4 Arterial wall (single fiber)
GasserOgdenHolzapfel Anisotropic \(\bar{I}_1, I_4\) 5 Arterial wall (dispersed fibers)
Guccione Anisotropic \(\mathbf{E}\) (fiber frame) 4 Cardiac tissue

Isotropic Models

Neo-Hooke

from hyper_surrogate import NeoHooke

mat = NeoHooke(parameters={"C10": 0.5, "KBULK": 1000.0})

The simplest hyperelastic model, linear in the first invariant.

Mooney-Rivlin

from hyper_surrogate import MooneyRivlin

mat = MooneyRivlin(parameters={"C10": 0.3, "C01": 0.2, "KBULK": 1000.0})

Extends Neo-Hooke with second invariant dependence.

Yeoh

from hyper_surrogate.mechanics.materials import Yeoh

mat = Yeoh(parameters={"C10": 0.5, "C20": -0.01, "C30": 0.001, "KBULK": 1000.0})

Third-order polynomial in \(\bar{I}_1 - 3\). Captures large-strain stiffening.

Demiray

from hyper_surrogate.mechanics.materials import Demiray

mat = Demiray(parameters={"C1": 0.05, "C2": 8.0, "KBULK": 1000.0})

Single-parameter exponential model commonly used for soft tissues.

Ogden

from hyper_surrogate.mechanics.materials import Ogden

# 1-term Ogden (equivalent to Neo-Hooke when alpha=2)
mat = Ogden(parameters={"mu1": 1.0, "alpha1": 2.0, "KBULK": 1000.0})

# 3-term Ogden
mat = Ogden(parameters={
    "mu1": 1.491, "alpha1": 1.3,
    "mu2": 0.003, "alpha2": 5.0,
    "mu3": -0.024, "alpha3": -2.0,
    "KBULK": 1000.0,
})

Principal-stretch-based model. Note: uses numerical evaluation (no symbolic SEF).

Fung

from hyper_surrogate.mechanics.materials import Fung

mat = Fung(parameters={"c": 1.0, "b1": 10.0, "b2": 5.0, "KBULK": 1000.0})

Exponential model expressed in Green strain components.

Anisotropic Models

Holzapfel-Ogden

from hyper_surrogate import HolzapfelOgden
import numpy as np

mat = HolzapfelOgden(
    parameters={"a": 0.059, "b": 8.023, "af": 18.472, "bf": 16.026, "KBULK": 1000.0},
    fiber_direction=np.array([1.0, 0.0, 0.0]),
)

Single fiber family model for arterial walls.

Gasser-Ogden-Holzapfel (GOH)

from hyper_surrogate.mechanics.materials import GasserOgdenHolzapfel
import numpy as np

mat = GasserOgdenHolzapfel(
    parameters={
        "a": 0.059, "b": 8.023,
        "af": 18.472, "bf": 16.026,
        "kappa": 0.226,  # fiber dispersion
        "KBULK": 1000.0,
    },
    fiber_direction=np.array([1.0, 0.0, 0.0]),
)

Extends HolzapfelOgden with fiber dispersion parameter \(\kappa\). When \(\kappa = 0\), reduces to HolzapfelOgden. When \(\kappa = 1/3\), fibers are isotropically distributed.

Guccione

from hyper_surrogate.mechanics.materials import Guccione
import numpy as np

mat = Guccione(
    parameters={"C": 0.876, "bf": 18.48, "bt": 3.58, "bfs": 1.627, "KBULK": 1000.0},
    fiber_direction=np.array([1.0, 0.0, 0.0]),
    sheet_direction=np.array([0.0, 1.0, 0.0]),
)

Transversely isotropic model for cardiac tissue, expressed in the fiber-sheet-normal frame.