Releases: JWock82/Pynite
Releases · JWock82/Pynite
Typehints & Exporting to Paraview
This release adds a couple new features, and fixes a few bugs:
- Added a
VTKWriterclass to allow for easy exporting toParaview. - Improved type hints for a simpler user experience.
- Fixed a bug in the pdf reports. Load combos were not being sent to the report template, which was preventing any load results from being displayed in the report.
- Simplified code for vector extraction of member segment results, and improved results reporting at load discontinuities along beams. Two results values are possible at mathematical discontinues, and only one was being reported. Now both are reported. This issue was only noticable if array results along a member were requested at large intervals rather than small intervals.
- Bug fix for array results format for physical members. This only affected users who used the array results functions.
General Bug Fixes
- Changes to testing code coverage less than 2% no longer trigger build failure.
- Code cleanup: removed
DKMQ.pyfrom the repository that was no longer in use. The code for the DKMQ element now lives inQuad3D.pyinstead. - 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
VTKusers using load combinations other than 'Combo 1'. This bug was introduced recently when the option for global stress results was added. Global stress results forVTKrendering are still not supported yet. Users are urged to switch to usingpyvistarendering instead asVTKrendering is on its way out ofPyniteand 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
PynitetoPynitethis 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,Pynitehas a lowercase n. I've been wanting to make this change as part of the v1.0 release. - Added a new
ShearWallclass 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. vtkandpyvistaare now optional dependencies. This change streamlines installation for users who don't rely onPynite'sbuilt-in visualization tools. From now on,Pyniteshould be installed using$ pip install PyNiteFEA[all]for most users.Pyniteno 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 therotationargument.
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. MostPyniteusers will want these libraries installed for full-featured use ofPynite. These libraries help withPynitevisualizations, plotting, the sparse solver, andJupyter Labfunctionality. 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'sobjective 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.Nodesis nowFEModel3D.nodes). These changes were made to preparePynitefor a v1.0 release that is consistent with thePEP8style 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 usePyvistainstead ofVTK, use the newRenderinglibrary rather than the oldVisualizationlibrary. Rendering viaVTKdirectly 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
materialto bematerial_namein 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.