Skip to content

Instantly share code, notes, and snippets.

@jchkoch
Last active June 2, 2024 20:59
Show Gist options
  • Save jchkoch/ced0142406d635ba0bc76b88feff67e3 to your computer and use it in GitHub Desktop.
Save jchkoch/ced0142406d635ba0bc76b88feff67e3 to your computer and use it in GitHub Desktop.
Cross-sectional Analysis of CLT using section-properties
import numpy as np
from sectionproperties.pre import Material
from sectionproperties.pre.library import rectangular_section
from sectionproperties.analysis import Section
timber0 = Material(
name="Timber0",
elastic_modulus=9.5e3,
poissons_ratio=0.35,
density=4.4e-7,
yield_strength=5.5,
color="burlywood",
)
timber90 = Material(
name="Timber90",
elastic_modulus=317,
poissons_ratio=0.35,
density=4.4e-7,
yield_strength=5.5,
color="orange",
)
s1 = rectangular_section(d=40, b=1000, material=timber0).shift_section(y_offset=-40)
s2 = rectangular_section(d=20, b=1000, material=timber90).shift_section(y_offset=-60)
s3 = rectangular_section(d=40, b=1000, material=timber0).shift_section(y_offset=-100)
geom = (s1 - s2) + (s2 - s3) + s3
geom = s1 + s2 + s3
#geom.plot_geometry(labels=("points", "facets"))
geom.create_mesh(mesh_sizes=[100, 50, 100])
sec = Section(geometry=geom)
#sec.plot_mesh()
sec.calculate_geometric_properties()
ixx, iyy, ixy = sec.get_eic() # get second moments of area
print(f"Ixx = {ixx:.5e} mm4")
print(f"Iyy = {iyy:.5e} mm4")
print(f"Ixy = {ixy:.5e} mm4")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment