Releases: JWock82/Pynite
Releases · JWock82/Pynite
General Bug Fixes
- Changes to testing code coverage less than 2% no longer trigger build failure.
- Code cleanup: removed
DKMQ.py
from the repository that was no longer in use. The code for the DKMQ element now lives inQuad3D.py
instead. - Frustrum meshes generated about the global X and Z axes are now being generated correctly.
- Fixed a bug that was not letting plate contours render for
VTK
users using load combinations other than 'Combo 1'. This bug was introduced recently when the option for global stress results was added. Global stress results forVTK
rendering are still not supported yet. Users are urged to switch to usingpyvista
rendering instead asVTK
rendering is on its way out ofPynite
and may be only minimally maintained going forward.
Version 1.0!
v1.0.0
- v1.0 is here! I feel the program is stable enough and has been around long enough to be battle tested and to call it v1.0.
- Important!!! - Changed all calls to
Pynite
toPynite
this matches the logo, and made more sense. I'm not sure why I ever capitalized that N to begin with, but going forward from v1.0,Pynite
has a lowercase n. I've been wanting to make this change as part of the v1.0 release. - Added a new
ShearWall
class that assists you in constructing and analyzing shear walls. This tool automatically detects piers and coupling beams, and finds the forces inside them and calculates their ascpect ratios, which can be handy for seismic design. It reports stiffness of multi-story shear walls at each story to help with rigid diaphragm analysis. It allows for modeling walls with openings, steps, and partial depth diaphragm loading. vtk
andpyvista
are now optional dependencies. This change streamlines installation for users who don't rely onPynite's
built-in visualization tools. From now on,Pynite
should be installed using$ pip install PyNiteFEA[all]
for most users.Pynite
no longer uses auxiliary nodes to define member cross-section rotation. You can now directly specify the rotation (in degrees) when you define a member using therotation
argument.
Fix for adding sections and improved spring rendering
- Bug fix for FEModel3D.add_section. It was throwing exceptions and had not been updated to match the examples.
- Improvements to spring rendering in pyvista. Up until this point spring elements were being rendered as lines. They now render as zigzag lines in pyvista. There is still more work for improvement on spring rendering, but this is a good start.
Fix for adding sections and improved spring rendering
- Bug fix for
FEModel3D.add_section
. It was throwing exceptions and had not been updated to match the examples. - Improvements to spring rendering in
pyvista
. Up until this point spring elements were being rendered as lines. They now render as zigzag lines inpyvista
. There is still more work for improvement on spring rendering, but this is a good start.
Fix for adding sections
Adding sections was causing exceptions. This bug is now fixed.
Bug Fix for Physical Members & Change to Default Dependencies
- Fixed physical member load and deflection diagrams. Physical members are a newer feature. Member internal results were being reported correctly, but the diagrams for these members had not been revised to plot correctly. The old method for plain members was still being used. Physical members were not considering that a physical member was made from multiple submembers, and results for each span needed to be combined to get the whole plot.
- Switched some commonly used python libraries to be installed by default with
Pynite
. MostPynite
users will want these libraries installed for full-featured use ofPynite
. These libraries help withPynite
visualizations, plotting, the sparse solver, andJupyter Lab
functionality. This is just easier for new python users. I was getting a lot of questions about how to set up libraries, and this takes the guesswork away. This is part ofPynite's
objective to stay easy to use. I figure advanced python users can uninstall the libraries they don't want, rather than making newbie users install the ones they want.
Quad Improvements and T/C Member Bug Fixes
This release includes major program improvements for plates and important fixes for tension/compression-only members, but also includes breaking changes (detailed below).
- Changed quad elements from MITC4 formulation to DKMQ formulation. This greatly improves plate results at corners and increases the speed with which the plate's stiffness matrix is assembled. MITC4 element code has been retained as legacy code, but is no longer used by the program.
- Breaking Changes: Implemented snake-case for dictionary names (e.g.
FEModel3D.Nodes
is nowFEModel3D.nodes
). These changes were made to preparePynite
for a v1.0 release that is consistent with thePEP8
style guide forpython
. - Bug fix for tension/conpression-only member internal results. While global results were correct, member internal results were showing results from the first tension/compression only iteration.
- Member results arrays can now be customized to pick up user defined points. Member results arrays generate results much faster now too.
Rendering via `Pyvista` and Other Improvements
- Added rendering via
Pyvista
. This greatly simplified the rendering code and provided a fresh look to the rendereings. Renderings in jupyter are now interactive. Global axes are also now shown in rendereings. To usePyvista
instead ofVTK
, use the newRendering
library rather than the oldVisualization
library. Rendering viaVTK
directly is still available. - Bug fix for member self-weight. The program was throwing exceptions instead of calculating member self-weight. Added a unit test to help prevent this issue from occuring again as code changes.
- Refactored
material
to bematerial_name
in the code. The prior naming convention caused confusion which led to the self-weight bug.
Bug Fix for Phantom Reactions & Initializing `PhysMembers`
v0.0.93
- Fixed phantom reactions showing up at unsupported nodes. If there was a support defined at a node, the program was summing reactions for all directions at the node, rather than just the supported directions. This caused the program to report "extra" reaction directions at any supported node (if the user queried them). Element forces/stresses were not affected as this was a post-processing reaction summing issue. Reactions for supported directions were summed correctly, except in the case of nodes with both spring supports and other supports. Only unsupported directions, and nodes with both spring supports and other supports, were showing phantom reactions. This bug also caused statics checks to fail from time to time.
- Reorganized physical member code to match member code more consistently.
Member Self-Weight
Added a highly requested member self-weight calculation feature via FEModel3D.add_member_self_weight()
. This only applies to members. This feature does not calculate self-weight for plate and quad elements.