Skip to content

Releases: JWock82/Pynite

Bug Fix for Envelope Results with Both Tagged & Untagged Combos

09 Mar 15:27

Choose a tag to compare

v2.4.1

Bug fix for envelope results on untagged load combos

Added Governing Combo Results to Member Max/Min Methods

09 Mar 14:40

Choose a tag to compare

  • Member max and min methods now return governing load combination along with the member max/min forces.
  • Bug fix: Quadrilateral element displacements had corners swapped during VTK visualization. This was a relic from the old MITC4 formulation that has been corrected.

Envelope Member Diagrams, End-Release Visualization, Shear Wall Validation & Bug Fixes

07 Mar 02:36

Choose a tag to compare

  • Added enveloping to member diagrams. Set combo_name to a list of combo tags and the member diagram will show an envelope of all the combos that have any of those tags.
  • Bug fix: Quadrilateral element displacements had corners swapped during VTK visualization. This was a relic from the old MITC4 formulation that has been corrected.
  • Bug fix: Added shear wall and mat foundation load cases to FEModel3D.load_cases(). The list of load cases was sometimes incomplete if these meshes had not yet been generated.
  • Added bending moment end releases to visualizations.
  • Bug fix for shear walls with flanges having an origin with their origin at Y != 0.
  • Rectangular meshes now filter out user defined control points that erroneously lie outside their boudaries.

Auto-meshing & Visualization Improvements

26 Jan 15:49

Choose a tag to compare

  • Normalized member force diagrams across the entire model for visual clarity.
  • Made mesh auto-regeneration smarter and more efficient, targeting only meshes that have been altered since the last run.
  • Added ShearWall mesh auto-regeneration. Whenever a model is solved any old or outdated ShearWall meshes are automatically removed and replaced by a rebuild.
  • Optimized auto-calculated annotation sizing: The new automatic annotation size calculation feature now uses vectorized NumPy operations and caching for efficient rendering of large models with hundreds or thousands of elements.
  • Adjusted member diagram label offsets for clarity.

Member Force Diagrams

09 Jan 03:04

Choose a tag to compare

  • Added member diagrams feature for easy visualization of shear, moment, axial, and torsion diagrams along members.
  • Updated documentation for rendering.

Major Performance & Memory Improvements + Other Improvements

05 Jan 03:24

Choose a tag to compare

  • Major speed boost and leaner memory usage: the global stiffness/mass assembly plus the nodal load and fixed-end reaction builders now use block-based vectorized writes instead of Python loops, which keeps data in contiguous NumPy buffers rather than thousands of temporary Python objects. The dense solver sees ~15-25% faster K/M builds in our targeted benchmarks, while sparse solver runs see ~30% faster stiffness assembly in our benchmarks.
  • Meshes can now be regenerated with the FEModel3D.meshes[mesh_name].generate() command. This command removes the old mesh and replaces it with an updated one. The mesh will not remove nodes needed by other elements outside the mesh. Note that any loads applied to the old mesh will be lost when its elements and nodes are deleted. This makes meshes truly parametric.
  • Added FEModel3D.delete_mesh() to help deleting old meshes properly.
  • Renderers now automatically set the annotation size as 5% of the minimum distance between nodes. You still have the option of overiding this by setting the annotation size manually.
  • Added load case/combo identification to VTK rendering.
  • Dropped support for Python version 3.10, which is not compatible with Numpy 2.4.
  • Removed unecessary checks for Scipy. Scipy has been a required dependency for some time now.
  • Cleaned up whitespace to conform to PEP8 style guide.

Numpy >= 2.4 Now Required for VTK Model Visualization

20 Dec 18:44

Choose a tag to compare

This update brings Pynite into alignment with the latest version of Numpy, which made major changes in how arrays are handled recently. It also updates Pynite's testing environment to directly install the versions listed as dependencies. This should help Pynite keep pace with future changes to its dependencies by flagging issues promptly via CI.

  • Numpy >= 2.4 is now a requirement. This ensures the VTK renderer will handle plate results arrays properly.
  • pip now installs dependencies during build testing. Pynite's testing suite now runs against the correct version of each dependency.

Rendering Improvements & Simplifications

20 Dec 16:50

Choose a tag to compare

  • Added docstrings to the VTK Renderer class to help the user.
  • Enforced use of properties instead of attributes in the VTK Renderer and added docstrings to properties help the user make decisions.
  • Removed the VTK Renderer's properties that began with "set_". These were redundant and caused confusion. The prefix "set_" is no longer used to access or set any of the Renderer's properties.

Minor Rendering Improvements

19 Dec 04:17

Choose a tag to compare

  • Pynite no longer struggles rendering load cases and combinations when no loads are present. This is especially helpful for rendering modal load combinations, which don't have loads (only masses).
  • The pyvista plotter's "X" button now works just like pressing "q". This was an annoying pyvista-ism that led to error messages when closing the window with the "X" button.

Modal Analysis

15 Dec 19:44

Choose a tag to compare

  • Added modal analysis. You can now find the natural frequencies and mode shapes of frame-type structures (plates not yet supported). A special thanks to @boustrephon for heading up this feature.
  • Dropping support for python < 3.10.