Skip to content

Releases: JWock82/Pynite

HTML Reports & Bug Fixes

03 Sep 00:38
Compare
Choose a tag to compare

v1.3.0

  • Fixed shear wall thickness issues. The new ShearWall feature was not applying the wall thickness correctly. This has been fixed.
  • Fixed a bug in reaction calculations for positive nodal springs. Only reactions for positive springs (e.g. tension-only) were affected.
  • Refactored AxialDeflection to axial_deflection to be consistent with the rest of the code.
  • Fixed a bug in reporting axial deflection arrays. The program was throwing exceptions when axial deflection array results were requested.
  • Fixed a bug preventing reports from generating.
  • Added support for html reporting, and better error messages for getting pdfkit and wkhtmltopdf setup for reporting.

Nonlinear Analysis Improvements

09 Jul 00:22
Compare
Choose a tag to compare
  • Added the ability to apply loads in steps in the FEModel3D.analyze method via the new num_steps keyword argument. num_steps defaults to 1, but if a higher number is used the load will be split into the specified number of steps and applied incrementally. This can be very helpful when dealing with complex tension/compression-only scenarios that otherwise may have had trouble converging. Consider using 10 to 20 load steps when dealing with complex T/C-only models. The ability to perform step-wise analysis better approximates nonlinear load-displacement curves and sets Pynite up for future nonlinear analysis features.

  • Added P-Δ effects to vectorized results. Prior to this fix, member end forces and internal forces were being calculated correctly, but the P-Δ flag was not triggered in the methods that used vectorized results. Moment plots and moment arrays were the only items that were affected. Spot checking moments, and checking max/min moments were not affected.

Plate, Array and P-Delta Improvements

17 Jun 13:17
Compare
Choose a tag to compare
  • Corrected a long-standing issue transforming quad local bending and membrane stresses to global coordinates. This did not affect quad local stress results. Only if you were converting the results to global coordinates would the issue arise.
  • Array results no longer include extra points at discontinuities. This was affecting some users who were using array results. Note that without the extra points, you may need to use a larger number of points to identify max/min values at discontinuities.
  • Added axial stiffness adjustments to P-Δ analysis. P-Δ effects primarily affect bending stiffness, but axial stiffness is affected too. While these axial stiffness adjustments are often negligible, they can be important in some cases. Pynite now considers axial stiffness adjustments when running P-Δ analysis.
  • Greatly simplified code for P-Δ analysis. P-Δ analysis should converge quicker with fewer unnecessary iterations. Pynite was not taking full advantage of the fact that the geometric stiffness matrix eliminates the need to iterate when solving for P-Δ effects. Extra solutions were being run for no reason.
  • Cleaned up many "code smells".

Typehints & Exporting to Paraview

18 May 02:23
Compare
Choose a tag to compare

This release adds a couple new features, and fixes a few bugs:

  • Added a VTKWriter class to allow for easy exporting to Paraview.
  • 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

27 Feb 15:00
Compare
Choose a tag to compare
  • 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 in Quad3D.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 for VTK rendering are still not supported yet. Users are urged to switch to using pyvista rendering instead as VTK rendering is on its way out of Pynite and may be only minimally maintained going forward.

Version 1.0!

01 Feb 19:43
e28de7f
Compare
Choose a tag to compare

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 to Pynite 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 and pyvista are now optional dependencies. This change streamlines installation for users who don't rely on Pynite'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 the rotation argument.

Fix for adding sections and improved spring rendering

07 Dec 23:44
Compare
Choose a tag to compare
  • 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

07 Dec 23:08
Compare
Choose a tag to compare
  • 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

07 Dec 22:39
cbced09
Compare
Choose a tag to compare

Adding sections was causing exceptions. This bug is now fixed.

Bug Fix for Physical Members & Change to Default Dependencies

09 Nov 21:12
Compare
Choose a tag to compare
  • 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. Most Pynite users will want these libraries installed for full-featured use of Pynite. These libraries help with Pynite visualizations, plotting, the sparse solver, and Jupyter 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 of Pynite'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.