Frame Analysis#
This example demonstrates how to perform a frame analysis in sectionproperties
.
A frame
analysis calculates only the cross-section properties required for a frame analysis:
Cross-section area
Second moments of area about the centroidal axis
Torsion constant
Principal axis angle
As a result, it is significantly more efficient than conducting both geometric
and warping
analyses, which is ususally required to obtain the above results.
This example will analyse a 12-sided polygonal hollow section and compare the time taken for a typical warping analysis with that taken for a frame analysis.
Create Geometry and Section#
[1]:
from sectionproperties.analysis import Section
from sectionproperties.pre.library import polygon_hollow_section
geom = polygon_hollow_section(d=600, t=12, n_sides=12, r_in=20, n_r=8)
geom.create_mesh(mesh_sizes=20)
sec = Section(geometry=geom)
sec.plot_mesh(materials=False)
[1]:
<Axes: title={'center': 'Finite Element Mesh'}>
Geometric and Warping Analysis#
First we can time how long it takes to perform a geometric and warping analysis.
[2]:
import time
start = time.time()
sec.calculate_geometric_properties()
sec.calculate_warping_properties()
end = time.time()
gw_time = end - start
We can print the time taken and the torsion constant to compare results.
[3]:
print(f"Geometric/Warping Time = {gw_time:.4f} secs")
print(f"J = {sec.get_j():.3e} mm4")
Geometric/Warping Time = 4.5136 secs
J = 1.769e+09 mm4
Frame Analysis#
Now we can time how long it takes to perform a frame analysis.
[4]:
start = time.time()
sec.calculate_frame_properties()
end = time.time()
f_time = end - start
Again, we can print the time taken and the torsion constant.
[5]:
print(f"Frame Time = {f_time:.4f} secs")
print(f"J = {sec.get_j():.3e} mm4")
Frame Time = 1.4090 secs
J = 1.769e+09 mm4
By not calculating shear functions, shear & warping integrals etc. required for a full warping analysis, significant time is saved if the user only wants frame properties.