MShawon / Truss-101

Truss analysis software using the Finite Element Method written in Python.
https://mshawon.github.io/Truss-101/
GNU General Public License v3.0
31 stars 9 forks source link

feature request: moment-carrying nodes #1

Open ruzko opened 2 years ago

ruzko commented 2 years ago

Thank you for writing this program, I love it

What: please add three features:

  1. Option to make a node stiff / carry moment between members
  2. A fourth support type, which carries moment / is stiff
  3. Moment as a load type

Why: Yesterday I had to determine displacement in a system where a load was applied between two truss nodes. i.e. on the span of a member. This proved difficult, and I ended up doing it manually using the unit load method. Today I had to determine displacement in a truss system containing moment carrying corners / stiff corners, as well as a stiff support.

I think both of these use cases could be covered if the requested features are implemented.

As a side note, I use Linux and would love to see cross-compatibility, either as a linux native program or through wine.

MShawon commented 2 years ago

Thank you for your suggestions.

Pardon me but to my knowledge truss members can not carry any moment and Loads are transfered to the node. If you could point me to some resources and the example you mentioned, it would help me better understanding this feature.

As soon as I get some free time, I will work on the cross compatibility.

ruzko commented 2 years ago

Thank you for your prompt response, MShawon.

You are correct in that members in a truss system can't carry moment across nodes. This is due to trusses being defined by frictionless (non-stiff) end nodes. The individual members may be subjected to internal moments, however.

A system containing a single member can still have deflection at any point along that member's length, if a load or moment is applied at any point along the member's length. A beam can have one or more nodes carrying moment (stiff nodes). When two or more members are connected with stiff nodes, the system is known as a frame.

In essence, a member in a truss system can be thought of as many stiff nodes connected in a line, where the line is broken by a single non-stiff node at the intersection between members.

I'll buy you a cup of coffee when my exams are done :)

Here are some sources I've used in my mechanical engineering education: https://mae.ufl.edu/nkim/eml5526/Lect05.pdf https://temple.manifoldapp.org/read/structural-analysis/section/978a8c3e-7795-4a58-b1b1-eab500f34ed5 https://www.erbakan.edu.tr/storage/files/department/insaatmuhendisligi/editor/DersSayfalari/YapSt2/07_Matrix_Frame.pdf

Here's the description of a supposed frame analysis software: https://www.cesdb.com/frame.html

MShawon commented 2 years ago

I see so basically these features would be in a frame analysis software. Tbh, I decided several times I will write another program for the frame. but always something came along and never could manage enough time. Also, since in frame the matrix is 6*6 because of the moment and the frame has some additional load system need to rewrite the whole program as well as GUI design, I actually need a lot of time to complete that project.

I suggest you take a look at Dr. Structure's frame analysis tool https://github.com/Lab101Space/iFrame/releases