Source code for weac.components.criteria_config
"""
Module for configuring failure-mode interaction criteria and stress failure envelope selection.
Main fields:
- fn, fm: interaction exponents for normal (sigma) and shear (tau) stresses (> 0).
- gn, gm: interaction exponents for mode-I (G_I) and mode-II (G_II) energy release rates (> 0).
- stress_envelope_method: one of
{"adam_unpublished", "schottner", "mede_s-RG1", "mede_s-RG2", "mede_s-FCDH"}.
- scaling_factor, order_of_magnitude: positive scalars applied to the stress envelope.
Typical usage:
from weac.components.criteria_config import CriteriaConfig
config = CriteriaConfig(
stress_envelope_method="schottner",
scaling_factor=1.0,
order_of_magnitude=1.0,
)
See also:
- weac.analysis.criteria_evaluator for how these parameters influence failure checks.
"""
from typing import Literal
from pydantic import BaseModel, Field
[docs]
class CriteriaConfig(BaseModel):
"""
Parameters defining the interaction between different failure modes.
Attributes
----------
fn : float
Failure mode interaction exponent for normal stress (sigma). Default is 2.0.
fm : float
Failure mode interaction exponent for shear stress (tau). Default is 2.0.
gn : float
Failure mode interaction exponent for closing energy release rate (G_I). Default is 5.0.
gm : float
Failure mode interaction exponent for shearing energy release rate (G_II). Default is 2.22.
stress_envelope_method : str
Method to calculate the stress failure envelope. Default is "adam_unpublished".
scaling_factor : float
Scaling factor for stress envelope. Default is 1.0.
order_of_magnitude : float
Order of magnitude for stress envelope. Default is 1.0.
"""
fn: float = Field(
default=2.0,
gt=0,
description="Failure mode interaction exponent for normal stress (sigma)",
)
fm: float = Field(
default=2.0,
gt=0,
description="Failure mode interaction exponent for shear stress (tau)",
)
gn: float = Field(
default=1 / 0.2,
gt=0,
description="Failure mode interaction exponent for closing energy release rate (G_I)",
)
gm: float = Field(
default=1 / 0.45,
gt=0,
description="Failure mode interaction exponent for shearing energy release rate (G_II)",
)
stress_envelope_method: Literal[
"adam_unpublished", "schottner", "mede_s-RG1", "mede_s-RG2", "mede_s-FCDH"
] = Field(
default="adam_unpublished",
description="Method to calculate the stress failure envelope",
)
scaling_factor: float = Field(
default=1,
gt=0,
description="Scaling factor for stress envelope",
)
order_of_magnitude: float = Field(
default=1,
gt=0,
description="Order of magnitude for stress envelope",
)