You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.