-
Notifications
You must be signed in to change notification settings - Fork 98
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
Trusses with All Elements Hinged Fail with StabilityError #36
Comments
Ah right, that seems like an edge case I haven't properly tested. I will take a look at your PR. Seems valid so far. |
@smith120bh , is there any news on this? |
@ritchie46 : So the diff above is complete and works from my testing. I am unable to create a pull request, as I get an error saying that I don't have write access to your repository any time I try! |
Yeah you need to create a Pull Request from a fork from your repo. Could you try that? That saves me some copy pasting. ;) |
Ah, thanks! I've done a lot of work on Github, but have never actually wanted to change more than a couple lines of code in someone else's repository before... But now done! You should be able to test and eventually merge that PR now :-) |
The following script for a simple king post truss fails with error
anastruct.basic.FEMException: ('StabilityError', 'The eigenvalues of the stiffness matrix are non zero, which indicates a instable structure. Check your support conditions')
:Example Script
Discussion
I see that the function
ensure_single_hinge()
tries to ensure that no node ends up with an unrestrained rotational degree of freedom, by ensuring that all nodes have at least one element with a non-hinged connection to the node. However, that function is broken due to a minor syntax error:if spring is not None and 0 in spring:
should instead read
if spring is not None and 0 in spring.values():
I've tested a fix for this (along with a couple consequential downstream fixes that come up when this function is fixed). See below diffs to util.py, system.py, node.py, and postprocess.py
Diff of Proposed Fix
The text was updated successfully, but these errors were encountered: