pyroll-core 3.0.2__tar.gz → 3.0.2.post2__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 (80) hide show
  1. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/PKG-INFO +1 -1
  2. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/__init__.py +1 -1
  3. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/generic_elongation.py +1 -1
  4. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/unit/unit.py +16 -0
  5. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/.gitignore +0 -0
  6. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/LICENSE +0 -0
  7. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/README.md +0 -0
  8. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/hatch.toml +0 -0
  9. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyproject.toml +0 -0
  10. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/config.py +0 -0
  11. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/disk_elements/__init__.py +0 -0
  12. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/disk_elements/disk_element_unit.py +0 -0
  13. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/disk_elements/hookimpls.py +0 -0
  14. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/__init__.py +0 -0
  15. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/base.py +0 -0
  16. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/boxes/__init__.py +0 -0
  17. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/boxes/box.py +0 -0
  18. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/boxes/constricted_box.py +0 -0
  19. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/boxes/upset_box.py +0 -0
  20. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/diamonds/__init__.py +0 -0
  21. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/diamonds/diamond.py +0 -0
  22. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/diamonds/gothic.py +0 -0
  23. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/diamonds/square.py +0 -0
  24. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/equivalent_ripped_groove.py +0 -0
  25. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/flat.py +0 -0
  26. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/generic_elongation_solvers.py +0 -0
  27. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/hexagonal.py +0 -0
  28. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/__init__.py +0 -0
  29. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/circular_oval.py +0 -0
  30. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/constricted_circular_oval.py +0 -0
  31. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/constricted_swedish_oval.py +0 -0
  32. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/flat_oval.py +0 -0
  33. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/oval_3radii.py +0 -0
  34. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/oval_3radii_flanked.py +0 -0
  35. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/swedish_oval.py +0 -0
  36. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/ovals/upset_oval.py +0 -0
  37. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/rounds/__init__.py +0 -0
  38. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/rounds/false_round.py +0 -0
  39. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/rounds/round.py +0 -0
  40. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/grooves/spline.py +0 -0
  41. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/hooks.py +0 -0
  42. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/log.py +0 -0
  43. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/profile/__init__.py +0 -0
  44. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/profile/hookimpls.py +0 -0
  45. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/profile/profile.py +0 -0
  46. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/repr.py +0 -0
  47. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll/__init__.py +0 -0
  48. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll/hookimpls.py +0 -0
  49. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll/roll.py +0 -0
  50. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/__init__.py +0 -0
  51. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/base.py +0 -0
  52. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/deformation_unit.py +0 -0
  53. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/__init__.py +0 -0
  54. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/base_roll_pass.py +0 -0
  55. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/deformation_unit.py +0 -0
  56. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/disk_element.py +0 -0
  57. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/helpers.py +0 -0
  58. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/profile.py +0 -0
  59. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/roll.py +0 -0
  60. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/symmetric_roll_pass.py +0 -0
  61. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/three_roll_pass.py +0 -0
  62. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/hookimpls/two_roll_pass.py +0 -0
  63. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/symmetric_roll_pass.py +0 -0
  64. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/three_roll_pass.py +0 -0
  65. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/roll_pass/two_roll_pass.py +0 -0
  66. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/rotator/__init__.py +0 -0
  67. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/rotator/hookimpls.py +0 -0
  68. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/rotator/rotator.py +0 -0
  69. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/sequence/__init__.py +0 -0
  70. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/sequence/hookimpls.py +0 -0
  71. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/sequence/sequence.py +0 -0
  72. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/shapes.py +0 -0
  73. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/__init__.py +0 -0
  74. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/cooling_pipe.py +0 -0
  75. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/hookimpls/__init__.py +0 -0
  76. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/hookimpls/cooling_pipe.py +0 -0
  77. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/hookimpls/transport.py +0 -0
  78. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/transport/transport.py +0 -0
  79. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/unit/__init__.py +0 -0
  80. {pyroll_core-3.0.2 → pyroll_core-3.0.2.post2}/pyroll/core/unit/hookimpls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyroll-core
3
- Version: 3.0.2
3
+ Version: 3.0.2.post2
4
4
  Summary: PyRoll rolling simulation framework - core library.
5
5
  Project-URL: Homepage, https://pyroll-project.github.io
6
6
  Project-URL: Repository, https://github.com/pyroll-project/pyroll-core
@@ -44,7 +44,7 @@ from .hooks import Hook, HookHost, HookFunction, root_hooks
44
44
  from .disk_elements import DiskElementUnit
45
45
  from .config import Config, config, PlottingBackend, ConfigValue, ConfigMeta
46
46
 
47
- VERSION = "3.0.2"
47
+ VERSION = "3.0.2.post2"
48
48
 
49
49
  __all__ = [
50
50
  # grooves
@@ -234,7 +234,7 @@ class GenericElongationGroove(GrooveBase, ReprMixin):
234
234
 
235
235
  @property
236
236
  def groove_factor(self) -> float:
237
- return self.cross_section.centroid.y
237
+ return self.contour_line.centroid.y
238
238
 
239
239
  def local_depth(self, z) -> Union[float, np.ndarray]:
240
240
  z = np.abs(z)
@@ -62,6 +62,12 @@ class Unit(HookHost):
62
62
 
63
63
  self._parent = weakref.ref(parent) if parent is not None else None
64
64
 
65
+ self.convergence_history = []
66
+ """List to store the convergence history of the unit."""
67
+
68
+ self.global_iterator = 1
69
+ """Global iterator for the convergence history."""
70
+
65
71
  self.in_profile: Optional[Unit.InProfile] = None
66
72
  """The state of the incoming profile."""
67
73
 
@@ -208,6 +214,16 @@ class Unit(HookHost):
208
214
  self.out_profile.reevaluate_cache()
209
215
  current_results = self.get_root_hook_results()
210
216
 
217
+ residuum = np.max(np.abs(current_results - self._old_results) / (np.abs(self._old_results) + 1e-12))
218
+
219
+ self.convergence_history.append({
220
+ "iteration": self.global_iterator,
221
+ "residuum": residuum,
222
+ "label": self.label
223
+ })
224
+
225
+ self.global_iterator += 1
226
+
211
227
  if np.all(
212
228
  np.abs(current_results - self._old_results) <= np.abs(self._old_results) * self.iteration_precision
213
229
  ):
File without changes
File without changes