Skip to content

GeometricTransformation2D

GeometricTransformation2D

GeometricTransformation2D(transf_type: str, d_xi: float | str = 0.0, d_yi: float | str = 0.0, d_xj: float | str = 0.0, d_yj: float | str = 0.0, description: str = '')

Bases: GeometricTransformation

Represents a 2D geometric transformation for OpenSees beam-column elements.

GeometricTransformation2D defines how 2D beam-column elements transform nodal forces and displacements between local and global coordinate systems. It supports transformation formulations (such as 'Linear', 'PDelta', or 'Corotational') and optional joint offsets at the element ends.

Tcl form

geomTransf <transf_type> <tag> [-jntOffset <d_xi> <d_yi> <d_xj> <d_yj>]

Example
from femora.core.model import Model

model = Model()
transf2d = model.transformation.transformation2d(
    transf_type="Linear",
    d_xi=0.1,
    d_yi=0.05,
    description="Linear transformation with offsets",
)
print(transf2d.tag)

Create a 2D geometric transformation.

Parameters:

Name Type Description Default
transf_type str

Type of geometric transformation (e.g., 'Linear', 'PDelta', 'Corotational').

required
d_xi float | str

Joint offset in the local x-direction at start node I.

0.0
d_yi float | str

Joint offset in the local y-direction at start node I.

0.0
d_xj float | str

Joint offset in the local x-direction at end node J.

0.0
d_yj float | str

Joint offset in the local y-direction at end node J.

0.0
description str

Optional description for the transformation.

''

Methods:

has_joint_offsets

has_joint_offsets() -> bool

Check if the transformation has non-zero joint offsets.

Returns:

Type Description
bool

True if any joint offset exceeds self.eps in absolute magnitude,

bool

False otherwise.