Composite beam#

Units: Millimeter [mm], Newton [N]

Geometries and materials#

This template creates a composite beam with the following parts:

  • concrete slab 2000x100 with concrete of type C30/35

  • with top-rebar-layer 10/200, \(c_\mathrm{nom}\) = 25 mm

  • and bottom-rebar-layer 10/100, \(c_\mathrm{nom}\) = 25 mm

  • HEB 200 steel profile of steel-grade S355

The concrete slab is an ordinary rectangle of width=2000 and height=100 mm. The concrete-material-strength is computed in line with EN 1992-1-1, Tab. 3.1 [1] \(f_\mathrm{cm} = f_\mathrm{ck} + 8 = 30 + 8 = 38\) N/mm². Under compression a non-linear behaviour of the concrete is assumed. Under tension the concrete-stress drop to zero after reaching the concrete tensile strength \(f_\mathrm{ctm}\) that is also computed following EN 1992-1-1, Tab. 3.1 [1].

The geometry-values of the Symmetric steel profile are:

  • top_edge=100: applies to the height of the concrete-section as the top of the steel profile is arranged at the bottom of the concrete slab.

  • b_fo=200: width of the top-flange \(b_\mathrm{fo} = 200\) mm (and the bottom-flange due to the symmetric profile)

  • t_fo=15: thickness of the top-flange \(t_\mathrm{fo} = 15\) mm (and the bottom-flange due to the symmetric profile)

  • h_w=200-2*15: height of the steel web \(h_\mathrm{w} = 200-2 \cdot 15 = 170\) mm

  • t_w=9.5: thickness of the steel web \(t_\mathrm{w} = 9.5\) mm

The material-model of the HEB200-profile is isotropic steel using following values:

  • f_y=355: yield strength of the steel \(f_\mathrm{y} = 355\) N/mm²

  • f_y=400: tensile strength of the steel \(f_\mathrm{u} = 400\) N/mm²

  • failure_strain=0.15: failure strain of the steel \(\varepsilon_\mathrm{u} = 15\) %

../../_images/template_geometry_composite_beam-light.svg
../../_images/template_geometry_composite_beam-dark.svg

Geometry: Composite beam#

Defined stress-strain-relationship of structural steel and reinforcement
Defined stress-strain-relationship of structural steel and reinforcement

Material: Bi-linear stress-strain-relationship with hardening of steel#

Defined non-linear stress-strain-relationship of concrete in compression acc. to EN 1992-1-1
Defined non-linear stress-strain-relationship of concrete in compression acc. to EN 1992-1-1

Material: Concrete non-linear stress-strain-relationship in compression acc. EN 1992-1-1 [1]#

Stress-strain-relationship of concrete in tension
Stress-strain-relationship of concrete in tension

Material: Stress-strain-relationship of concrete in tension#

Composite cross-section#

>>> from m_n_kappa import IProfile, Steel, Rectangle, Concrete, RebarLayer, Reinforcement
>>> concrete_slab = Rectangle(top_edge=0.0, bottom_edge=100, width=2000)
>>> concrete = Concrete(f_cm=30+8, )
>>> concrete_section = concrete_slab + concrete
>>> reinforcement = Reinforcement(f_s=500, f_su=550, failure_strain=0.15)
>>> top_layer = RebarLayer(
...     centroid_z=25, width=2000, rebar_horizontal_distance=200, rebar_diameter=10)
>>> top_rebar_layer = reinforcement + top_layer
>>> bottom_layer = RebarLayer(
...     centroid_z=75, width=2000, rebar_horizontal_distance=100, rebar_diameter=10)
>>> bottom_rebar_layer = reinforcement + bottom_layer
>>> i_profile = IProfile(
...     top_edge=100.0, b_fo=200, t_fo=15, h_w=200-2*15, t_w=15, centroid_y=0.0)
>>> steel = Steel(f_y=355.0, f_u=400, failure_strain=0.15)
>>> steel_section = i_profile + steel
>>> cross_section = concrete_section + top_rebar_layer + bottom_rebar_layer + steel_section

As nothing is passed to the compression_stress_strain-argument of Concrete, the 'Nonlinear' stress-strain-relationship is applied (default). Tension is considered for Concrete, but may be neglected by passing use_tension=False.

Computation#

The cross_section you created above is the basis to do a variety of computations:

In case you want to compute a single curvature-value from a given strain at a given position, you first have to define strain and its position using StrainPosition strain_position is the boundary-condition, that is passed to MKappaByStrainPosition that is computing the curvature.

>>> from m_n_kappa import StrainPosition, MKappaByStrainPosition
>>> strain_position = StrainPosition(strain=-0.002, position=0.0, material="")
>>> computation = MKappaByStrainPosition(
...     cross_section=cross_section,
...     strain_position = strain_position,
...     positive_curvature=True)

After computation you can extract the results as follows:

See also

Moment-Curvature-Curve: further explanations regarding computation of a single moment-curvature-point

The \(M\)-\(\kappa\)-curve is easily computed by passing the created cross_section to MKappaCurve. You only have to decide if you want only the positive moment-curvature-points, the negative moment-curvature-points or both.

>>> from m_n_kappa import MKappaCurve
>>> positive_m_kappa = MKappaCurve(cross_section=cross_section)
>>> negative_m_kappa = MKappaCurve(
...     cross_section=cross_section,
...     include_positive_curvature=False,
...     include_negative_curvature=True)
>>> full_m_kappa = MKappaCurve(
...     cross_section=cross_section,
...     include_positive_curvature=True,
...     include_negative_curvature=True)

The computed points are then stored in the attribute m_kappa_points that returns MKappaCurvePoints-object.

See also

Moment-Curvature-Curve : further explanation regarding computation of the Moment- Curvature-Curve

For computation of the \(M\)-\(\kappa\)-curves in a beam you need the loading-scenario beside your cross_section. And you should decide in how many elements the beam shall be split into (see element_number). In case you also want to consider the effective widths you may set consider_widths=True.

>>> from m_n_kappa import SingleSpanUniformLoad, Beam
>>> loading = SingleSpanUniformLoad(length=8000, load=1.0)
>>> beam = Beam(cross_section=cross_section, element_number=10, load=loading)
>>> beam_consider_widths = Beam(
...     cross_section=cross_section,
...     element_number=10,
...     load=loading,
...     consider_widths=True)

The computed beams allow you to do a number of analysis, like:

See also

Loading: further explanation of loading scenarios

Deformation : further explanation regarding computation of beam-deformation

References#