Skip to content
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

[Discussion]: Class for Truss analysis in continuum_mechanics #17302

Open
ishanaj opened this issue Jul 31, 2019 · 8 comments

Comments

@ishanaj
Copy link
Contributor

commented Jul 31, 2019

This is a discussion prior to starting the implementation of a class Truss, which helps in solving for the reactions in a loaded Truss.
This is the API that I had initially thought of :

>>> t = Truss()
>>> t.add_node("node_1", x_position, y_position)  # makes a dict- {'node_1': (x, y)}
>>> t.add_member(start_node, end_node)
>>> t.apply_load(node_1, magnitude=10, dir='x') # only point loads
>>> t.apply_moment(node_3, magnitude, dir='z')
>>> t.apply_support(node_4, type="fixed")
>>> t.solve()     # solve for reaction and internal forces
>>> t.reactions
# returns a dict with the values of reactions

This API considers Truss to be a mutable class. But I am not sure whether we want a mutable or a non-mutable class for it. We could probably have a discussion on it.
Further details about solving for the reaction can be seen from phase-IV of the proposal here
It is based on the idea described here

ping @jashan498 @moorepants @oscarbenjamin

@moorepants

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

Some quick notes:

  • It would be helpful to see the above example alongside a specific example done by hand to see how this does or doesn't mimic that process.
  • What are the advantages of solving these truss problems symbolically?
  • I'd really like to see you do a full and complete job on stage 1 of your proposal, which doesn't seem done before introducing new stuff. It is much better to have fewer complete and correct features than a bunch of buggy partially complete and thought out features.
@moorepants

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

Also, your proposal is not on the sympy wiki for some reason. Please add it there for posterity.

@ishanaj

This comment has been minimized.

Copy link
Contributor Author

commented Jul 31, 2019

I had added the proposal link earlier in the current applications wiki page. But sure I will be making a separate wiki page for it.

@ishanaj

This comment has been minimized.

Copy link
Contributor Author

commented Jul 31, 2019

I'd really like to see you do a full and complete job on stage 1 of your proposal, which doesn't seem done before introducing new stuff. It is much better to have fewer complete and correct features than a bunch of buggy partially complete and thought out features.

Apart from PR #17240 (draw function), other PR's are ready from my side, it would be great if you could have a look at it. Here is the status of the PR's:

  • PR #17001 Completed from my side.
  • PR #17153 Completed from my side and ready to go.
  • PR #17122 A bit of confusion on ics argument (had a discussion with Oscar)

It would be great if you could give your views on it.

Also, I am working on making the draw() function currently, making it use the backend attribute.
Sure will first work on completing the previous work. I thought till the time we can have a discussion on the Truss implementation just to get an idea of the work to be done on it.

@moorepants

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

it would be great if you could have a look at it

Your primary mentors @jashan498 and @Yathartha22 should help you get your PRs merged. I only have time to engage occasionally this summer.

PR #17001 Completed from my side.
PR #17153 Completed from my side and ready to go.

From my perspective, this is not a complete, tested, and documented (examples and docstrings) implementation of a generic way to use arbitrary cross sections with the Beam class. I'll try to have a look at them more closely.

@moorepants

This comment has been minimized.

Copy link
Member

commented Aug 3, 2019

I just found this package: https://anastruct.readthedocs.io/en/latest/?badge=latest

It would be worth discussing what your proposal can offer that this can't, in particular: what does symbolics bring to the table for trusses?

@moorepants

This comment has been minimized.

Copy link
Member

commented Aug 3, 2019

Additionally, here is an interesting package that could give you ideas about how you might improve the arbitrary cross section functionality: https://robbievanleeuwen.github.io/finite%20element%20analysis/cross-section-analysis/

@ishanaj

This comment has been minimized.

Copy link
Contributor Author

commented Aug 3, 2019

Great! I will have a look at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.