Skip to content

UniaxialSection

UniaxialSection

UniaxialSection(user_name: str = 'Unnamed', *, material: Union[int, str, Material], response_code: str = 'P')

Bases: Section

Section defined by a single uniaxial material response.

This section type wraps a single uniaxial material and maps it to a specific section degree of freedom (e.g., axial force, bending moment). It is most commonly used as a component within an AggregatorSection to build complex multi-DOF section models.

Tcl form

section Uniaxial <tag> <matTag> <responseCode>

Note
  • The response_code determines which internal force result the material provides (e.g., 'P' for axial, 'Mz' for strong-axis bending).
  • This section is essentially a pass-through to the underlying material tangent and stress.
Tip
  • If you need a section that only resists one type of force (like a purely axial brace), this is the most efficient section choice.
  • Combine multiple UniaxialSection instances using an Aggregator to create custom sections with uncoupled behaviors (e.g., nonlinear flexure with linear shear).
Example
from femora.core.model import Model
import femora.components.section.beam  # noqa: F401

model = Model()
mat = model.material.uniaxial.elastic(user_name="SteelMat", E=29000.0)
sec = model.section.beam.uniaxial(
    user_name="AxialBrace",
    material=mat,
    response_code="P",
)
print(sec.tag)

Create a UniaxialSection with validated material and response code.

Parameters:

Name Type Description Default
user_name str

User-specified name for the section.

'Unnamed'
material Union[int, str, Material]

Uniaxial material reference (object, tag, or name).

required
response_code str

Section response code. Must be one of: 'P', 'Mz', 'My', 'Vy', 'Vz', 'T'.

'P'

Raises:

Type Description
ValueError

If the response code is invalid or the material cannot be resolved.