PyNiteFEA 2.2.1__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {pynitefea-2.2.1 → pynitefea-2.4.0}/PKG-INFO +12 -1
  2. {pynitefea-2.2.1 → pynitefea-2.4.0}/PyNiteFEA.egg-info/PKG-INFO +12 -1
  3. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/FEModel3D.py +20 -1
  4. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Member3D.py +308 -173
  5. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Mesh.py +5 -0
  6. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/PhysMember.py +468 -144
  7. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Rendering.py +72 -6
  8. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/ShearWall.py +1 -1
  9. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/VTKWriter.py +28 -0
  10. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Visualization.py +100 -6
  11. {pynitefea-2.2.1 → pynitefea-2.4.0}/README.md +11 -0
  12. {pynitefea-2.2.1 → pynitefea-2.4.0}/setup.py +1 -1
  13. {pynitefea-2.2.1 → pynitefea-2.4.0}/LICENSE +0 -0
  14. {pynitefea-2.2.1 → pynitefea-2.4.0}/PyNiteFEA.egg-info/SOURCES.txt +0 -0
  15. {pynitefea-2.2.1 → pynitefea-2.4.0}/PyNiteFEA.egg-info/dependency_links.txt +0 -0
  16. {pynitefea-2.2.1 → pynitefea-2.4.0}/PyNiteFEA.egg-info/requires.txt +0 -0
  17. {pynitefea-2.2.1 → pynitefea-2.4.0}/PyNiteFEA.egg-info/top_level.txt +0 -0
  18. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Analysis.py +0 -0
  19. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/BeamSegY.py +0 -0
  20. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/BeamSegZ.py +0 -0
  21. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/FixedEndReactions.py +0 -0
  22. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/LoadCombo.py +0 -0
  23. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/MainStyleSheet.css +0 -0
  24. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/MatFoundation.py +0 -0
  25. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Material.py +0 -0
  26. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Node3D.py +0 -0
  27. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Plate3D.py +0 -0
  28. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Quad3D.py +0 -0
  29. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Report_Template.html +0 -0
  30. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Reporting.py +0 -0
  31. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Section.py +0 -0
  32. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Spring3D.py +0 -0
  33. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/Tri3D.py +0 -0
  34. {pynitefea-2.2.1 → pynitefea-2.4.0}/Pynite/__init__.py +0 -0
  35. {pynitefea-2.2.1 → pynitefea-2.4.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyNiteFEA
3
- Version: 2.2.1
3
+ Version: 2.4.0
4
4
  Summary: A simple elastic 3D structural finite element library for Python.
5
5
  Home-page: https://github.com/JWock82/Pynite.git
6
6
  Author: D. Craig Brinck, PE, SE
@@ -121,6 +121,17 @@ Here's a list of projects that use Pynite:
121
121
  * Phaenotyp (https://github.com/bewegende-Architektur/Phaenotyp) (https://youtu.be/shloSw9HjVI)
122
122
 
123
123
  # What's New?
124
+ 2.4.0
125
+ * Member `max` and `min` methods now return governing load combination along with the member max/min forces.
126
+ * Bug fix: Quadrilateral element displacements had corners swapped during VTK visualization. This was a relic from the old MITC4 formulation that has been corrected.
127
+
128
+ v2.3.0
129
+ * 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.
130
+ * 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.
131
+ * Added bending moment end releases to visualizations.
132
+ * Bug fix for shear walls with flanges having an origin with their origin at Y != 0.
133
+ * Rectangular meshes now filter out user defined control points that erroneously lie outside their boudaries.
134
+
124
135
  v2.2.1
125
136
  * Normalized member force diagrams across the entire model for visual clarity.
126
137
  * Made mesh auto-regeneration smarter and more efficient, targeting only meshes that have been altered since the last run.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyNiteFEA
3
- Version: 2.2.1
3
+ Version: 2.4.0
4
4
  Summary: A simple elastic 3D structural finite element library for Python.
5
5
  Home-page: https://github.com/JWock82/Pynite.git
6
6
  Author: D. Craig Brinck, PE, SE
@@ -121,6 +121,17 @@ Here's a list of projects that use Pynite:
121
121
  * Phaenotyp (https://github.com/bewegende-Architektur/Phaenotyp) (https://youtu.be/shloSw9HjVI)
122
122
 
123
123
  # What's New?
124
+ 2.4.0
125
+ * Member `max` and `min` methods now return governing load combination along with the member max/min forces.
126
+ * Bug fix: Quadrilateral element displacements had corners swapped during VTK visualization. This was a relic from the old MITC4 formulation that has been corrected.
127
+
128
+ v2.3.0
129
+ * 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.
130
+ * 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.
131
+ * Added bending moment end releases to visualizations.
132
+ * Bug fix for shear walls with flanges having an origin with their origin at Y != 0.
133
+ * Rectangular meshes now filter out user defined control points that erroneously lie outside their boudaries.
134
+
124
135
  v2.2.1
125
136
  * Normalized member force diagrams across the entire model for visual clarity.
126
137
  * Made mesh auto-regeneration smarter and more efficient, targeting only meshes that have been altered since the last run.
@@ -194,6 +194,25 @@ class FEModel3D():
194
194
  # Get the load case for each plate/quad pressure
195
195
  cases.append(load[1])
196
196
 
197
+ # Step through each shear wall helper
198
+ for shear_wall in self.shear_walls.values():
199
+ # Step through each shear wall shear load
200
+ for load in shear_wall._shears:
201
+ # Get the load case for each shear wall shear
202
+ cases.append(load[2])
203
+
204
+ # Step through each shear wall axial load
205
+ for load in shear_wall._axials:
206
+ # Get the load case for each shear wall axial
207
+ cases.append(load[2])
208
+
209
+ # Step through each mat foundation helper
210
+ for mat in self.mats.values():
211
+ # Step through each mat point load
212
+ for load in mat.pt_loads:
213
+ # Get the load case for each mat point load
214
+ cases.append(load[3])
215
+
197
216
  # Remove duplicates and return the list (sorted ascending)
198
217
  return sorted(list(dict.fromkeys(cases)))
199
218
 
@@ -2415,7 +2434,7 @@ class FEModel3D():
2415
2434
  # The partitioned stiffness matrix originates as `coo` and is converted to `csr`
2416
2435
  # format for mathematical operations. The `@` operator performs matrix multiplication
2417
2436
  # on sparse matrices.
2418
- Delta_D1 = spsolve(K11.tocsr(), np.subtract(np.subtract(Delta_P1, Delta_FER1), K12.tocsr() @ Delta_D2))
2437
+ Delta_D1 = spsolve(K11, np.subtract(np.subtract(Delta_P1, Delta_FER1), K12 @ Delta_D2))
2419
2438
  Delta_D1 = Delta_D1.reshape(len(Delta_D1), 1)
2420
2439
  else:
2421
2440
  Delta_D1 = solve(K11, np.subtract(np.subtract(Delta_P1, Delta_FER1), np.matmul(K12, Delta_D2)))