anaStruct icon indicating copy to clipboard operation
anaStruct copied to clipboard

Non uniform loads

Open eykaraduman opened this issue 3 years ago • 10 comments

Do you think to support non-uniform (trapezodial) loads?

eykaraduman avatar Dec 24 '20 13:12 eykaraduman

Hi, I made a fork that can do that but its a bit messy as I modified it to work with my UI. You might have to change some font sizes and I changed the default show paramenter of show_structure to False. Also move the functions file from the anastruct folder to your main project folder.

Use qi for the initial load value and q for the final value. Example: ss.q_load(qi=10, q=20, element_id=1)

https://github.com/LeoBelmont/anaStruct

LeoBelmont avatar Jan 13 '21 20:01 LeoBelmont

Nice job, @LeoBelmont ! Your repo is also several commits behind - but I think I've mostly merged all your relevant work in and typed it all. I'll do a bit more testing over the next few days just to make sure all the advanced functionality works correctly with it, and then I'll submit a pull request with this!

Working branch: https://github.com/smith120bh/anaStruct/tree/add_trapezoidal_loads

smith120bh avatar Jan 18 '21 12:01 smith120bh

Thanks for your response @smith120bh :) I checked my code and its actually a older version of what I have now, its missing some important stuff, I forgot to commit the latest! I will make a proper commit without the unnecessary stuff and I also want to change/optimize a few things as the code is very messy (its my first project ever). I expect to do this still this week. Also is there any way I can DM you?

LeoBelmont avatar Jan 18 '21 19:01 LeoBelmont

@LeoBelmont : I don't think GitHub has DM functionality. But you can email me at: brooks dot smith at clearcalcs dot com.

I'll wait for you to do the updates you want to then. If you can, make sure you rebase to the current master in anaStruct first - which also includes all the variable typing changes. Also, I made a couple of further modifications on my working branch:

  • Set qi to default to None, and then set if qi == None: qi = q - so that we can maintain backwards compatibility to the original q_loads() syntax
  • Also clear qi values in the remove_loads() function in system.py

smith120bh avatar Jan 18 '21 22:01 smith120bh

@eykaraduman I made some updates to my fork and you no longer need to worry about the functions file! Also the "qi" parameter no longer exists. I forgot to mention but for now it only works for loads perpendicular to the element, Im working on global directions :)

New code example: ss.q_load(q=(10, 20), element_id=1)

LeoBelmont avatar Jan 23 '21 01:01 LeoBelmont

Hey @smith120bh and @LeoBelmont,

also consider our changes here: https://github.com/modugen/anaStruct We've introduced trapezoidal loads and modal analysis, though not in a pursuit to add in the changes to the anastruct repository, so there might be more changes than necessary.

MaximilianFranz avatar Feb 22 '21 18:02 MaximilianFranz

Thanks, @MaximilianFranz !

I just took a quick look through your fork there, and it looks really good. FYI, you're a few commits behind (notably, you're missing a couple recent fixes such as for dealing with internal hinges). Your work on the modal analysis looks simple and elegant - I'd be happy to pull that out and PR it into master here as long as you don't object!

In your approach on trapezoidal perpendicular loads, it looks like the math should work out identically to what LeoBelmont did. However, you've also added in trapezoidal parallel loads. @LeoBelmont - if you're still working on that part of your additions, you may be able to pull some of what MaximilianFranz did here (in assembly.py, especially).

smith120bh avatar Feb 22 '21 23:02 smith120bh

Wow @MaximilianFranz, good job!

I took a look at the most relevant files for the trapezoidal loads and it looks really good! And you kept the equations for linear loads too which I didn't.

Our codes for trapezoidal loads in global directions seem to be very similar too except for the plotter/element file, you didn't need to change it in order to plot non linear functions for the axial force?

If you guys want to, you can check my latest commit, which added the trapezoidal loads in global directions. It's complete (but unoptimized as I wanted to test more before optimizing) and they work but I didn't test them enough as I'm currently busy with university.

LeoBelmont avatar Feb 23 '21 00:02 LeoBelmont

Hey again,

to be sure, the implementation was from https://github.com/marciosarto, not me. He can also be of help if questions arise :) @smith120bh feel free to pull this into the anastruct repository! @LeoBelmont as for plotting, we didn't adjust it, because we are not using it.

MaximilianFranz avatar Feb 23 '21 06:02 MaximilianFranz

Issue was fixed by LeoBelmont's PR #74 :-)

smith120bh avatar May 31 '21 00:05 smith120bh