Skip to content

yield_functions

SMP module-attribute

GNST

Bases: YieldFunction

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['equivalent_stress', 'alpha']

alpha instance-attribute

alpha: float = alpha

bounds class-attribute instance-attribute

bounds = {'equivalent_stress': (0, 1000000000.0), 'alpha': (0, 1)}

equivalent_stress instance-attribute

equivalent_stress: float = equivalent_stress

keys class-attribute instance-attribute

keys = ['equivalent_stress', 'alpha']

stds class-attribute instance-attribute

stds = {'equivalent_stress': 1.0, 'alpha': 0.1}

x0 class-attribute instance-attribute

x0 = {'equivalent_stress': 70.0, 'alpha': 0.0}

__init__

__init__(equivalent_stress: float, alpha: float, **kwargs)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

LadeDuncan

Bases: YieldFunction

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['k1']

bounds class-attribute instance-attribute

bounds = {'k1': (0, 100)}

k1 instance-attribute

k1: float = k1

keys class-attribute instance-attribute

keys = ['k1']

stds class-attribute instance-attribute

stds = {'k1': 0.1}

x0 class-attribute instance-attribute

x0 = {'k1': 1.0}

__init__

__init__(k1: float, **kwargs)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

MatsuokaNakai

Bases: YieldFunction

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['phi', 'unit']

bounds class-attribute instance-attribute

bounds = {'phi': (0, 90)}

keys class-attribute instance-attribute

keys = ['phi']

phi instance-attribute

phi: float = phi

stds class-attribute instance-attribute

stds = {'phi': 1.0}

unit class-attribute instance-attribute

unit: Literal['rad', 'deg'] = unit

x0 class-attribute instance-attribute

x0 = {'phi': 30.0}

__init__

__init__(phi: float, *, unit: Literal['rad', 'deg'] = 'deg', **kwargs)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

MohrCoulomb

Bases: YieldFunction

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['c', 'phi', 'unit']

bounds class-attribute instance-attribute

bounds = {'c': (0, 1000000000.0), 'phi': (0, 90)}

c instance-attribute

c: float = c

equivalent_stress instance-attribute

equivalent_stress = c * cos(phi if unit == 'rad' else deg2rad(phi)) * 2

keys class-attribute instance-attribute

keys = ['c', 'phi']

phi instance-attribute

phi: float = phi

stds class-attribute instance-attribute

stds = {'c': 0.1, 'phi': 1.0}

unit class-attribute instance-attribute

unit: Literal['rad', 'deg'] = unit

x0 class-attribute instance-attribute

x0 = {'c': 35.0, 'phi': 30.0}

__init__

__init__(
    c: float, phi: float, *, unit: Literal["rad", "deg"] = "deg", **kwargs
)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

Tresca

Bases: YieldFunction, Tresca

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['equivalent_stress', 'alpha']

alpha instance-attribute

alpha: float = alpha

bounds class-attribute instance-attribute

bounds = {'equivalent_stress': (0, 1000000000.0), 'alpha': (0, 1)}

equivalent_stress instance-attribute

equivalent_stress: float = equivalent_stress

keys class-attribute instance-attribute

keys = ['equivalent_stress', 'alpha']

stds class-attribute instance-attribute

stds = {'equivalent_stress': 1.0, 'alpha': 0.1}

x0 class-attribute instance-attribute

x0 = {'equivalent_stress': 70.0, 'alpha': 0.0}

__init__

__init__(equivalent_stress: float, alpha: float = 0.0, **kwargs)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

VonMises

Bases: YieldFunction, VonMises

PARAMETERS class-attribute instance-attribute

PARAMETERS = ['equivalent_stress', 'alpha']

alpha instance-attribute

alpha: float = alpha

bounds class-attribute instance-attribute

bounds = {'equivalent_stress': (0, 1000000000.0), 'alpha': (0, 1)}

equivalent_stress instance-attribute

equivalent_stress: float = equivalent_stress

keys class-attribute instance-attribute

keys = ['equivalent_stress', 'alpha']

stds class-attribute instance-attribute

stds = {'equivalent_stress': 1.0, 'alpha': 0.1}

x0 class-attribute instance-attribute

x0 = {'equivalent_stress': 70.0, 'alpha': 0.0}

__init__

__init__(equivalent_stress: float, alpha: float = 0.0, **kwargs)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

Wang2025

Bases: YieldFunction

F1 instance-attribute

F1: float

F12 instance-attribute

F12: float

F13 instance-attribute

F13: float

F2 instance-attribute

F2: float

F23 instance-attribute

F23: float

F3 property writable

F3: float

PARAMETERS class-attribute instance-attribute

PARAMETERS = [
    "phi",
    "F1",
    "F2",
    "F12",
    "F13",
    "F23",
    "weight_mises",
    "weight_tresca",
    "weight_mohr_coulomb",
    "weight_smp",
    "unit",
    "vectorize",
    "fast_orthotropy",
]

bounds class-attribute instance-attribute

