steel01
steel01
Uniaxial Steel01 hysteretic material wrapping OpenSees Steel01.
Attributes
Classes
Material
Bases: ABC
Abstract base class for manager-owned OpenSees material objects.
Material instances do not self-register and do not assign their own tags.
A :class:~femora.core.material_manager.MaterialManager owns lifecycle
operations, tag assignment, removal, and retagging for a local model context.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
material_type
|
str
|
OpenSees material category (e.g. |
required |
material_name
|
str
|
Concrete OpenSees material name (e.g. |
required |
user_name
|
str
|
User-specified label for this material instance. |
required |
Attributes:
| Name | Type | Description |
|---|---|---|
tag |
Optional[int]
|
Manager-assigned OpenSees material tag. Remains |
_owner |
object | None
|
Reference to the owning manager, or |
Methods:
to_tcl
abstractmethod
Render the OpenSees material definition command as a Tcl string.
updateMaterialStage
Return an updateMaterialStage Tcl command, or empty string.
Steel01Material
Steel01Material(user_name: str = 'Unnamed', *, Fy: float | None = None, E0: float | None = None, b: float | None = None, a1: float | None = None, a2: float | None = None, a3: float | None = None, a4: float | None = None, **_: Any)
Bases: Material
Bilinear steel plasticity with kinematic hardening and optional isotropic growth.
Implements the OpenSees Steel01 rule for truss, fiber, or spring
elements. Yield force is set by Fy with initial elastic stiffness
E0 and strain-hardening ratio b. Optional parameters a1 to
a4 enable isotropic expansion of the yield surface and must be
provided together or omitted entirely.
Tcl form
uniaxialMaterial Steel01 <tag> Fy E0 b [a1 a2 a3 a4]; #
Note
- When all four isotropic parameters exist, they emit after
bexactly as OpenSees expects. - If the isotropic hardening set is omitted, the Tcl command ends after
b. - Stray keyword arguments are ignored to keep factory calls forward compatible.
Attributes:
| Name | Type | Description |
|---|---|---|
params |
Holds |
Example
Validate yield, stiffness, and optional isotropic hardening inputs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_name
|
str
|
Unique Femora and OpenSees material label surfaced in Tcl. |
'Unnamed'
|
Fy
|
float | None
|
Yield strength, strictly positive after coercion. |
None
|
E0
|
float | None
|
Initial elastic modulus, strictly positive. |
None
|
b
|
float | None
|
Post-yield stiffness ratio |
None
|
a1
|
float | None
|
Isotropic coefficient for compression envelope widening. |
None
|
a2
|
float | None
|
Isotropic exponent paired with |
None
|
a3
|
float | None
|
Isotropic coefficient for tension envelope widening. |
None
|
a4
|
float | None
|
Isotropic exponent paired with |
None
|
**_
|
Any
|
Ignored keyword cushioning. |
{}
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
ValueError
|
If a numeric parameter cannot be converted correctly. |
ValueError
|
If a validated value falls outside the supported range. |
ValueError
|
If only part of the isotropic hardening set is provided. |
Methods:
to_tcl
Emit Steel01 with optional isotropic arguments.
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Tcl text including |
str
|
parameters when all were supplied at construction. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the material has not been registered with a manager. |