Skip to content

linear_elastic_ggmax

linear_elastic_ggmax

Linear elastic nD material with modulus reduction curves (LinearElasticGGmax).

Attributes

__all__ module-attribute

__all__ = ['LinearElasticGGmaxMaterial']

Classes

Material

Material(material_type: str, material_name: str, user_name: str)

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. 'nDMaterial').

required
material_name str

Concrete OpenSees material name (e.g. 'ElasticIsotropic').

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 None until this object is added to a :class:~femora.core.material_manager.MaterialManager.

_owner object | None

Reference to the owning manager, or None when unmanaged.

Methods:
to_tcl abstractmethod
to_tcl() -> str

Render the OpenSees material definition command as a Tcl string.

updateMaterialStage
updateMaterialStage(state: str) -> str

Return an updateMaterialStage Tcl command, or empty string.

set_parameter
set_parameter(parameter_name: str, new_value: Union[float, int, str, None] = None, element_tags: Optional[List[int]] = None) -> str

Return a setParameter Tcl command, or empty string.

get_param
get_param(key: str) -> Any

Return the value of a stored parameter by key.

LinearElasticGGmaxMaterial

LinearElasticGGmaxMaterial(user_name: str = 'Unnamed', *, G: float | None = None, K_or_nu: float | None = None, rho: float = 0.0, curveType: int = 1, pairs: Union[Sequence[Tuple[float, float]], Sequence[float], None] = None, param1: float | None = None, param2: float | None = None, param3: float | None = None, **_: Any)

Bases: Material

Linear elastic soil skeleton with shear-modulus degradation versus strain.

OpenSees evaluates an effective modulus path using a selectable backbone: tabulated (gamma, G/Gmax), Hardin-Drnevich style, Vucetic-Dobry, or Darendeli, controlled by curveType. Bulk response is supplied via K_or_nu: values in the special OpenSees ratio range are interpreted as Poisson's ratio, and larger magnitudes are treated as bulk modulus.

Tcl form

nDMaterial LinearElasticGGmax <tag> G K_or_nu rho curveType [tail]; #

Note
  • For curveType == 0, you may omit pairs entirely or supply a user-defined backbone of gamma versus normalized G/Gmax.
  • Positive rho enforcement matches OpenSees mass-density usage.
  • The caller is responsible for unit consistency across G, rho, and the chosen interpretation of K_or_nu.
Example
from femora.core.model import Model

model = Model()
mat = model.material.nd.linear_elastic_ggmax(
    user_name="site_curve",
    G=62.0,
    K_or_nu=0.3,
    rho=18.8,
    curveType=1,
    param1=1e-4,
)
print(mat.tag)

Create a LinearElasticGGmax material with backbone validation rules.

Parameters:

Name Type Description Default
user_name str

Unique label referenced in Tcl export comments under the owning material manager.

'Unnamed'
G float | None

Small-strain shear modulus G_max, strictly greater than zero.

None
K_or_nu float | None

Interpreted by OpenSees as Poisson's ratio in the special range, otherwise as bulk modulus.

None
rho float

Saturated density for mass coupling, required to be non-negative.

0.0
curveType int

Integer backbone selector {0, 1, 2, 3}.

1
pairs Union[Sequence[Tuple[float, float]], Sequence[float], None]

User-defined backbone data for curveType == 0, either as a sequence of (gamma, G/Gmax) tuples or a flattened sequence [gamma1, GG1, gamma2, GG2, ...].

None
param1 float | None

Curve-specific scalar used by built-in backbone types.

None
param2 float | None

Darendeli-specific parameter used when curveType == 3.

None
param3 float | None

Darendeli-specific parameter used when curveType == 3.

None
**_ Any

Ignored compatibility keyword arguments.

{}

Raises:

Type Description
ValueError

If G or K_or_nu is missing.

ValueError

If rho is negative or curveType is unsupported.

ValueError

If user-defined backbone data are malformed.

Methods:
to_tcl
to_tcl() -> str

Emit Tcl with modulus inputs, curve selector, then curve tail values.

Returns:

Name Type Description
str str

Tcl line beginning with nDMaterial LinearElasticGGmax.

str

Curve 0 appends flattened backbone pairs; curves 1 to 3

str

append the corresponding built-in curve parameters.

Raises:

Type Description
ValueError

If the material is unmanaged, thus lacking a valid tag.