Skip to content

GeometricTransformation3D

GeometricTransformation3D

GeometricTransformation3D(transf_type: str, vecxz_x: float | str, vecxz_y: float | str, vecxz_z: float | str, d_xi: float | str = 0.0, d_yi: float | str = 0.0, d_zi: float | str = 0.0, d_xj: float | str = 0.0, d_yj: float | str = 0.0, d_zj: float | str = 0.0, description: str = '')

Bases: GeometricTransformation

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

GeometricTransformation3D defines how 3D beam-column elements transform nodal forces and displacements between local and global coordinate systems. It requires a vecxz vector to define the orientation of the local x-z plane, and supports optional joint offsets at the element ends.

Tcl form

geomTransf <transf_type> <tag> <vecxz_x> <vecxz_y> <vecxz_z> [-jntOffset <d_xi> <d_yi> <d_zi> <d_xj> <d_yj> <d_zj>]

Warning
  • The local z-axis orientation vector vecxz cannot have a zero magnitude.
Example
from femora.core.model import Model

model = Model()
transf3d = model.transformation.transformation3d(
    transf_type="Linear",
    vecxz_x=0.0,
    vecxz_y=0.0,
    vecxz_z=1.0,
    d_xi=0.1,
    d_yj=0.05,
)
print(transf3d.tag)

Create a 3D geometric transformation.

Parameters:

Name Type Description Default
transf_type str

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

required
vecxz_x float | str

X-component of a vector in the global coordinate system that defines the local x-z plane.

required
vecxz_y float | str

Y-component of the local z-orientation vector.

required
vecxz_z float | str

Z-component of the local z-orientation vector.

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_zi float | str

Joint offset in the local z-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
d_zj float | str

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

0.0
description str

Optional description for the transformation.

''

Raises:

Type Description
ValueError

If the vecxz vector components define a zero-magnitude vector.

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.