File tree Expand file tree Collapse file tree
pyroll/core/roll_pass/hookimpls Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import numpy as np
2+
3+ from ..symmetric_roll_pass import SymmetricRollPass
4+
5+
6+ @SymmetricRollPass .entry_point
7+ def entry_point (self : SymmetricRollPass ):
8+ height_change = self .in_profile .height - self .height
9+ return np .sqrt (self .roll .min_radius * height_change - height_change ** 2 / 4 )
10+
11+
12+ @SymmetricRollPass .entry_point
13+ def entry_point_square_oval (self : SymmetricRollPass ):
14+ if "square" in self .in_profile .classifiers and "oval" in self .classifiers :
15+ depth = self .roll .groove .local_depth (self .in_profile .width / 2 )
16+ height_change = self .in_profile .height - self .gap - 2 * depth
17+ radius = self .roll .max_radius - depth
18+ return np .sqrt (radius * height_change - height_change ** 2 / 4 )
19+
20+
21+ @SymmetricRollPass .velocity
22+ def velocity (self : SymmetricRollPass ):
23+ if self .roll .has_value ("neutral_angle" ):
24+ return self .roll .working_velocity * np .cos (self .roll .neutral_angle )
25+ else :
26+ return self .roll .working_velocity
27+
28+
29+ @SymmetricRollPass .roll_force
30+ def roll_force (self : SymmetricRollPass ):
31+ return (self .in_profile .flow_stress + 2 * self .out_profile .flow_stress ) / 3 * self .roll .contact_area
Original file line number Diff line number Diff line change @@ -87,30 +87,3 @@ def target_cross_section_area_from_target_width3(self: ThreeRollPass) -> float:
8787def roll_power_3 (self : ThreeRollPass ) -> float :
8888 return 3 * self .roll .roll_power
8989
90-
91- @ThreeRollPass .entry_point
92- def entry_point (self : ThreeRollPass ):
93- height_change = self .in_profile .height - self .height
94- return np .sqrt (self .roll .min_radius * height_change - height_change ** 2 / 4 )
95-
96-
97- @ThreeRollPass .entry_point
98- def entry_point_square_oval (self : ThreeRollPass ):
99- if "square" in self .in_profile .classifiers and "oval" in self .classifiers :
100- depth = self .roll .groove .local_depth (self .in_profile .width / 2 )
101- height_change = self .in_profile .height - self .gap - 2 * depth
102- radius = self .roll .max_radius - depth
103- return np .sqrt (radius * height_change - height_change ** 2 / 4 )
104-
105-
106- @ThreeRollPass .velocity
107- def velocity (self : ThreeRollPass ):
108- if self .roll .has_value ("neutral_angle" ):
109- return self .roll .working_velocity * np .cos (self .roll .neutral_angle )
110- else :
111- return self .roll .working_velocity
112-
113-
114- @ThreeRollPass .roll_force
115- def roll_force (self : ThreeRollPass ):
116- return (self .in_profile .flow_stress + 2 * self .out_profile .flow_stress ) / 3 * self .roll .contact_area
Original file line number Diff line number Diff line change @@ -55,30 +55,3 @@ def target_cross_section_area_from_target_width(self: TwoRollPass):
5555def roll_power (self : TwoRollPass ):
5656 return 2 * self .roll .roll_power
5757
58-
59- @TwoRollPass .entry_point
60- def entry_point (self : TwoRollPass ):
61- height_change = self .in_profile .height - self .height
62- return np .sqrt (self .roll .min_radius * height_change - height_change ** 2 / 4 )
63-
64-
65- @TwoRollPass .entry_point
66- def entry_point_square_oval (self : TwoRollPass ):
67- if "square" in self .in_profile .classifiers and "oval" in self .classifiers :
68- depth = self .roll .groove .local_depth (self .in_profile .width / 2 )
69- height_change = self .in_profile .height - self .gap - 2 * depth
70- radius = self .roll .max_radius - depth
71- return np .sqrt (radius * height_change - height_change ** 2 / 4 )
72-
73-
74- @TwoRollPass .velocity
75- def velocity (self : TwoRollPass ):
76- if self .roll .has_value ("neutral_angle" ):
77- return self .roll .working_velocity * np .cos (self .roll .neutral_angle )
78- else :
79- return self .roll .working_velocity
80-
81-
82- @TwoRollPass .roll_force
83- def roll_force (self : TwoRollPass ):
84- return (self .in_profile .flow_stress + 2 * self .out_profile .flow_stress ) / 3 * self .roll .contact_area
You can’t perform that action at this time.
0 commit comments