Releases: JWock82/Pynite
HTML Reports & Bug Fixes
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
toaxial_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
andwkhtmltopdf
setup for reporting.
Nonlinear Analysis Improvements
-
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
- 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
This release adds a couple new features, and fixes a few bugs:
- Added a
VTKWriter
class 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.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.