Skip to content

Add rectangular CLT section to (new) timber sections library #466

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

jchkoch
Copy link

@jchkoch jchkoch commented Oct 12, 2024

Feature Timber Sections

Discussion: #437

This is a start at adding timber cross-section analysis. Please let me know what you think of the approach to add timber sections. So far I have added geometry creation of layered timber sections. I have added tests for the code that I have written so far.

Moving forward I will be checking and validating the results from the cross-sectional properties calculated for the sections as well as the stress analysis modules.

  • Added tests for changed code.
  • Updated documentation for changed code.
  • Run the Nox test suite to check for errors and warnings.

@robbievanleeuwen
Copy link
Owner

Looks promising! I think this would be a worthy addition to sectionproperties.

I've also included @connorferster as a reviewer as I believe he has more timber expertise than myself!

Looking forward to reviewing the complete PR!

FYI - the docs for this PR can be found here.

@connorferster
Copy link
Collaborator

connorferster commented Oct 28, 2024

I think it looks good! @jchkoch Glad you dropped the timber rectangular section in favour of the CLT section. Setting the shear modulus of the cross-lams via the elastic_modulus and poissons_ratio is the way to do it but it sure feels weird to see it (just a general comment, not a reason to change anything).

If we can get the tests passing, then I am good to go on this one.

Edit: Just added a couple of comments.

@jchkoch
Copy link
Author

jchkoch commented Dec 14, 2024

@connorferster Thanks for the comments. Unfortunately, I became somewhat busy and haven't managed to follow up. However, I should have a bit more time going forward.

@robbievanleeuwen
Copy link
Owner

robbievanleeuwen commented Dec 18, 2024

Thanks for checking in @jchkoch. If you don't mind I can update your feature branch to the current state of sectionproperties, in which the CI/CD has changed a little bit since this PR was opened (not sure if you can see the "Update branch" button below- happy for you to click this if you can see it!)

@jchkoch
Copy link
Author

jchkoch commented Jan 22, 2025

Hi @robbievanleeuwen, I have updated the pull request as discussed above to address @connorferster comments as well as merging the commits from the main branch into my feature branch. I have also updated the docs with the new function clt_rectangular_section under section.rst. The docs seem to be able to build properly.

However, when validating the results of a geometric analysis (in the example jupyter notebook section_library.ipynb) of a CLT section the moment of inertia of the minor axis (Iyy) seems to not be correct. The major axis is correct. I have not been able to find the error so far. Will try again in the next few days.

Computed:

eixx, eiyy, _ = sec.get_eic(e_ref=timber0)
print(f"I_eff,x = {eixx:.3e} mm4")
print(f"I_eff,y = {eiyy:.3e} mm4")

I_eff,x = 1.388e+08 mm4
I_eff,y = 6.778e+09 mm4

Validation values:
I_eff,x = 1.39e+08 mm4
I_eff,y = 5.33e+06 mm4

@robbievanleeuwen
Copy link
Owner

Hi @jchkoch, thanks again for your hard work on this. I should have some time at the end of this week to review. Did you manage to get to the bottom of the validation issues? If not I can try figure it out as well :)

@jchkoch
Copy link
Author

jchkoch commented Feb 24, 2025

I have not been able to figure out the validation issue up to now. I thought I would leave it and come back to it. I may also have a bit more time in the next few days to look at it again.

Copy link
Owner

@robbievanleeuwen robbievanleeuwen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a few small code/docs comments. Otherwise looking great! Thanks for adhering to the style and adding tests/docs!

Tomorrow I'll have a look at why the validation example isn't working as expected.

@robbievanleeuwen
Copy link
Owner

robbievanleeuwen commented Feb 27, 2025

Hi @jchkoch, regarding the validation issues you were having, here is my working:

x-axis bending

Timber0 Contribution

E.Ix_0 = E_0 * (b * d^3 / 12 + b * d * y^2) where y is the distance between the centroid of timber0 to the centroid of the composite section.

i.e. E.Ix_0 = 9.5e3 * (1000 * 40^3 / 12 + 1000 * 40 * 40^2) = 658.7e9 mm^6

Timber90 Contribution

E.Ix_90 = E_90 * b * d^3 / 12

i.e. E.Ix_90 = 317 * 1000 * 40^3 / 12 = 1.691e9 mm^6

I_eff,x

The effective second moment of area with respect to the modulus for Timber0 can be calculated as follows:

I_eff,x = (1 / E_0) * (2 * E.Ix_0 + E.Ix_90) = (1 / 9.5e3) * (2 * 658.7e9 + 1.691e9) = 138.8e6 mm^4

This matches the output from sectionproperties.

y-axis bending

Timber0 Contribution

E.Iy_0 = E_0 * d * b^3 / 12

i.e. E.Iy_0 = 9.5e3 * 40 * 1000^3 / 12 = 31.67e12 mm^6

Timber90 Contribution

E.Iy_90 = E_90 * d * b^3 / 12

i.e. E.Iy_90 = 317 * 40 * 1000^3 / 12 = 1.057e12 mm^6

I_eff,y

The effective second moment of area with respect to the modulus for Timber0 can be calculated as follows:

I_eff,y = (1 / E_0) * (2 * E.Iy_0 + E.Iy_90) = (1 / 9.5e3) * (2 * 31.67e12 + 1.057e12) = 6.779e9 mm^4

This matches the output from sectionproperties.

Maybe double check your working for the y-axis bending, by inspection it should be stiffer than x-axis bending due to the greater depth in the y-direction. Maybe your validation example is for bending where you have the timber90 at the top and bottom and timber0 in the centre (i.e. bending for the section looking side on)? If this is the case you'd need to make a new geometry object with the materials arranged accordingly.

@jchkoch
Copy link
Author

jchkoch commented Mar 17, 2025

Hi @robbievanleeuwen, validation seems to work. I think I managed to confuse myself with regard to the coordinate system used by section-properties. I was indeed trying to validate the second case for bending where you have the timber90 at the top and bottom and timber0 in the center. From a practical point of view for 2-way CLT design, the so-called major and minor plate bending directions are particularly interesting. Making a new geometry object works!

Major (x-) axis bending (Timber0 at the top and bottom)
I_eff,x = 138.8e6 mm^4
Matches output from section-properties

Minor (z-) axis bending (Timber90 at the top and bottom)
I_eff,y = 9.960e6 mm^4
Matches output from section-properties

@robbievanleeuwen robbievanleeuwen changed the title Feature timber sections Add rectangular CLT section to (new) timber sections library Mar 17, 2025
@robbievanleeuwen
Copy link
Owner

Thanks for your hard work on this @jchkoch, looks great!

@robbievanleeuwen robbievanleeuwen merged commit f1a29a7 into robbievanleeuwen:master Mar 17, 2025
19 checks passed
@jchkoch jchkoch deleted the feature-timber-sections branch March 18, 2025 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants