Section Analysis is a module that enables the modelling and analysis of custom cross-sections. Section Analysis is helpful for the evaluation of section properties and nonlinear response.
You can try the module via Google Colab.
To access SecAn and its functions import it in your Python code like this:
import secan as sa
We shorten the imported name to sa for better code readability using SecAn.
import secan as sa
The first step is to define the materials.
concrete_25 = sa.material.Concrete(fc=25e6)
steel_500 = sa.material.Steel(young=210e9,
fy=500e6,
ultimate_strain=10e-3)
Note: Be aware that SecAn does not apply any partial safety factors, so their application should be done before creating the material.
The second step is to create concrete geometries.
rect_20x60 = sa.geometry.Rect_section(width=0.2,
height=0.6,
material=concrete_25)
In this step we create the beam Object with the concrete geometries.
beam = sa.Section(section=[rect_20x60])
Now it is time to add the rebars to the beam.
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(-.07, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(-0.03, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(0.03, -0.27))
beam.addSingleRebar(diameter=16e-3,
material=steel_500,
position=(.07, -0.27))
Let's check our beam by drawing its cross-section.
beam.plot_section()
beam.plot_moment_curvature(k_max=0.025)
beam.get_max_moment()
# 211866
We can verify if the beam can support a specific load combination.
e0, k = beam.check_section(normal=0,
moment=211866)
# e0: 0.00443
# k: 0.01801
We can check the beam's behaviour by inspecting the stress and strain distribution.
beam.plot_stress_strain(e0,k)