pressure_depend_multi_yield
pressure_depend_multi_yield
Pressure-dependent multi-yield soil plasticity (OpenSees PressureDependMultiYield).
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.
PressureDependMultiYieldMaterial
Bases: Material
Layered-yield soil plasticity with evolving strength versus confining stress.
This model targets saturated soil elements that require confining-stress dependent stiffness together with nested yield surfaces or a user-defined backbone to capture nonlinear soil response. Parameter names follow the OpenSees command vocabulary directly.
Tcl form
nDMaterial PressureDependMultiYield <tag> nd rho Gr Br ... liquefac3 noYieldSurf [gamma Gs ...] e cs1 cs2 cs3 pa c; #
Note
ndmust be2for plane strain or3for three-dimensional use.- Positive
noYieldSurfrequests auto-generated nested yield surfaces. - Negative
noYieldSurfswitches to user-defined backbone input withabs(noYieldSurf)(gamma, Gs)pairs. - Supplied
pairsmay be a flat list[g1, Gs1, ...]or a list of(gamma, Gs)tuples. - Unrecognized keyword arguments are ignored for compatibility.
Example
from femora.core.model import Model
model = Model()
mat = model.material.nd.pressure_depend_multi_yield(
user_name="profiled_soil",
nd=3,
rho=2.0,
refShearModul=1.0e5,
refBulkModul=3.0e5,
frictionAng=37.0,
peakShearStra=0.1,
refPress=80.0,
pressDependCoe=0.5,
PTAng=27.0,
contrac=0.05,
dilat1=0.6,
dilat2=3.0,
liquefac1=5.0,
liquefac2=0.003,
liquefac3=1.0,
noYieldSurf=20,
)
print(mat.tag)
Construct the material from keyword arguments matching OpenSees naming.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_name
|
str
|
Label placed in the trailing Tcl comment once managed. |
'Unnamed'
|
nd
|
Spatial dimension flag, either |
required | |
rho
|
Saturated mass density, strictly positive in model units. |
required | |
refShearModul
|
Reference low-strain shear modulus at |
required | |
refBulkModul
|
Reference bulk modulus at |
required | |
frictionAng
|
Peak friction angle in degrees. |
required | |
peakShearStra
|
Octahedral shear strain at peak strength, strictly positive. |
required | |
refPress
|
Reference mean effective stress, strictly positive. |
required | |
pressDependCoe
|
Non-negative confinement dependence coefficient. |
required | |
PTAng
|
Phase-transformation angle in degrees. |
required | |
contrac
|
Contractive plasticity parameter. |
required | |
dilat1
|
First dilatancy parameter. |
required | |
dilat2
|
Second dilatancy parameter. |
required | |
liquefac1
|
Liquefaction parameter 1. |
required | |
liquefac2
|
Liquefaction parameter 2. |
required | |
liquefac3
|
Liquefaction parameter 3. |
required | |
noYieldSurf
|
Surface count or negative custom-backbone selector. |
required | |
pairs
|
Custom backbone data required when |
required | |
e
|
Optional void ratio, default |
required | |
cs1
|
Optional critical-state coefficient, default |
required | |
cs2
|
Optional critical-state coefficient, default |
required | |
cs3
|
Optional critical-state coefficient, default |
required | |
pa
|
Optional atmospheric or reference pressure, default |
required | |
c
|
Optional cohesion-like intercept, default |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If a required Tcl argument is missing. |
ValueError
|
If a numeric Tcl argument cannot be converted correctly. |
ValueError
|
If any validated value falls outside the supported range. |
Methods:
to_tcl
Flatten parameters into the long OpenSees PressureDependMultiYield line.
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Tcl text beginning with |
str
|
followed by the primary soil parameters, |
|
str
|
backbone scalars, and the trailing |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the material is not yet tagged by a manager. |
updateMaterialStage
Return Tcl that toggles elastic staging for staged analysis workflows.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state
|
str
|
|
required |
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
An |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the material tag is still |