JWock82 / PyNite

A 3D structural engineering finite element library for Python.
MIT License
421 stars 86 forks source link

Allow Selective Analysis Of Load Combos #166

Closed SoundsSerious closed 11 months ago

SoundsSerious commented 11 months ago

I am using a significant set of load combinations for aerodynamic analysis (permutations of speed,rotation,angle) and I wanted a way to choose which to run running all of them takes about 15minutes.

I have added a combos:list = None keyword to each analyze function along wih appropriate documentation.

The analysis function now checks directly after the LoadCombos iteration if combos is specified the combo is in combos the case will proceed, otherwise continue is used to bypass unspecified combos

springs and member are activted for the combo in question or all if combos is None.

combos is also passed to _check_static and _calc_reactions so that only the run combos are checked.

I have run the testing suite on this and it appears fine. I haven't added any new tests.

SoundsSerious commented 11 months ago

Hmm actually seeing that results aren't propagating to nodes so this may take some additional consideration

SoundsSerious commented 11 months ago

Ok now we're looking good. I was comparing the combo instance to the key so it wasnt evaluating.

I reran the test cases and they are continuing too work but considering the error I just made it might be a good idea to cover this case.

JWock82 commented 11 months ago

I'm actually in the process of reorganizing and simplifying the analysis code. We'll need to make sure these changes won't conflict with it. Will you issue this pull request to the analysis_code_organization branch instead of the master branch and see if it causes any conflicts?

SoundsSerious commented 11 months ago

Sure thing, I think that should be good to go.

Question for a "reload" results feature. I have some organization done to create a data frame for each load combo and member that gets saved to disk. Would reloading the data be as simple as modifying the internal field-lists like DX,DY ect?

Seeking out performance its going to take forever to run all the cross section FEA on top of the load combos for my integration with sectionproperties so I'm trying to figure out a way to checkpoint a simulation for later use.

JWock82 commented 11 months ago

I merged this, and then reverted it, realizing that it had some conflicts with other changes I am making that I hadn't committed yet.

I did read through your code and I like the utility of this feature. I'm going to rework it a little to work with load combination tags. That way you'll be able to apply a tag to your load combination and then run the analysis for the tags you specify.

SoundsSerious commented 11 months ago

sounds good, It definitely makes sense to take time and do it right.