PyRoll Getting Started
This Notebook explains the basic usage of PyRoll. It is meant as a first getting started walktrough the basic functionalities.
Initialization and Configuration
Import the core library and a bunch of plugins. We assing pr
as a shortcut to the PyRolL library to save typing efforts.
import pyroll.basic as pr
Import additional libraries and make some basic configuration.
import logging
import sys
logging.basicConfig(stream=sys.stdout, format='[%(levelname)s] %(name)s: %(message)s')
logging.getLogger("pyroll").setLevel(logging.INFO)
Definition of Initial Workpiece (Profile)
With the following class constructor on defines the state of the workpiece that is fed into the first unit of the rolling sequence. It holds geometrical values as well as material data.
The example case is a square-shaped profile that can originate for example from a continuous casting plant or from another rolling line.
in_profile = pr.Profile.square(
side=45e-3,
corner_radius=3e-3,
temperature=1100 + 273.15,
strain=0,
material="C45",
density=7.5e3,
specific_heat_capacity=690,
)
The profile is automatically plotted and its properties are shown.
in_profile
|
Simulating a First Roll Pass
First we want to simulate a single roll pass. For that we have to define the shape of the groove, the properties of the roll and of the pass itself.
The groove can be defined by creating a groove object. Here, the DiamondGroove
class is used to create a groove of diamond type.
We need its usable width, the tip depth (which is the tepth measured at the intersection of the flanks) and two radii, the first between roll face and flanks, the second at the tip.
We inspect the grooves contour line and its properties.
groove1 = pr.DiamondGroove(
usable_width=76.55e-3,
tip_depth=22.1e-3,
r1=12e-3,
r2=8e-3,
)
groove1
|
Now we define the roll, where the groove is applied in. FOr now we need only one addtional property, the nominal radius. The nominal radius is the radius of the roll without groove. Again, we can directly inspect the properties of the created object.
roll1 = pr.Roll(
groove=groove1,
nominal_radius=328e-3,
)
roll1
Roll | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
groove |
| ||||||||||||||||||||||||||||||||||||
nominal_radius | 0.328 |
The roll can now be used to define the pass. The upper and lower working rolls of the pass are equal, so we need only one. We add the height of the roll gap and the rolling velocity as additonal properties. Also, we give a label to the pass for human identification (probably the internal name of the groove or pass in your organisation).
Again, we can directly inspect the properties. We see the geometry of the roll pass within the high point (narrowest point), for now without information about material flow, since we simulated nothing unitl here.
pass1 = pr.RollPass(
label="Diamond I",
roll=roll1,
gap=3e-3,
velocity=1,
)
pass1
|
To actually simulate the roll pass, we use the solve
method and give the input profile as argument.
The state of the output profile is returned and we can directly inspect its properties.
pass1_out = pass1.solve(in_profile)
pass1_out
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Diamond I'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Diamond I''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Diamond I'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.009 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Diamond I' after 6 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.063 s.
|
When we now inspect the roll pass object again, we see lots of additional information calculated by the simulation. Note also, that the plot now includes the input and ouput profiles.
pass1
|
Simulating a Pass Sequence
Simulating each pass distinctly is a bit cumbersome. But we can combine several passes in a pass sequence. Lets define first a second pass, this time with a square-type groove. The roll and pass are defined as above.
groove2 = pr.SquareGroove(
usable_width=52.7e-3,
tip_depth=25.95e-3,
r1=8e-3,
r2=6e-3
)
groove2
|
roll2 = pr.Roll(
groove=groove2,
nominal_radius=328e-3,
)
roll2
Roll | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
groove |
| ||||||||||||||||||||||||||||||||||||
nominal_radius | 0.328 |
pass2 = pr.RollPass(
label="Square II",
roll=roll2,
gap=3e-3,
velocity=1,
)
pass2
|
We can now use both passes to create a pass sequence.
sequence = pr.PassSequence([
pass1,
pass2
])
When we inspect the sequence, we will notice that the first pass is already filled with solution data, since we reused the object from above.
sequence
PassSequence | |
---|---|
in_profile | None |
label | '' |
out_profile | None |
units | [RollPass(abs_draught=-0.008297025563206266, back_tension=0, contact_area=0.006017544120045988, deformation_heat_efficiency=0.95, deformation_resistance=114186889.3060211, disk_element_count=0, disk_elements=[], displaced_cross_section=MultiPolygon(area=0.00032276382739222846, height=0.061154328932550704, perimeter=0.1955694335652799, width=0.03890114896397893), draught=0.8118125462066977, duration=0.07056039637464354, elongation=1.0921265268668339, elongation_efficiency=0.5272081015697767, entry_angle=-0.2221144454231247, entry_point=-0.07056039637464354, front_tension=0, gap=0.003, height=0.0447243903911893, in_profile=InProfile(classifiers={'vertical', 'square', 'diamond', 'rotated'}, cross_section=Polygon(area=0.0020172289364149133, height=0.061154328932550704, perimeter=0.17484198694172845, width=0.061154328932550704), density=7500.0, equivalent_height=0.04408915363889982, equivalent_rectangle=Polygon(area=0.0026962426039910444, height=0.04408915363889982, perimeter=0.21048696514290105, width=0.061154328932550704), equivalent_width=0.061154328932550704, flow_stress=80925543.43597992, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), height=0.061154328932550704, lendl_section=Polygon(area=0.0017151187334025954, height=0.061154328932550704, perimeter=0.15692698106999506, width=0.03890114896397893), length=0, material='C45', specific_heat_capacity=690, strain=0, t=0, temperature=1373.15, width=0.061154328932550704), inverse_forming_efficiency=1.2871314892268648, iteration_precision=0.001, label='Diamond I', lendl_width=0.03890114896397893, length=0.07056039637464354, log_draught=-0.20848581989669276, log_elongation=0.08812673770481022, log_spread=0.07020055622558032, max_iteration_count=100, orientation=0, out_profile=OutProfile(classifiers={'diamond', 'generic_elongation'}, cross_section=Polygon(area=0.0018470652317200606, height=0.0447243903911893, perimeter=0.1684260697843319, width=0.06560167360406856), cross_section_error=-0.0360789946906479, cross_section_filling_ratio=0.9639210053093521, density=7500.0, equivalent_height=0.035792128075693555, equivalent_rectangle=Polygon(area=0.002348023503616667, height=0.035792128075693555, perimeter=0.20278760335952423, width=0.06560167360406856), equivalent_width=0.06560167360406856, filling_error=-0.143021899359, filling_ratio=0.856978100641, flow_stress=92604868.62961258, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), lendl_section=Polygon(area=0.0013923549060103674, height=0.0447243903911893, perimeter=0.13759629786652613, width=0.03890114896397893), length=0.0, material='C45', specific_heat_capacity=690, strain=0.19349552465258638, t=0.07056039637464354, temperature=1373.2479283757593, width=0.06560167360406856), power=367083.63727724086, reappearing_cross_section=MultiPolygon(area=0.0001526001226973766, height=0.02473846134281035, perimeter=0.14769862316078058, width=0.06560167360406856), rel_draught=-0.1881874537933023, roll=Roll(contact_area=0.003008772060022994, contact_heat_transfer_coefficient=6000.0, contact_length=0.07056039637464354, contour_points=array([[-5.68006321e-02, 0.00000000e+00], [-4.14906321e-02, 0.00000000e+00], [-4.11906125e-02, 3.75107461e-06], [-4.08905930e-02, 1.50113425e-05], [-4.05905735e-02, 3.38020023e-05], [-4.02905539e-02, 6.01586074e-05], [-3.99905344e-02, 9.41314051e-05], [-3.96905149e-02, 1.35785821e-04], [-3.93904953e-02, 1.85203103e-04], [-3.90904758e-02, 2.42481133e-04], [-3.87904563e-02, 3.07735434e-04], [-3.84904367e-02, 3.81100396e-04], [-3.81904172e-02, 4.62730744e-04], [-3.78903977e-02, 5.52803299e-04], [-3.75903781e-02, 6.51519075e-04], [-3.72903586e-02, 7.59105780e-04], [-3.69903391e-02, 8.75820795e-04], [-3.66903195e-02, 1.00195473e-03], [-3.63903000e-02, 1.13783572e-03], [-3.60902805e-02, 1.28383451e-03], [-3.57902609e-02, 1.44037079e-03], [-3.54902414e-02, 1.60792071e-03], [-4.00026044e-03, 1.97902481e-02], [-3.80024741e-03, 1.99019480e-02], [-3.60023439e-03, 2.00063055e-02], [-3.40022137e-03, 2.01036381e-02], [-3.20020835e-03, 2.01942254e-02], [-3.00019533e-03, 2.02783147e-02], [-2.80018231e-03, 2.03561247e-02], [-2.60016928e-03, 2.04278491e-02], [-2.40015626e-03, 2.04936597e-02], [-2.20014324e-03, 2.05537080e-02], [-2.00013022e-03, 2.06081283e-02], [-1.80011720e-03, 2.06570382e-02], [-1.60010417e-03, 2.07005411e-02], [-1.40009115e-03, 2.07387265e-02], [-1.20007813e-03, 2.07716713e-02], [-1.00006511e-03, 2.07994409e-02], [-8.00052087e-04, 2.08220895e-02], [-6.00039066e-04, 2.08396605e-02], [-4.00026044e-04, 2.08521876e-02], [-2.00013022e-04, 2.08596945e-02], [ 0.00000000e+00, 2.08621952e-02], [ 2.00013022e-04, 2.08596945e-02], [ 4.00026044e-04, 2.08521876e-02], [ 6.00039066e-04, 2.08396605e-02], [ 8.00052087e-04, 2.08220895e-02], [ 1.00006511e-03, 2.07994409e-02], [ 1.20007813e-03, 2.07716713e-02], [ 1.40009115e-03, 2.07387265e-02], [ 1.60010417e-03, 2.07005411e-02], [ 1.80011720e-03, 2.06570382e-02], [ 2.00013022e-03, 2.06081283e-02], [ 2.20014324e-03, 2.05537080e-02], [ 2.40015626e-03, 2.04936597e-02], [ 2.60016928e-03, 2.04278491e-02], [ 2.80018231e-03, 2.03561247e-02], [ 3.00019533e-03, 2.02783147e-02], [ 3.20020835e-03, 2.01942254e-02], [ 3.40022137e-03, 2.01036381e-02], [ 3.60023439e-03, 2.00063055e-02], [ 3.80024741e-03, 1.99019480e-02], [ 4.00026044e-03, 1.97902481e-02], [ 3.54902414e-02, 1.60792071e-03], [ 3.57902609e-02, 1.44037079e-03], [ 3.60902805e-02, 1.28383451e-03], [ 3.63903000e-02, 1.13783572e-03], [ 3.66903195e-02, 1.00195473e-03], [ 3.69903391e-02, 8.75820795e-04], [ 3.72903586e-02, 7.59105780e-04], [ 3.75903781e-02, 6.51519075e-04], [ 3.78903977e-02, 5.52803299e-04], [ 3.81904172e-02, 4.62730744e-04], [ 3.84904367e-02, 3.81100396e-04], [ 3.87904563e-02, 3.07735434e-04], [ 3.90904758e-02, 2.42481133e-04], [ 3.93904953e-02, 1.85203103e-04], [ 3.96905149e-02, 1.35785821e-04], [ 3.99905344e-02, 9.41314051e-05], [ 4.02905539e-02, 6.01586074e-05], [ 4.05905735e-02, 3.38020023e-05], [ 4.08905930e-02, 1.50113425e-05], [ 4.11906125e-02, 3.75107461e-06], [ 4.14906321e-02, 0.00000000e+00], [ 5.68006321e-02, 0.00000000e+00]]), groove=DiamondGroove(alpha1=0.5236363668157296, alpha2=0.5236363668157296, classifiers={'diamond', 'generic_elongation'}, contour_line=LineString(height=0.020862195195594648, length=0.12428942750252188, width=0.11360126410252692), depth=0.020862195195594648, flank_angle=0.5236363668157296, ground_width=0.004287509401684611, r1=0.012, r2=0.008, tip_angle=None, tip_depth=0.0221, usable_width=0.07655), max_radius=0.328, min_radius=0.3071378048044054, neutral_angle=-0.08848788138523542, nominal_radius=0.328, roll_power=183541.81863862043, roll_torque=9543.913548302875, rotational_frequency=3.060755690269962, surface_velocity=1.0039278664085476, temperature=293.15, working_radius=0.32030304866385906), roll_force=343562.32216489466, roll_torque_loss_function=0.6313372329443294, rotation=True, spread=1.0727233010180357, strain=0.19349552465258638, strain_rate=2.7422681078095614, target_cross_section_area=0.0019161997939107886, target_filling_ratio=1.0, target_width=0.07655, temperature_change=0.09792837575923619, temperature_change_by_contact=-3.9580947067488963, temperature_change_by_deformation=4.0560230825081325, usable_cross_section=Polygon(area=0.0019161997939107886, height=0.0447243903911893, perimeter=0.18207551252845486, width=0.07655), usable_width=0.07655, velocity=1, volume=0.00013433192769727247, wusatowski_exponent=0.40040229722506016, wusatowski_friction_coefficient=1, wusatowski_material_coefficient=1, wusatowski_temperature_coefficient=1, wusatowski_velocity_coefficient=0.9868101140877441, zouhar_contact_c1=1, zouhar_contact_c2=0.3, zouhar_contact_c3=1, zouhar_contact_in_width=0.0), RollPass(disk_elements=[], gap=0.003, in_profile=None, label='Square II', orientation=0, out_profile=None, roll=Roll(contour_points=array([[-4.01679241e-02, 0.00000000e+00], [-2.96279241e-02, 0.00000000e+00], [-2.93472528e-02, 4.92503864e-06], [-2.90665815e-02, 1.97183915e-05], [-2.87859103e-02, 4.44351087e-05], [-2.85052390e-02, 7.91680863e-05], [-2.82245677e-02, 1.24049839e-04], [-2.79438965e-02, 1.79255089e-04], [-2.76632252e-02, 2.45004304e-04], [-2.73825539e-02, 3.21568336e-04], [-2.71018827e-02, 4.09274431e-04], [-2.68212114e-02, 5.08513914e-04], [-2.65405401e-02, 6.19752025e-04], [-2.62598688e-02, 7.43540544e-04], [-2.59791976e-02, 8.80534094e-04], [-2.56985263e-02, 1.03151143e-03], [-2.54178550e-02, 1.19740355e-03], [-2.51371838e-02, 1.37933151e-03], [-2.48565125e-02, 1.57865814e-03], [-2.45758412e-02, 1.79706048e-03], [-2.42951699e-02, 2.03663407e-03], [-2.40144987e-02, 2.30004780e-03], [-4.21006906e-03, 2.18038409e-02], [-3.99956561e-03, 2.20014012e-02], [-3.78906215e-03, 2.21810814e-02], [-3.57855870e-03, 2.23448832e-02], [-3.36805525e-03, 2.24943781e-02], [-3.15755180e-03, 2.26308241e-02], [-2.94704834e-03, 2.27552432e-02], [-2.73654489e-03, 2.28684762e-02], [-2.52604144e-03, 2.29712213e-02], [-2.31553798e-03, 2.30640627e-02], [-2.10503453e-03, 2.31474913e-02], [-1.89453108e-03, 2.32219209e-02], [-1.68402762e-03, 2.32877005e-02], [-1.47352417e-03, 2.33451235e-02], [-1.26302072e-03, 2.33944354e-02], [-1.05251727e-03, 2.34358394e-02], [-8.42013812e-04, 2.34695007e-02], [-6.31510359e-04, 2.34955504e-02], [-4.21006906e-04, 2.35140880e-02], [-2.10503453e-04, 2.35251830e-02], [ 0.00000000e+00, 2.35288768e-02], [ 2.10503453e-04, 2.35251830e-02], [ 4.21006906e-04, 2.35140880e-02], [ 6.31510359e-04, 2.34955504e-02], [ 8.42013812e-04, 2.34695007e-02], [ 1.05251727e-03, 2.34358394e-02], [ 1.26302072e-03, 2.33944354e-02], [ 1.47352417e-03, 2.33451235e-02], [ 1.68402762e-03, 2.32877005e-02], [ 1.89453108e-03, 2.32219209e-02], [ 2.10503453e-03, 2.31474913e-02], [ 2.31553798e-03, 2.30640627e-02], [ 2.52604144e-03, 2.29712213e-02], [ 2.73654489e-03, 2.28684762e-02], [ 2.94704834e-03, 2.27552432e-02], [ 3.15755180e-03, 2.26308241e-02], [ 3.36805525e-03, 2.24943781e-02], [ 3.57855870e-03, 2.23448832e-02], [ 3.78906215e-03, 2.21810814e-02], [ 3.99956561e-03, 2.20014012e-02], [ 4.21006906e-03, 2.18038409e-02], [ 2.40144987e-02, 2.30004780e-03], [ 2.42951699e-02, 2.03663407e-03], [ 2.45758412e-02, 1.79706048e-03], [ 2.48565125e-02, 1.57865814e-03], [ 2.51371838e-02, 1.37933151e-03], [ 2.54178550e-02, 1.19740355e-03], [ 2.56985263e-02, 1.03151143e-03], [ 2.59791976e-02, 8.80534094e-04], [ 2.62598688e-02, 7.43540544e-04], [ 2.65405401e-02, 6.19752025e-04], [ 2.68212114e-02, 5.08513914e-04], [ 2.71018827e-02, 4.09274431e-04], [ 2.73825539e-02, 3.21568336e-04], [ 2.76632252e-02, 2.45004304e-04], [ 2.79438965e-02, 1.79255089e-04], [ 2.82245677e-02, 1.24049839e-04], [ 2.85052390e-02, 7.91680863e-05], [ 2.87859103e-02, 4.44351087e-05], [ 2.90665815e-02, 1.97183915e-05], [ 2.93472528e-02, 4.92503864e-06], [ 2.96279241e-02, 0.00000000e+00], [ 4.01679241e-02, 0.00000000e+00]]), groove=SquareGroove(alpha1=0.7777501289619068, alpha2=0.7777501289619068, classifiers={'square', 'diamond', 'generic_elongation'}, contour_line=LineString(height=0.02352887675368554, length=0.09844743716085605, width=0.08033584817370697), depth=0.02352887675368554, flank_angle=0.7777501289619068, ground_width=0.004916886130280233, r1=0.008, r2=0.006, tip_angle=None, tip_depth=0.02595, usable_width=0.0527), nominal_radius=0.328), velocity=1)] |
We can simulate the pass sequence in the same way as the roll pass.
sequence.solve(in_profile)
[INFO] pyroll.core.PassSequence: Started solving of PassSequence.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Diamond I'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Diamond I''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Diamond I'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Diamond I' after 5 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.042 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Square II'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Square II''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Square II'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Square II' after 6 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.048 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Diamond I'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Diamond I''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Diamond I'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.004 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Diamond I' after 5 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.043 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Square II'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Square II''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Square II'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.004 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Square II' after 4 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.035 s.
[INFO] pyroll.core.PassSequence: Finished solving of PassSequence after 2 iterations.
[INFO] pyroll.core.PassSequence: Solution took 0.182 s.
|
… and inspect the results accordingly.
sequence
PassSequence | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
duration | 0.1389144119735775 | ||||||||||||||||||||||||||||||||
elongation | 1.3389161863972048 | ||||||||||||||||||||||||||||||||
in_profile |
| ||||||||||||||||||||||||||||||||
iteration_precision | 0.001 | ||||||||||||||||||||||||||||||||
label | '' | ||||||||||||||||||||||||||||||||
log_elongation | 0.2918604705730934 | ||||||||||||||||||||||||||||||||
max_iteration_count | 100 | ||||||||||||||||||||||||||||||||
out_profile |
| ||||||||||||||||||||||||||||||||
power | 799425.1283745661 | ||||||||||||||||||||||||||||||||
units | [RollPass(abs_draught=-0.008297025563206266, back_tension=0, contact_area=0.006017544120045988, deformation_heat_efficiency=0.95, deformation_resistance=114184844.83414835, disk_element_count=0, disk_elements=[], displaced_cross_section=MultiPolygon(area=0.00032276382739222846, height=0.061154328932550704, perimeter=0.1955694335652799, width=0.03890114896397893), draught=0.8118125462066977, duration=0.07056039637464354, elongation=1.0921265268668339, elongation_efficiency=0.5272081015697767, entry_angle=-0.2221144454231247, entry_point=-0.07056039637464354, front_tension=0, gap=0.003, height=0.0447243903911893, in_profile=InProfile(classifiers={'vertical', 'square', 'diamond', 'rotated'}, cross_section=Polygon(area=0.0020172289364149133, height=0.061154328932550704, perimeter=0.17484198694172845, width=0.061154328932550704), density=7500.0, equivalent_height=0.04408915363889982, equivalent_rectangle=Polygon(area=0.0026962426039910444, height=0.04408915363889982, perimeter=0.21048696514290105, width=0.061154328932550704), equivalent_width=0.061154328932550704, flow_stress=80925543.43597992, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), height=0.061154328932550704, lendl_section=Polygon(area=0.0017151187334025954, height=0.061154328932550704, perimeter=0.15692698106999506, width=0.03890114896397893), length=0, material='C45', specific_heat_capacity=690, strain=0, t=0, temperature=1373.15, width=0.061154328932550704), inverse_forming_efficiency=1.2871314892268648, iteration_precision=0.001, label='Diamond I', lendl_width=0.03890114896397893, length=0.07056039637464354, log_draught=-0.20848581989669276, log_elongation=0.08812673770481022, log_spread=0.07020055622558032, max_iteration_count=100, orientation=0, out_profile=OutProfile(classifiers={'diamond', 'generic_elongation'}, cross_section=Polygon(area=0.0018470652317200606, height=0.0447243903911893, perimeter=0.1684260697843319, width=0.06560167360406856), cross_section_error=-0.0360789946906479, cross_section_filling_ratio=0.9639210053093521, density=7500.0, equivalent_height=0.035792128075693555, equivalent_rectangle=Polygon(area=0.002348023503616667, height=0.035792128075693555, perimeter=0.20278760335952423, width=0.06560167360406856), equivalent_width=0.06560167360406856, filling_error=-0.143021899359, filling_ratio=0.856978100641, flow_stress=92605866.9587439, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), lendl_section=Polygon(area=0.0013923549060103674, height=0.0447243903911893, perimeter=0.13759629786652613, width=0.03890114896397893), length=0.0, material='C45', specific_heat_capacity=690, strain=0.19349552465258638, t=0.07056039637464354, temperature=1373.2478626568889, width=0.06560167360406856), power=367077.06478738744, reappearing_cross_section=MultiPolygon(area=0.0001526001226973766, height=0.02473846134281035, perimeter=0.14769862316078058, width=0.06560167360406856), rel_draught=-0.1881874537933023, roll=Roll(contact_area=0.003008772060022994, contact_heat_transfer_coefficient=6000.0, contact_length=0.07056039637464354, contour_points=array([[-5.68006321e-02, 0.00000000e+00], [-4.14906321e-02, 0.00000000e+00], [-4.11906125e-02, 3.75107461e-06], [-4.08905930e-02, 1.50113425e-05], [-4.05905735e-02, 3.38020023e-05], [-4.02905539e-02, 6.01586074e-05], [-3.99905344e-02, 9.41314051e-05], [-3.96905149e-02, 1.35785821e-04], [-3.93904953e-02, 1.85203103e-04], [-3.90904758e-02, 2.42481133e-04], [-3.87904563e-02, 3.07735434e-04], [-3.84904367e-02, 3.81100396e-04], [-3.81904172e-02, 4.62730744e-04], [-3.78903977e-02, 5.52803299e-04], [-3.75903781e-02, 6.51519075e-04], [-3.72903586e-02, 7.59105780e-04], [-3.69903391e-02, 8.75820795e-04], [-3.66903195e-02, 1.00195473e-03], [-3.63903000e-02, 1.13783572e-03], [-3.60902805e-02, 1.28383451e-03], [-3.57902609e-02, 1.44037079e-03], [-3.54902414e-02, 1.60792071e-03], [-4.00026044e-03, 1.97902481e-02], [-3.80024741e-03, 1.99019480e-02], [-3.60023439e-03, 2.00063055e-02], [-3.40022137e-03, 2.01036381e-02], [-3.20020835e-03, 2.01942254e-02], [-3.00019533e-03, 2.02783147e-02], [-2.80018231e-03, 2.03561247e-02], [-2.60016928e-03, 2.04278491e-02], [-2.40015626e-03, 2.04936597e-02], [-2.20014324e-03, 2.05537080e-02], [-2.00013022e-03, 2.06081283e-02], [-1.80011720e-03, 2.06570382e-02], [-1.60010417e-03, 2.07005411e-02], [-1.40009115e-03, 2.07387265e-02], [-1.20007813e-03, 2.07716713e-02], [-1.00006511e-03, 2.07994409e-02], [-8.00052087e-04, 2.08220895e-02], [-6.00039066e-04, 2.08396605e-02], [-4.00026044e-04, 2.08521876e-02], [-2.00013022e-04, 2.08596945e-02], [ 0.00000000e+00, 2.08621952e-02], [ 2.00013022e-04, 2.08596945e-02], [ 4.00026044e-04, 2.08521876e-02], [ 6.00039066e-04, 2.08396605e-02], [ 8.00052087e-04, 2.08220895e-02], [ 1.00006511e-03, 2.07994409e-02], [ 1.20007813e-03, 2.07716713e-02], [ 1.40009115e-03, 2.07387265e-02], [ 1.60010417e-03, 2.07005411e-02], [ 1.80011720e-03, 2.06570382e-02], [ 2.00013022e-03, 2.06081283e-02], [ 2.20014324e-03, 2.05537080e-02], [ 2.40015626e-03, 2.04936597e-02], [ 2.60016928e-03, 2.04278491e-02], [ 2.80018231e-03, 2.03561247e-02], [ 3.00019533e-03, 2.02783147e-02], [ 3.20020835e-03, 2.01942254e-02], [ 3.40022137e-03, 2.01036381e-02], [ 3.60023439e-03, 2.00063055e-02], [ 3.80024741e-03, 1.99019480e-02], [ 4.00026044e-03, 1.97902481e-02], [ 3.54902414e-02, 1.60792071e-03], [ 3.57902609e-02, 1.44037079e-03], [ 3.60902805e-02, 1.28383451e-03], [ 3.63903000e-02, 1.13783572e-03], [ 3.66903195e-02, 1.00195473e-03], [ 3.69903391e-02, 8.75820795e-04], [ 3.72903586e-02, 7.59105780e-04], [ 3.75903781e-02, 6.51519075e-04], [ 3.78903977e-02, 5.52803299e-04], [ 3.81904172e-02, 4.62730744e-04], [ 3.84904367e-02, 3.81100396e-04], [ 3.87904563e-02, 3.07735434e-04], [ 3.90904758e-02, 2.42481133e-04], [ 3.93904953e-02, 1.85203103e-04], [ 3.96905149e-02, 1.35785821e-04], [ 3.99905344e-02, 9.41314051e-05], [ 4.02905539e-02, 6.01586074e-05], [ 4.05905735e-02, 3.38020023e-05], [ 4.08905930e-02, 1.50113425e-05], [ 4.11906125e-02, 3.75107461e-06], [ 4.14906321e-02, 0.00000000e+00], [ 5.68006321e-02, 0.00000000e+00]]), groove=DiamondGroove(alpha1=0.5236363668157296, alpha2=0.5236363668157296, classifiers={'diamond', 'generic_elongation'}, contour_line=LineString(height=0.020862195195594648, length=0.12428942750252188, width=0.11360126410252692), depth=0.020862195195594648, flank_angle=0.5236363668157296, ground_width=0.004287509401684611, r1=0.012, r2=0.008, tip_angle=None, tip_depth=0.0221, usable_width=0.07655), max_radius=0.328, min_radius=0.3071378048044054, neutral_angle=-0.08848788138523542, nominal_radius=0.328, roll_power=183538.53239369372, roll_torque=9543.742668240164, rotational_frequency=3.060755690269962, surface_velocity=1.0039278664085476, temperature=293.15, working_radius=0.32030304866385906), roll_force=343556.1708150464, roll_torque_loss_function=0.6313372329443294, rotation=True, spread=1.0727233010180357, strain=0.19349552465258638, strain_rate=2.7422681078095614, target_cross_section_area=0.0019161997939107886, target_filling_ratio=1.0, target_width=0.07655, temperature_change=0.09786265688877371, temperature_change_by_contact=-3.9580878041024947, temperature_change_by_deformation=4.055950460991268, usable_cross_section=Polygon(area=0.0019161997939107886, height=0.0447243903911893, perimeter=0.18207551252845486, width=0.07655), usable_width=0.07655, velocity=1, volume=0.00013433192769727247, wusatowski_exponent=0.40040229722506016, wusatowski_friction_coefficient=1, wusatowski_material_coefficient=1, wusatowski_temperature_coefficient=1, wusatowski_velocity_coefficient=0.9868101140877441, zouhar_contact_c1=1, zouhar_contact_c2=0.3, zouhar_contact_c3=1, zouhar_contact_in_width=0.0), RollPass(abs_draught=-0.011744216506831176, back_tension=0, contact_area=0.004950223105496217, deformation_heat_efficiency=0.95, deformation_resistance=125402777.9593291, disk_element_count=0, disk_elements=[], displaced_cross_section=MultiPolygon(area=0.00042201829248566223, height=0.06560167360406856, perimeter=0.22098420234368976, width=0.03593413764470279), draught=0.7580237803992556, duration=0.06835401559893399, elongation=1.2259716740315594, elongation_efficiency=0.8067231586565428, entry_angle=-0.21600502011964234, entry_point=-0.06835401559893399, front_tension=0, gap=0.003, height=0.050057753507371086, in_profile=InProfile(classifiers={'vertical', 'diamond', 'generic_elongation', 'rotated'}, cross_section=Polygon(area=0.001847065231720061, height=0.06560167360406856, perimeter=0.1684260697843319, width=0.0447243903911893), cross_section_error=-0.0360789946906479, cross_section_filling_ratio=0.9639210053093521, density=7500.0, equivalent_height=0.04853458958160799, equivalent_rectangle=Polygon(area=0.0021706799319239846, height=0.04853458958160799, perimeter=0.18651795994559456, width=0.0447243903911893), equivalent_width=0.0447243903911893, filling_error=-0.143021899359, filling_ratio=0.856978100641, flow_stress=99988958.48904896, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), height=0.06560167360406856, lendl_section=Polygon(area=0.0017440486225546593, height=0.06560167360406856, perimeter=0.16410918845670697, width=0.03593413764470279), length=0.0, material='C45', specific_heat_capacity=690, strain=0.19349552465258638, t=0.07056039637464354, temperature=1373.2478626568889, width=0.0447243903911893), inverse_forming_efficiency=1.3106015489921357, iteration_precision=0.001, label='Square II', lendl_width=0.03593413764470279, length=0.06835401559893399, log_draught=-0.27704052127348916, log_elongation=0.20373373286828342, log_spread=0.13785440778681535, max_iteration_count=100, orientation=0, out_profile=OutProfile(classifiers={'square', 'diamond', 'generic_elongation'}, cross_section=Polygon(area=0.0015066133017951875, height=0.050057753507371086, perimeter=0.14836106149239386, width=0.05133503214495572), cross_section_error=-0.004275947072762465, cross_section_filling_ratio=0.9957240529272375, density=7500.0, equivalent_height=0.03679037307477681, equivalent_rectangle=Polygon(area=0.0018886349844185809, height=0.03679037307477681, perimeter=0.17625081043946506, width=0.05133503214495572), equivalent_width=0.05133503214495572, filling_error=-0.025900718312035664, filling_ratio=0.9740992816879643, flow_stress=93527611.37967633, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), lendl_section=Polygon(area=0.0013220303300689974, height=0.050057753507371086, perimeter=0.13492042233024093, width=0.03593413764470279), length=0.0, material='C45', specific_heat_capacity=690, strain=0.4959992128749343, t=0.1389144119735775, temperature=1376.3798098531684, width=0.05133503214495572), power=432348.0635871786, reappearing_cross_section=MultiPolygon(area=8.156636256078806e-05, height=0.019511352110814523, perimeter=0.09580292893303596, width=0.05133503214495572), rel_draught=-0.24197621960074442, roll=Roll(contact_area=0.0024751115527481085, contact_heat_transfer_coefficient=6000.0, contact_length=0.06835401559893399, contour_points=array([[-4.01679241e-02, 0.00000000e+00], [-2.96279241e-02, 0.00000000e+00], [-2.93472528e-02, 4.92503864e-06], [-2.90665815e-02, 1.97183915e-05], [-2.87859103e-02, 4.44351087e-05], [-2.85052390e-02, 7.91680863e-05], [-2.82245677e-02, 1.24049839e-04], [-2.79438965e-02, 1.79255089e-04], [-2.76632252e-02, 2.45004304e-04], [-2.73825539e-02, 3.21568336e-04], [-2.71018827e-02, 4.09274431e-04], [-2.68212114e-02, 5.08513914e-04], [-2.65405401e-02, 6.19752025e-04], [-2.62598688e-02, 7.43540544e-04], [-2.59791976e-02, 8.80534094e-04], [-2.56985263e-02, 1.03151143e-03], [-2.54178550e-02, 1.19740355e-03], [-2.51371838e-02, 1.37933151e-03], [-2.48565125e-02, 1.57865814e-03], [-2.45758412e-02, 1.79706048e-03], [-2.42951699e-02, 2.03663407e-03], [-2.40144987e-02, 2.30004780e-03], [-4.21006906e-03, 2.18038409e-02], [-3.99956561e-03, 2.20014012e-02], [-3.78906215e-03, 2.21810814e-02], [-3.57855870e-03, 2.23448832e-02], [-3.36805525e-03, 2.24943781e-02], [-3.15755180e-03, 2.26308241e-02], [-2.94704834e-03, 2.27552432e-02], [-2.73654489e-03, 2.28684762e-02], [-2.52604144e-03, 2.29712213e-02], [-2.31553798e-03, 2.30640627e-02], [-2.10503453e-03, 2.31474913e-02], [-1.89453108e-03, 2.32219209e-02], [-1.68402762e-03, 2.32877005e-02], [-1.47352417e-03, 2.33451235e-02], [-1.26302072e-03, 2.33944354e-02], [-1.05251727e-03, 2.34358394e-02], [-8.42013812e-04, 2.34695007e-02], [-6.31510359e-04, 2.34955504e-02], [-4.21006906e-04, 2.35140880e-02], [-2.10503453e-04, 2.35251830e-02], [ 0.00000000e+00, 2.35288768e-02], [ 2.10503453e-04, 2.35251830e-02], [ 4.21006906e-04, 2.35140880e-02], [ 6.31510359e-04, 2.34955504e-02], [ 8.42013812e-04, 2.34695007e-02], [ 1.05251727e-03, 2.34358394e-02], [ 1.26302072e-03, 2.33944354e-02], [ 1.47352417e-03, 2.33451235e-02], [ 1.68402762e-03, 2.32877005e-02], [ 1.89453108e-03, 2.32219209e-02], [ 2.10503453e-03, 2.31474913e-02], [ 2.31553798e-03, 2.30640627e-02], [ 2.52604144e-03, 2.29712213e-02], [ 2.73654489e-03, 2.28684762e-02], [ 2.94704834e-03, 2.27552432e-02], [ 3.15755180e-03, 2.26308241e-02], [ 3.36805525e-03, 2.24943781e-02], [ 3.57855870e-03, 2.23448832e-02], [ 3.78906215e-03, 2.21810814e-02], [ 3.99956561e-03, 2.20014012e-02], [ 4.21006906e-03, 2.18038409e-02], [ 2.40144987e-02, 2.30004780e-03], [ 2.42951699e-02, 2.03663407e-03], [ 2.45758412e-02, 1.79706048e-03], [ 2.48565125e-02, 1.57865814e-03], [ 2.51371838e-02, 1.37933151e-03], [ 2.54178550e-02, 1.19740355e-03], [ 2.56985263e-02, 1.03151143e-03], [ 2.59791976e-02, 8.80534094e-04], [ 2.62598688e-02, 7.43540544e-04], [ 2.65405401e-02, 6.19752025e-04], [ 2.68212114e-02, 5.08513914e-04], [ 2.71018827e-02, 4.09274431e-04], [ 2.73825539e-02, 3.21568336e-04], [ 2.76632252e-02, 2.45004304e-04], [ 2.79438965e-02, 1.79255089e-04], [ 2.82245677e-02, 1.24049839e-04], [ 2.85052390e-02, 7.91680863e-05], [ 2.87859103e-02, 4.44351087e-05], [ 2.90665815e-02, 1.97183915e-05], [ 2.93472528e-02, 4.92503864e-06], [ 2.96279241e-02, 0.00000000e+00], [ 4.01679241e-02, 0.00000000e+00]]), groove=SquareGroove(alpha1=0.7777501289619068, alpha2=0.7777501289619068, classifiers={'square', 'diamond', 'generic_elongation'}, contour_line=LineString(height=0.02352887675368554, length=0.09844743716085605, width=0.08033584817370697), depth=0.02352887675368554, flank_angle=0.7777501289619068, ground_width=0.004916886130280233, r1=0.008, r2=0.006, tip_angle=None, tip_depth=0.02595, usable_width=0.0527), max_radius=0.328, min_radius=0.3044711232463145, neutral_angle=-0.08152457585776207, nominal_radius=0.328, roll_power=216174.0317935893, roll_torque=11247.413973323984, rotational_frequency=3.0589401092246282, surface_velocity=1.0033323558256781, temperature=293.15, working_radius=0.3189206845252471), roll_force=310385.8644738413, roll_torque_loss_function=0.6387774455422222, rotation=True, spread=1.147808426139414, strain=0.3025036882223479, strain_rate=4.425543774886367, target_cross_section_area=0.001513083165326813, target_filling_ratio=1.0, target_width=0.0527, temperature_change=3.131947196279585, temperature_change_by_contact=-3.8319296546815655, temperature_change_by_deformation=6.96387685096115, usable_cross_section=Polygon(area=0.001513083165326813, height=0.050057753507371086, perimeter=0.15003905934753262, width=0.0527), usable_width=0.0527, velocity=1, volume=0.00011074015464206036, wusatowski_exponent=0.5257255955465194, wusatowski_friction_coefficient=1, wusatowski_material_coefficient=1, wusatowski_temperature_coefficient=1, wusatowski_velocity_coefficient=0.992237400557715, zouhar_contact_c1=1, zouhar_contact_c2=0.28, zouhar_contact_c3=1, zouhar_contact_in_width=0.009321567951667805)] |
We can pick a single roll pass from the sequence by using an index, which give us the same object as referenced by pass2
. Note the zero-based indexing in Python.
sequence[1]
|
Also, we can index by label, which is especially useful in larger pass sequences.
sequence["Square II"]
|
Adding Interstand-Space
In reality, two passes are not aligned directly to each other, there is always some space between where the workpiece cools down and the microstructure evolves. We can model this by adding a transport.
We assume here a continuous rolling line with a space of 400mm between the passes.
transport = pr.Transport(
label="I->II",
length=400e-3,
)
transport
Transport 'I->II' | |
---|---|
disk_elements | [] |
in_profile | None |
label | 'I->II' |
length | 0.4 |
out_profile | None |
Lets create now a second sequence with a transport between the roll passes. We copy the passes using deepcopy
to keep the solution information of the previous simulation.
from copy import deepcopy
sequence2 = pr.PassSequence([
deepcopy(pass1),
transport,
deepcopy(pass2)
])
sequence2
PassSequence | |
---|---|
in_profile | None |
label | '' |
out_profile | None |
units | [RollPass(abs_draught=-0.008297025563206266, back_tension=0, contact_area=0.006017544120045988, deformation_heat_efficiency=0.95, deformation_resistance=114184844.83414835, disk_element_count=0, disk_elements=[], displaced_cross_section=MultiPolygon(area=0.00032276382739222846, height=0.061154328932550704, perimeter=0.1955694335652799, width=0.03890114896397893), draught=0.8118125462066977, duration=0.07056039637464354, elongation=1.0921265268668339, elongation_efficiency=0.5272081015697767, entry_angle=-0.2221144454231247, entry_point=-0.07056039637464354, front_tension=0, gap=0.003, height=0.0447243903911893, in_profile=InProfile(classifiers={'vertical', 'square', 'diamond', 'rotated'}, cross_section=Polygon(area=0.0020172289364149133, height=0.061154328932550704, perimeter=0.17484198694172845, width=0.061154328932550704), density=7500.0, equivalent_height=0.04408915363889982, equivalent_rectangle=Polygon(area=0.0026962426039910444, height=0.04408915363889982, perimeter=0.21048696514290105, width=0.061154328932550704), equivalent_width=0.061154328932550704, flow_stress=80925543.43597992, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), height=0.061154328932550704, lendl_section=Polygon(area=0.0017151187334025954, height=0.061154328932550704, perimeter=0.15692698106999506, width=0.03890114896397893), length=0, material='C45', specific_heat_capacity=690, strain=0, t=0, temperature=1373.15, width=0.061154328932550704), inverse_forming_efficiency=1.2871314892268648, iteration_precision=0.001, label='Diamond I', lendl_width=0.03890114896397893, length=0.07056039637464354, log_draught=-0.20848581989669276, log_elongation=0.08812673770481022, log_spread=0.07020055622558032, max_iteration_count=100, orientation=0, out_profile=OutProfile(classifiers={'diamond', 'generic_elongation'}, cross_section=Polygon(area=0.0018470652317200606, height=0.0447243903911893, perimeter=0.1684260697843319, width=0.06560167360406856), cross_section_error=-0.0360789946906479, cross_section_filling_ratio=0.9639210053093521, density=7500.0, equivalent_height=0.035792128075693555, equivalent_rectangle=Polygon(area=0.002348023503616667, height=0.035792128075693555, perimeter=0.20278760335952423, width=0.06560167360406856), equivalent_width=0.06560167360406856, filling_error=-0.143021899359, filling_ratio=0.856978100641, flow_stress=92605866.9587439, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), lendl_section=Polygon(area=0.0013923549060103674, height=0.0447243903911893, perimeter=0.13759629786652613, width=0.03890114896397893), length=0.0, material='C45', specific_heat_capacity=690, strain=0.19349552465258638, t=0.07056039637464354, temperature=1373.2478626568889, width=0.06560167360406856), power=367077.06478738744, reappearing_cross_section=MultiPolygon(area=0.0001526001226973766, height=0.02473846134281035, perimeter=0.14769862316078058, width=0.06560167360406856), rel_draught=-0.1881874537933023, roll=Roll(contact_area=0.003008772060022994, contact_heat_transfer_coefficient=6000.0, contact_length=0.07056039637464354, contour_points=array([[-5.68006321e-02, 0.00000000e+00], [-4.14906321e-02, 0.00000000e+00], [-4.11906125e-02, 3.75107461e-06], [-4.08905930e-02, 1.50113425e-05], [-4.05905735e-02, 3.38020023e-05], [-4.02905539e-02, 6.01586074e-05], [-3.99905344e-02, 9.41314051e-05], [-3.96905149e-02, 1.35785821e-04], [-3.93904953e-02, 1.85203103e-04], [-3.90904758e-02, 2.42481133e-04], [-3.87904563e-02, 3.07735434e-04], [-3.84904367e-02, 3.81100396e-04], [-3.81904172e-02, 4.62730744e-04], [-3.78903977e-02, 5.52803299e-04], [-3.75903781e-02, 6.51519075e-04], [-3.72903586e-02, 7.59105780e-04], [-3.69903391e-02, 8.75820795e-04], [-3.66903195e-02, 1.00195473e-03], [-3.63903000e-02, 1.13783572e-03], [-3.60902805e-02, 1.28383451e-03], [-3.57902609e-02, 1.44037079e-03], [-3.54902414e-02, 1.60792071e-03], [-4.00026044e-03, 1.97902481e-02], [-3.80024741e-03, 1.99019480e-02], [-3.60023439e-03, 2.00063055e-02], [-3.40022137e-03, 2.01036381e-02], [-3.20020835e-03, 2.01942254e-02], [-3.00019533e-03, 2.02783147e-02], [-2.80018231e-03, 2.03561247e-02], [-2.60016928e-03, 2.04278491e-02], [-2.40015626e-03, 2.04936597e-02], [-2.20014324e-03, 2.05537080e-02], [-2.00013022e-03, 2.06081283e-02], [-1.80011720e-03, 2.06570382e-02], [-1.60010417e-03, 2.07005411e-02], [-1.40009115e-03, 2.07387265e-02], [-1.20007813e-03, 2.07716713e-02], [-1.00006511e-03, 2.07994409e-02], [-8.00052087e-04, 2.08220895e-02], [-6.00039066e-04, 2.08396605e-02], [-4.00026044e-04, 2.08521876e-02], [-2.00013022e-04, 2.08596945e-02], [ 0.00000000e+00, 2.08621952e-02], [ 2.00013022e-04, 2.08596945e-02], [ 4.00026044e-04, 2.08521876e-02], [ 6.00039066e-04, 2.08396605e-02], [ 8.00052087e-04, 2.08220895e-02], [ 1.00006511e-03, 2.07994409e-02], [ 1.20007813e-03, 2.07716713e-02], [ 1.40009115e-03, 2.07387265e-02], [ 1.60010417e-03, 2.07005411e-02], [ 1.80011720e-03, 2.06570382e-02], [ 2.00013022e-03, 2.06081283e-02], [ 2.20014324e-03, 2.05537080e-02], [ 2.40015626e-03, 2.04936597e-02], [ 2.60016928e-03, 2.04278491e-02], [ 2.80018231e-03, 2.03561247e-02], [ 3.00019533e-03, 2.02783147e-02], [ 3.20020835e-03, 2.01942254e-02], [ 3.40022137e-03, 2.01036381e-02], [ 3.60023439e-03, 2.00063055e-02], [ 3.80024741e-03, 1.99019480e-02], [ 4.00026044e-03, 1.97902481e-02], [ 3.54902414e-02, 1.60792071e-03], [ 3.57902609e-02, 1.44037079e-03], [ 3.60902805e-02, 1.28383451e-03], [ 3.63903000e-02, 1.13783572e-03], [ 3.66903195e-02, 1.00195473e-03], [ 3.69903391e-02, 8.75820795e-04], [ 3.72903586e-02, 7.59105780e-04], [ 3.75903781e-02, 6.51519075e-04], [ 3.78903977e-02, 5.52803299e-04], [ 3.81904172e-02, 4.62730744e-04], [ 3.84904367e-02, 3.81100396e-04], [ 3.87904563e-02, 3.07735434e-04], [ 3.90904758e-02, 2.42481133e-04], [ 3.93904953e-02, 1.85203103e-04], [ 3.96905149e-02, 1.35785821e-04], [ 3.99905344e-02, 9.41314051e-05], [ 4.02905539e-02, 6.01586074e-05], [ 4.05905735e-02, 3.38020023e-05], [ 4.08905930e-02, 1.50113425e-05], [ 4.11906125e-02, 3.75107461e-06], [ 4.14906321e-02, 0.00000000e+00], [ 5.68006321e-02, 0.00000000e+00]]), groove=DiamondGroove(alpha1=0.5236363668157296, alpha2=0.5236363668157296, classifiers={'diamond', 'generic_elongation'}, contour_line=LineString(height=0.020862195195594648, length=0.12428942750252188, width=0.11360126410252692), depth=0.020862195195594648, flank_angle=0.5236363668157296, ground_width=0.004287509401684611, r1=0.012, r2=0.008, tip_angle=None, tip_depth=0.0221, usable_width=0.07655), max_radius=0.328, min_radius=0.3071378048044054, neutral_angle=-0.08848788138523542, nominal_radius=0.328, roll_power=183538.53239369372, roll_torque=9543.742668240164, rotational_frequency=3.060755690269962, surface_velocity=1.0039278664085476, temperature=293.15, working_radius=0.32030304866385906), roll_force=343556.1708150464, roll_torque_loss_function=0.6313372329443294, rotation=True, spread=1.0727233010180357, strain=0.19349552465258638, strain_rate=2.7422681078095614, target_cross_section_area=0.0019161997939107886, target_filling_ratio=1.0, target_width=0.07655, temperature_change=0.09786265688877371, temperature_change_by_contact=-3.9580878041024947, temperature_change_by_deformation=4.055950460991268, usable_cross_section=Polygon(area=0.0019161997939107886, height=0.0447243903911893, perimeter=0.18207551252845486, width=0.07655), usable_width=0.07655, velocity=1, volume=0.00013433192769727247, wusatowski_exponent=0.40040229722506016, wusatowski_friction_coefficient=1, wusatowski_material_coefficient=1, wusatowski_temperature_coefficient=1, wusatowski_velocity_coefficient=0.9868101140877441, zouhar_contact_c1=1, zouhar_contact_c2=0.3, zouhar_contact_c3=1, zouhar_contact_in_width=0.0), Transport(disk_elements=[], in_profile=None, label='I->II', length=0.4, out_profile=None), RollPass(abs_draught=-0.011744216506831176, back_tension=0, contact_area=0.004950223105496217, deformation_heat_efficiency=0.95, deformation_resistance=125402777.9593291, disk_element_count=0, disk_elements=[], displaced_cross_section=MultiPolygon(area=0.00042201829248566223, height=0.06560167360406856, perimeter=0.22098420234368976, width=0.03593413764470279), draught=0.7580237803992556, duration=0.06835401559893399, elongation=1.2259716740315594, elongation_efficiency=0.8067231586565428, entry_angle=-0.21600502011964234, entry_point=-0.06835401559893399, front_tension=0, gap=0.003, height=0.050057753507371086, in_profile=InProfile(classifiers={'vertical', 'diamond', 'generic_elongation', 'rotated'}, cross_section=Polygon(area=0.001847065231720061, height=0.06560167360406856, perimeter=0.1684260697843319, width=0.0447243903911893), cross_section_error=-0.0360789946906479, cross_section_filling_ratio=0.9639210053093521, density=7500.0, equivalent_height=0.04853458958160799, equivalent_rectangle=Polygon(area=0.0021706799319239846, height=0.04853458958160799, perimeter=0.18651795994559456, width=0.0447243903911893), equivalent_width=0.0447243903911893, filling_error=-0.143021899359, filling_ratio=0.856978100641, flow_stress=99988958.48904896, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), height=0.06560167360406856, lendl_section=Polygon(area=0.0017440486225546593, height=0.06560167360406856, perimeter=0.16410918845670697, width=0.03593413764470279), length=0.0, material='C45', specific_heat_capacity=690, strain=0.19349552465258638, t=0.07056039637464354, temperature=1373.2478626568889, width=0.0447243903911893), inverse_forming_efficiency=1.3106015489921357, iteration_precision=0.001, label='Square II', lendl_width=0.03593413764470279, length=0.06835401559893399, log_draught=-0.27704052127348916, log_elongation=0.20373373286828342, log_spread=0.13785440778681535, max_iteration_count=100, orientation=0, out_profile=OutProfile(classifiers={'square', 'diamond', 'generic_elongation'}, cross_section=Polygon(area=0.0015066133017951875, height=0.050057753507371086, perimeter=0.14836106149239386, width=0.05133503214495572), cross_section_error=-0.004275947072762465, cross_section_filling_ratio=0.9957240529272375, density=7500.0, equivalent_height=0.03679037307477681, equivalent_rectangle=Polygon(area=0.0018886349844185809, height=0.03679037307477681, perimeter=0.17625081043946506, width=0.05133503214495572), equivalent_width=0.05133503214495572, filling_error=-0.025900718312035664, filling_ratio=0.9740992816879643, flow_stress=93527611.37967633, freiberg_flow_stress_coefficients=FreibergFlowStressCoefficients(a=3268490000.0, m1=-0.00267855, m2=0.34446, m3=0, m4=0.000551814, m5=-0.00132042, m6=0, m7=0.0166334, m8=0.000149907, m9=0, baseStrain=0.1, baseStrainRate=0.1), lendl_section=Polygon(area=0.0013220303300689974, height=0.050057753507371086, perimeter=0.13492042233024093, width=0.03593413764470279), length=0.0, material='C45', specific_heat_capacity=690, strain=0.4959992128749343, t=0.1389144119735775, temperature=1376.3798098531684, width=0.05133503214495572), power=432348.0635871786, reappearing_cross_section=MultiPolygon(area=8.156636256078806e-05, height=0.019511352110814523, perimeter=0.09580292893303596, width=0.05133503214495572), rel_draught=-0.24197621960074442, roll=Roll(contact_area=0.0024751115527481085, contact_heat_transfer_coefficient=6000.0, contact_length=0.06835401559893399, contour_points=array([[-4.01679241e-02, 0.00000000e+00], [-2.96279241e-02, 0.00000000e+00], [-2.93472528e-02, 4.92503864e-06], [-2.90665815e-02, 1.97183915e-05], [-2.87859103e-02, 4.44351087e-05], [-2.85052390e-02, 7.91680863e-05], [-2.82245677e-02, 1.24049839e-04], [-2.79438965e-02, 1.79255089e-04], [-2.76632252e-02, 2.45004304e-04], [-2.73825539e-02, 3.21568336e-04], [-2.71018827e-02, 4.09274431e-04], [-2.68212114e-02, 5.08513914e-04], [-2.65405401e-02, 6.19752025e-04], [-2.62598688e-02, 7.43540544e-04], [-2.59791976e-02, 8.80534094e-04], [-2.56985263e-02, 1.03151143e-03], [-2.54178550e-02, 1.19740355e-03], [-2.51371838e-02, 1.37933151e-03], [-2.48565125e-02, 1.57865814e-03], [-2.45758412e-02, 1.79706048e-03], [-2.42951699e-02, 2.03663407e-03], [-2.40144987e-02, 2.30004780e-03], [-4.21006906e-03, 2.18038409e-02], [-3.99956561e-03, 2.20014012e-02], [-3.78906215e-03, 2.21810814e-02], [-3.57855870e-03, 2.23448832e-02], [-3.36805525e-03, 2.24943781e-02], [-3.15755180e-03, 2.26308241e-02], [-2.94704834e-03, 2.27552432e-02], [-2.73654489e-03, 2.28684762e-02], [-2.52604144e-03, 2.29712213e-02], [-2.31553798e-03, 2.30640627e-02], [-2.10503453e-03, 2.31474913e-02], [-1.89453108e-03, 2.32219209e-02], [-1.68402762e-03, 2.32877005e-02], [-1.47352417e-03, 2.33451235e-02], [-1.26302072e-03, 2.33944354e-02], [-1.05251727e-03, 2.34358394e-02], [-8.42013812e-04, 2.34695007e-02], [-6.31510359e-04, 2.34955504e-02], [-4.21006906e-04, 2.35140880e-02], [-2.10503453e-04, 2.35251830e-02], [ 0.00000000e+00, 2.35288768e-02], [ 2.10503453e-04, 2.35251830e-02], [ 4.21006906e-04, 2.35140880e-02], [ 6.31510359e-04, 2.34955504e-02], [ 8.42013812e-04, 2.34695007e-02], [ 1.05251727e-03, 2.34358394e-02], [ 1.26302072e-03, 2.33944354e-02], [ 1.47352417e-03, 2.33451235e-02], [ 1.68402762e-03, 2.32877005e-02], [ 1.89453108e-03, 2.32219209e-02], [ 2.10503453e-03, 2.31474913e-02], [ 2.31553798e-03, 2.30640627e-02], [ 2.52604144e-03, 2.29712213e-02], [ 2.73654489e-03, 2.28684762e-02], [ 2.94704834e-03, 2.27552432e-02], [ 3.15755180e-03, 2.26308241e-02], [ 3.36805525e-03, 2.24943781e-02], [ 3.57855870e-03, 2.23448832e-02], [ 3.78906215e-03, 2.21810814e-02], [ 3.99956561e-03, 2.20014012e-02], [ 4.21006906e-03, 2.18038409e-02], [ 2.40144987e-02, 2.30004780e-03], [ 2.42951699e-02, 2.03663407e-03], [ 2.45758412e-02, 1.79706048e-03], [ 2.48565125e-02, 1.57865814e-03], [ 2.51371838e-02, 1.37933151e-03], [ 2.54178550e-02, 1.19740355e-03], [ 2.56985263e-02, 1.03151143e-03], [ 2.59791976e-02, 8.80534094e-04], [ 2.62598688e-02, 7.43540544e-04], [ 2.65405401e-02, 6.19752025e-04], [ 2.68212114e-02, 5.08513914e-04], [ 2.71018827e-02, 4.09274431e-04], [ 2.73825539e-02, 3.21568336e-04], [ 2.76632252e-02, 2.45004304e-04], [ 2.79438965e-02, 1.79255089e-04], [ 2.82245677e-02, 1.24049839e-04], [ 2.85052390e-02, 7.91680863e-05], [ 2.87859103e-02, 4.44351087e-05], [ 2.90665815e-02, 1.97183915e-05], [ 2.93472528e-02, 4.92503864e-06], [ 2.96279241e-02, 0.00000000e+00], [ 4.01679241e-02, 0.00000000e+00]]), groove=SquareGroove(alpha1=0.7777501289619068, alpha2=0.7777501289619068, classifiers={'square', 'diamond', 'generic_elongation'}, contour_line=LineString(height=0.02352887675368554, length=0.09844743716085605, width=0.08033584817370697), depth=0.02352887675368554, flank_angle=0.7777501289619068, ground_width=0.004916886130280233, r1=0.008, r2=0.006, tip_angle=None, tip_depth=0.02595, usable_width=0.0527), max_radius=0.328, min_radius=0.3044711232463145, neutral_angle=-0.08152457585776207, nominal_radius=0.328, roll_power=216174.0317935893, roll_torque=11247.413973323984, rotational_frequency=3.0589401092246282, surface_velocity=1.0033323558256781, temperature=293.15, working_radius=0.3189206845252471), roll_force=310385.8644738413, roll_torque_loss_function=0.6387774455422222, rotation=True, spread=1.147808426139414, strain=0.3025036882223479, strain_rate=4.425543774886367, target_cross_section_area=0.001513083165326813, target_filling_ratio=1.0, target_width=0.0527, temperature_change=3.131947196279585, temperature_change_by_contact=-3.8319296546815655, temperature_change_by_deformation=6.96387685096115, usable_cross_section=Polygon(area=0.001513083165326813, height=0.050057753507371086, perimeter=0.15003905934753262, width=0.0527), usable_width=0.0527, velocity=1, volume=0.00011074015464206036, wusatowski_exponent=0.5257255955465194, wusatowski_friction_coefficient=1, wusatowski_material_coefficient=1, wusatowski_temperature_coefficient=1, wusatowski_velocity_coefficient=0.992237400557715, zouhar_contact_c1=1, zouhar_contact_c2=0.28, zouhar_contact_c3=1, zouhar_contact_in_width=0.009321567951667805)] |
sequence2.solve(in_profile)
[INFO] pyroll.core.PassSequence: Started solving of PassSequence.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Diamond I'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Diamond I''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Diamond I'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.004 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Diamond I' after 5 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.043 s.
[INFO] pyroll.core.Transport: Started solving of Transport 'I->II'.
[INFO] pyroll.core.Transport: Finished solving of Transport 'I->II' after 2 iterations.
[INFO] pyroll.core.Transport: Solution took 0.004 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Square II'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Square II''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Square II'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Square II' after 4 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.034 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Diamond I'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Diamond I''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Diamond I'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Diamond I' after 5 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.041 s.
[INFO] pyroll.core.Transport: Started solving of Transport 'I->II'.
[INFO] pyroll.core.Transport: Finished solving of Transport 'I->II' after 1 iterations.
[INFO] pyroll.core.Transport: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Started solving of RollPass 'Square II'.
[INFO] pyroll.core.Rotator: Started solving of Rotator 'Auto-Rotator for RollPass 'Square II''.
[INFO] pyroll.core.Rotator: Finished solving of Rotator 'Auto-Rotator for RollPass 'Square II'' after 2 iterations.
[INFO] pyroll.core.Rotator: Solution took 0.003 s.
[INFO] pyroll.core.RollPass: Finished solving of RollPass 'Square II' after 4 iterations.
[INFO] pyroll.core.RollPass: Solution took 0.034 s.
[INFO] pyroll.core.PassSequence: Finished solving of PassSequence after 2 iterations.
[INFO] pyroll.core.PassSequence: Solution took 0.174 s.
|
We cann now check, that the profile has cooled down in the transport by comparing the ouput profiles of both sequences.
sequence.out_profile.temperature > sequence2.out_profile.temperature
True
We can iterate over all roll passes in the sequence with the .roll_passes
property.
[u.label for u in sequence2.roll_passes]
['Diamond I', 'Square II']
And respectively over all transports.
[u.label for u in sequence2.transports]
['I->II']