Skip to content

ElasticBeamColumnElement

ElasticBeamColumnElement

ElasticBeamColumnElement(ndof: int, section: Union[Section, int, str], transformation: Union[GeometricTransformation, int, str], massDens: float = 0.0, cMass: bool = False, **kwargs)

Bases: Element

Linear elastic beam-column element for frame models.

This two-node element uses aggregate section stiffness and a geometric transformation to represent linear elastic frame response. It supports 2D models with 3 DOFs per node and 3D models with 6 DOFs per node.

Tcl form

element elasticBeamColumn <tag> <iNode> <jNode> <secTag> <transfTag> <-mass massDens> <-cMass>

Note
  • Requires a managed Section and GeometricTransformation with assigned tags before Tcl export.
  • Stiffness comes from the section definition, not a direct material assignment on the element.

Attributes:

Name Type Description
massDens

Mass density per unit length used for optional lumped or consistent mass matrix formation.

cMass

When True, request a consistent mass matrix instead of the default lumped formulation.

Example
from femora.core.model import Model
import femora.components.section.beam  # noqa: F401

model = Model()
sec = model.section.beam.elastic(
    user_name="Column",
    E=29000.0,
    A=20.0,
    Iz=500.0,
    Iy=500.0,
    G=11200.0,
    J=10.0,
)
transf = model.transformation.transformation3d(
    transf_type="Linear",
    vecxz_x=0.0,
    vecxz_y=0.0,
    vecxz_z=1.0,
)
ele = model.element.beam.elastic(
    ndof=6,
    section=sec,
    transformation=transf,
)
print(ele.tag)

Create an ElasticBeamColumnElement with validated dependencies.

Parameters:

Name Type Description Default
ndof int

Number of DOFs per node. Must be 3 for 2D or 6 for 3D.

required
section Union[Section, int, str]

Managed section object defining axial and bending stiffness.

required
transformation Union[GeometricTransformation, int, str]

Managed geometric transformation defining the local element axis.

required
massDens float

Optional mass per unit length for dynamic analyses.

0.0
cMass bool

When True, use a consistent mass matrix.

False
**kwargs

Additional element parameters stored on the base element.

{}

Raises:

Type Description
ValueError

If ndof is unsupported, if the section or transformation is missing, if mass density is negative, or if dependencies cannot be resolved.

Methods:

get_mass_per_length

get_mass_per_length() -> float

Return the mass density per unit length.

Returns:

Type Description
float

Mass per unit length assigned to this element.