zhuminjie / OpenSeesPy

OpenSeesPy versions, doc, and pip
Other
157 stars 66 forks source link

3D ElasticTimoshenkoBeam element with rigid joint offsets #104

Open juancaFS opened 1 year ago

juancaFS commented 1 year ago

Dear all, I would like to report an issue regarding ElasticTimoshenkoBeam elements in 3D with the option of rigid joint offsets. I have worked on a simple 5-story RC symmetric building with six moment frames in each direction: Figure_1

This is a comparison for the first translational period between results from OpenSeesPy and an independent calculation in Python, using two types of frame elements (elasticBeamColumn and ElasticTimoshenkoBeam) and w/wo rigid joint offsets in all the frames: tabla

In each of those four cases, all the beams and columns of the model were assigned a unique type of element. I got a disagreement for the fundamental periods of the case of ElasticTimoshenkoBeam element with rigid joint offsets, the other cases are fine.

The data considered were: Beams: 350 mm X 750 mm Columns: 600 mm X 600 mm Centre-to-centre distance between columns: 7.5 m (square plan with side 37.5 m) Height of columns: 4.0 m (1st story) and 3.6 m (others) Concrete: f'c = 21 MPa Translational masses: peso1 = 12186350 N pesotip = 12108900 N peso5 = 10695780 N masses = np.array([peso1, pesotip, pesotip, pesotip, peso5])/g

Thank you for your attention.

ccaprani commented 1 year ago

@juancaFS that's an interesting observation. Others will know better, but I suspect it will be difficult to figure out where the difference arises from the information you've given. It might be better to consider a single plane portal frame (3 members), and to check the stiffness matrix from your own calculation with that from OpenSeesPy. You can use printA or the newer gimmeMCK command for this. I reckon it would be easier then to track down where/if the difference arises,.

mhscott commented 1 year ago

I agree 100% with @ccaprani. A minimal working example (portal frame, simple span, or a cantilever), something small and manageable, will go a long way to tracking this down. No one will be able to reproduce what you have shown here. https://portwooddigital.com/2021/07/01/minimal-working-example/

juancaFS commented 1 year ago

@ccaprani @mhscott Of course. Please find attached the script corresponding to a minimal 3D model: Simple3D I got the same differences in this model for the case of ElasticTimoshenkoBeam element with rigid joint offsets. tabla_simple Simple3DFrame.zip

mhscott commented 1 year ago

Muchas gracias, @juancaFS! I see the issue, the elasticTimoshenkoBeam element doesn't use the geometric transformation consistently. It's fixable but will take a little time, so thank you for the small example. In the meantime, can you try using the 'timoshenkoBeamColumn' with elastic shear sections to see if the OpenSees result matches your calculations? https://portwooddigital.com/2022/07/03/elastic-shear-beams-in-opensees/

juancaFS commented 1 year ago

Dear @mhscott thank you for your advice. Now I got full agreement using the displacement-based elements with elastic sections in OpenSees. tabla_nl Simple3DFrameV2.zip

mhscott commented 1 year ago

Good to hear, thanks!