Calculating Area Properties

This example demonstrates how to create a simple reinforced concrete cross-section and obtain the gross area properties. We start by importing the necessary modules.

[1]:
from sectionproperties.pre.library import concrete_rectangular_section

from concreteproperties import (
    Concrete,
    ConcreteLinear,
    ConcreteSection,
    RectangularStressBlock,
    SteelBar,
    SteelElasticPlastic,
)

Assign Materials

The materials used in this example will be 32 MPa concrete and 500 MPa steel, specified in accordance with AS 3600:2018.

[2]:
concrete = Concrete(
    name="32 MPa Concrete",
    density=2.4e-6,
    stress_strain_profile=ConcreteLinear(elastic_modulus=30.1e3),
    ultimate_stress_strain_profile=RectangularStressBlock(
        compressive_strength=32,
        alpha=0.802,
        gamma=0.89,
        ultimate_strain=0.003,
    ),
    flexural_tensile_strength=3.4,
    colour="lightgrey",
)

steel = SteelBar(
    name="500 MPa Steel",
    density=7.85e-6,
    stress_strain_profile=SteelElasticPlastic(
        yield_strength=500,
        elastic_modulus=200e3,
        fracture_strain=0.05,
    ),
    colour="grey",
)

Create Geometry and Concrete Section

The section being analysed in this example is a 600D x 400W rectangular beam. The reinforcement detailed is 3N20 top bars and 3N24 bottom bars, with 30 mm of cover. The geometry is generated using the sectionproperties concrete sections library.

[3]:
geom = concrete_rectangular_section(
    d=600,
    b=400,
    dia_top=20,
    area_top=310,
    n_top=3,
    c_top=30,
    dia_bot=24,
    area_bot=450,
    n_bot=3,
    c_bot=30,
    conc_mat=concrete,
    steel_mat=steel,
)

conc_sec = ConcreteSection(geom)
conc_sec.plot_section()
../_images/examples_area_properties_6_0.svg
[3]:
<Axes: title={'center': 'Reinforced Concrete Section'}>

Gross Properties

Creating a ConcreteSection object automatically calculates the gross area properties of the reinforced concrete cross-section. These can be obtained by using the get_gross_properties() method. The section properties can be printed by calling the print_results() method.

[4]:
gross_props = conc_sec.get_gross_properties()
gross_props.print_results()
      Gross Concrete Section Properties       
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Property                            Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ Total Area                   240.0 x 10^3 │
│ Concrete Area                237.7 x 10^3 │
│ Lumped Reinforcement Area    2.280 x 10^3 │
│ Axial Rigidity (EA)          7.611 x 10^9 │
│ Mass (per unit length)      588.4 x 10^-3 │
│ Perimeter                    2.000 x 10^3 │
├───────────────────────────┼────────────────┤
│ E.Qx                        2.265 x 10^12 │
│ E.Qy                        1.522 x 10^12 │
│ x-Centroid                          200.0 │
│ y-Centroid                          297.6 │
│ x-Centroid (Gross)                  200.0 │
│ y-Centroid (Gross)                  300.0 │
├───────────────────────────┼────────────────┤
│ E.Ixx_g                     916.8 x 10^12 │
│ E.Iyy_g                     407.3 x 10^12 │
│ E.Ixy_g                     453.1 x 10^12 │
│ E.Ixx_c                     242.6 x 10^12 │
│ E.Iyy_c                     102.8 x 10^12 │
│ E.Ixy_c                    -187.5 x 10^-3 │
│ E.I11                       242.6 x 10^12 │
│ E.I22                       102.8 x 10^12 │
│ Principal Axis Angle           0.000 rads │
├───────────────────────────┼────────────────┤
│ E.Zxx+                       802.4 x 10^9 │
│ E.Zxx-                       815.3 x 10^9 │
│ E.Zyy+                       514.2 x 10^9 │
│ E.Zyy-                       514.2 x 10^9 │
│ E.Z11+                       802.4 x 10^9 │
│ E.Z11-                       815.3 x 10^9 │
│ E.Z22+                       514.2 x 10^9 │
│ E.Z22-                       514.2 x 10^9 │
├───────────────────────────┼────────────────┤
│ Ultimate Concrete Strain    3.000 x 10^-3 │
└───────────────────────────┴────────────────┘

Transformed Properties

The above section properties are multiplied by the elastic moduli, e.g. axial rigidity (EA) and flexural rigidity (EI). Transformed section properties can be obtained using get_transformed_gross_properties() and providing a reference elastic_modulus.

[5]:
transformed_props = conc_sec.get_transformed_gross_properties(elastic_modulus=30.1e3)
transformed_props.print_results()
 Transformed Gross Concrete  
     Section Properties      
┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃ Property           Value ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│ E_ref       30.10 x 10^3 │
│ Area        252.9 x 10^3 │
├──────────┼────────────────┤
│ Qx          75.26 x 10^6 │
│ Qy          50.57 x 10^6 │
│ Ixx_g       30.46 x 10^9 │
│ Iyy_g       13.53 x 10^9 │
│ Ixy_g       15.05 x 10^9 │
│ Ixx_c       8.061 x 10^9 │
│ Iyy_c       3.417 x 10^9 │
│ Ixy_c     -6.229 x 10^-6 │
│ I11         8.061 x 10^9 │
│ I22         3.417 x 10^9 │
├──────────┼────────────────┤
│ Zxx+        26.66 x 10^6 │
│ Zxx-        27.08 x 10^6 │
│ Zyy+        17.08 x 10^6 │
│ Zyy-        17.08 x 10^6 │
│ Z11+        26.66 x 10^6 │
│ Z11-        27.08 x 10^6 │
│ Z22+        17.08 x 10^6 │
│ Z22-        17.08 x 10^6 │
└──────────┴────────────────┘