22from shapely import Polygon
33
44from . import helpers
5- from ..asymmetric_roll_pass import AsymmetricRollPass
5+ from ..asymmetric_two_roll_pass import AsymmetricTwoRollPass
66from ...grooves import GenericElongationGroove
77
88
9- @AsymmetricRollPass .usable_width
10- def usable_width (self : AsymmetricRollPass ):
9+ @AsymmetricTwoRollPass .usable_width
10+ def usable_width (self : AsymmetricTwoRollPass ):
1111 return min (self .upper_roll .groove .usable_width , self .lower_roll .groove .usable_width )
1212
1313
14- @AsymmetricRollPass .tip_width
15- def tip_width (self : AsymmetricRollPass ):
14+ @AsymmetricTwoRollPass .tip_width
15+ def tip_width (self : AsymmetricTwoRollPass ):
1616 if isinstance (self .upper_roll .groove , GenericElongationGroove ) and isinstance (
1717 self .lower_roll .groove , GenericElongationGroove
1818 ):
@@ -22,47 +22,47 @@ def tip_width(self: AsymmetricRollPass):
2222 )
2323
2424
25- @AsymmetricRollPass .usable_cross_section
26- def usable_cross_section (self : AsymmetricRollPass ) -> Polygon :
25+ @AsymmetricTwoRollPass .usable_cross_section
26+ def usable_cross_section (self : AsymmetricTwoRollPass ) -> Polygon :
2727 return helpers .out_cross_section (self , self .usable_width )
2828
2929
30- @AsymmetricRollPass .tip_cross_section
31- def tip_cross_section (self : AsymmetricRollPass ) -> Polygon :
30+ @AsymmetricTwoRollPass .tip_cross_section
31+ def tip_cross_section (self : AsymmetricTwoRollPass ) -> Polygon :
3232 return helpers .out_cross_section (self , self .tip_width )
3333
3434
35- @AsymmetricRollPass .gap
36- def gap (self : AsymmetricRollPass ):
35+ @AsymmetricTwoRollPass .gap
36+ def gap (self : AsymmetricTwoRollPass ):
3737 if self .has_set_or_cached ("height" ):
3838 return self .height - self .upper_roll .groove .depth - self .lower_roll .groove .depth
3939
4040
41- @AsymmetricRollPass .height
42- def height (self : AsymmetricRollPass ):
41+ @AsymmetricTwoRollPass .height
42+ def height (self : AsymmetricTwoRollPass ):
4343 if self .has_set_or_cached ("gap" ):
4444 return self .gap + self .upper_roll .groove .depth + self .lower_roll .groove .depth
4545
4646
47- @AsymmetricRollPass .contact_area
48- def contact_area (self : AsymmetricRollPass ):
47+ @AsymmetricTwoRollPass .contact_area
48+ def contact_area (self : AsymmetricTwoRollPass ):
4949 return self .upper_roll .contact_area + self .lower_roll .contact_area
5050
5151
52- @AsymmetricRollPass .target_cross_section_area
53- def target_cross_section_area_from_target_width (self : AsymmetricRollPass ):
52+ @AsymmetricTwoRollPass .target_cross_section_area
53+ def target_cross_section_area_from_target_width (self : AsymmetricTwoRollPass ):
5454 if self .has_value ("target_width" ):
5555 target_cross_section = helpers .out_cross_section (self , self .target_width )
5656 return target_cross_section .area
5757
5858
59- @AsymmetricRollPass .power
60- def roll_power (self : AsymmetricRollPass ):
59+ @AsymmetricTwoRollPass .power
60+ def roll_power (self : AsymmetricTwoRollPass ):
6161 return self .upper_roll .roll_power + self .lower_roll .roll_power
6262
6363
64- @AsymmetricRollPass .entry_point
65- def entry_point (self : AsymmetricRollPass ):
64+ @AsymmetricTwoRollPass .entry_point
65+ def entry_point (self : AsymmetricTwoRollPass ):
6666 height_change = self .in_profile .height - self .height
6767 return (
6868 np .sqrt (height_change )
@@ -74,8 +74,8 @@ def entry_point(self: AsymmetricRollPass):
7474 ) / (2 * (self .upper_roll .min_radius + self .lower_roll .min_radius - height_change ))
7575
7676
77- @AsymmetricRollPass .entry_point
78- def entry_point_square_oval (self : AsymmetricRollPass ):
77+ @AsymmetricTwoRollPass .entry_point
78+ def entry_point_square_oval (self : AsymmetricTwoRollPass ):
7979 if "square" in self .in_profile .classifiers and "oval" in self .classifiers :
8080 upper_depth = self .upper_roll .groove .local_depth (self .in_profile .width / 2 )
8181 lower_depth = self .lower_roll .groove .local_depth (self .in_profile .width / 2 )
@@ -92,8 +92,8 @@ def entry_point_square_oval(self: AsymmetricRollPass):
9292 ) / (2 * (upper_radius + lower_radius - height_change ))
9393
9494
95- @AsymmetricRollPass .velocity
96- def velocity (self : AsymmetricRollPass ):
95+ @AsymmetricTwoRollPass .velocity
96+ def velocity (self : AsymmetricTwoRollPass ):
9797 if self .upper_roll .has_value ("neutral_angle" ) and self .lower_roll .has_value ("neutral_angle" ):
9898 return (
9999 self .upper_roll .working_velocity * np .cos (self .upper_roll .neutral_angle )
@@ -103,8 +103,8 @@ def velocity(self: AsymmetricRollPass):
103103 return (self .upper_roll .working_velocity + self .lower_roll .working_velocity ) / 2
104104
105105
106- @AsymmetricRollPass .roll_force
107- def roll_force (self : AsymmetricRollPass ):
106+ @AsymmetricTwoRollPass .roll_force
107+ def roll_force (self : AsymmetricTwoRollPass ):
108108 return (
109109 (self .in_profile .flow_stress + 2 * self .out_profile .flow_stress )
110110 / 3
0 commit comments