bounds = {
    "phi": (0, 90),
    "F1": (-10, 10),
    "F2": (-10, 10),
    "F12": (-10, 10),
    "F13": (-10, 10),
    "F23": (-10, 10),
    "weight_mises": (0, 100000.0),
    "weight_tresca": (0, 100000.0),
    "weight_mohr_coulomb": (0, 100000.0),
    "weight_smp": (0, 100000.0),
}

fast_orthotropy class-attribute instance-attribute

fast_orthotropy: bool = fast_orthotropy

keys class-attribute instance-attribute

keys = ['phi', 'F1', 'F2', 'F12', 'F13', 'F23']

phi instance-attribute

phi: float = phi

stds class-attribute instance-attribute

stds = {
    "phi": 1.0,
    "F1": 0.1,
    "F2": 0.1,
    "F12": 0.1,
    "F13": 0.1,
    "F23": 0.1,
    "weight_mises": 0.1,
    "weight_tresca": 0.1,
    "weight_mohr_coulomb": 0.1,
    "weight_smp": 0.1,
}

unit class-attribute instance-attribute

unit: Literal['rad', 'deg'] = unit

vectorize class-attribute instance-attribute

vectorize: bool = vectorize

weight_mises class-attribute instance-attribute

weight_mises: float = weight_mises

weight_mohr_coulomb class-attribute instance-attribute

weight_mohr_coulomb: float = weight_mohr_coulomb

weight_smp class-attribute instance-attribute

weight_smp: float = weight_smp

weight_tresca class-attribute instance-attribute

weight_tresca: float = weight_tresca

x0 class-attribute instance-attribute

x0 = {
    "phi": 30.0,
    "F1": 0.0,
    "F2": 0.0,
    "F12": 0.0,
    "F13": 0.0,
    "F23": 0.0,
    "weight_mises": 0.0,
    "weight_tresca": 0.0,
    "weight_mohr_coulomb": 1.0,
    "weight_smp": 0.0,
}

__init__

__init__(
    phi: float,
    F1: float = 0.0,
    F2: float = 0.0,
    F12: float = 0.0,
    F13: float = 0.0,
    F23: float = 0.0,
    weight_mises: float = 0.0,
    weight_tresca: float = 0.0,
    weight_mohr_coulomb: float = 1.0,
    weight_smp: float = 0.0,
    *,
    unit: Literal["rad", "deg"] = "deg",
    vectorize: bool = True,
    fast_orthotropy: bool = True,
    **kwargs
)

residual staticmethod

residual(
    fitting_params: List[float],
    stress_states: ndarray,
    fitting_param_names: List[str],
    **kwargs
)

setCriterion

setCriterion(
    criterion: Literal[
        "Mises",
        "Tresca",
        "MohrCoulomb",
        "SMP",
        "Mises-SMP",
        "Tresca-MohrCoulomb",
    ],
    *args,
    **kwargs
)

Set the criterion to use.

setFabricTensor

setFabricTensor(
    *args: float | ndarray,
    r1: float = 0.0,
    r2: float = 0.0,
    r3: float = 0.0,
    unit: Literal["rad", "deg"] = "deg"
)

Set fabric tensor.

PARAMETER DESCRIPTION
args

A tuple of 5 floats for F1, F2, F12, F13, F23 or a 3x3 fabric tensor.

TYPE: float or ndarray DEFAULT: ()

r1

Rotation angle around axis-1, by default 0.0.

TYPE: float DEFAULT: 0.0

r2

Rotation angle around axis-2, by default 0.0.

TYPE: float DEFAULT: 0.0

r3

Rotation angle around axis-3, by default 0.0.

TYPE: float DEFAULT: 0.0

unit

Unit of rotation angles, by default "deg".

TYPE: Literal['rad', 'deg'] DEFAULT: 'deg'

setMises

setMises()

Use Mises criterion.

setMisesSMP

setMisesSMP(weight_mises: float = 0.5, weight_smp: float = 0.5)

Use Mises-SMP criterion.

setMohrCoulomb

setMohrCoulomb()

Use Mohr-Coulomb criterion.

setSMP

setSMP()

Use SMP criterion.

setTresca

setTresca()

Use Tresca criterion.

setTrescaMohrCoulomb

setTrescaMohrCoulomb(
    weight_tresca: float = 0.5, weight_mohr_coulomb: float = 0.5
)

Use Tresca-Mohr-Coulomb criterion.

Wang2025CA

Bases: Wang2025

F1 instance-attribute

F1 = F1

F2 property writable

F2: float

F3 property writable

F3: float

keys class-attribute instance-attribute

keys = ['phi', 'F1']

major_axes class-attribute instance-attribute

major_axes: int = major_axes

__init__

__init__(
    phi: float,
    F1: float | None = None,
    F2: float | None = None,
    F3: float | None = None,
    major_axes: int = 1,
    weight_mises: float = 0.0,
    weight_tresca: float = 0.0,
    weight_mohr_coulomb: float = 1.0,
    weight_smp: float = 0.0,
    *,
    unit: Literal["rad", "deg"] = "deg",
    vectorize: bool = True,
    fast_orthotropy: bool = True,
    **kwargs
)