PyRolL is an OpenSource rolling framework, aimed to provide a fast and extensible base for rolling simulation. The current focus lies on groove rolling in elongation grooves. The core packages comes with a basic set of models to allow a first estimation of forces and torques occurring in a pass sequence. There is a flexible plugin system, able to modify and extend the model set available to describe the process.
Background and Purpose
To the experience of the authors, the field of metal forming simulation is currently dominated by handcrafted, specialized and monolithic or commercial software tools. Groove rolling is a class of metal forming processes, where a bar of large cross-section (typically coming from casting or previous rolling processes) is rolled down to smaller cross-sections within a number of passes. The shape of the cross-section is determined by the shape of the roll surface, milled into the roll barrel, known as the groove or calibre. The products are commonly known as long products such as wire, bars or rods, because their length is usually much larger than their width and height. The passes can be directly coupled (multiple stands are grabbing the workpiece at the same time), called a continuous or “conti” rolling line, or, one pass is performed after each other, called reversing rolling, because the direction of rolling is typically reversed to avoid long transports of the workpiece. There is a large variety of modelling approaches for groove rolling processes published in scientific literature within the last century, but often not available as software implementation to the public.
Groove rolling is a rather complex process, one has to deal with mechanical loads, material flow, heat flow and generation, microstructure evolution and others. The figure below gives an impression about the influencing factors and their interdependencies.
Some of them are not describable by physically based models, or only with unsuitable high effort in computational resources. For this reason, there are large amounts of empirical approaches describing the distinct aspects suitable for specific conditions and materials. These often give sufficient results at low computation cost, if respective material specific coefficients are available and specific conditions of validity are met. For some aspects, especially those regarding material behavior and evolution, specialized and commonly used software tools already exist. PyRolL can use them as a subroutine if an appropriate interface plugin is available.
The PyRolL project as a whole aims to provide a flexible software basis and a growing collection of model packages for the distinct aspects of groove rolling. With this, a rolling engineer can:
exchange the used models
choose the ones that fit best to his conditions or those for which he has data available
examine differences in their predictions
give a reasonable estimation of mechanical and thermal behavior of the process
identify possible pit holes and sources of errors
design a new process or optimize an exising one
lower energy consumption and production costs.
A typical rolling simulation will need the following inputs:
shape, temperature and material data of the workpiece put in the first pass
geometry of roll passes
roll gap (distance between roll barrels)
kinetics of roll passes, usually by means of the rolls’ rotational frequencies
plant geometry, distances between rolling stands
elastic properties of the rolling stands and rolls, if desired.
Classic values of interest from a rolling simulation include:
roll forces and torques to determine if the stand withstands the forces and the engines are powerful enough
filling of the grooves, to:
ensure full-filling in the last pass to obtain desired cross-section shape
avoid over-filling in the other stands to prevent surface defects
temperature evolution of the workpiece in conjunction with microstructure evolution to obtain desired material properties.
PyRolL’s implementation in Python leverages the full power of Python’s scientific community and package toolbox like numpy, scipy, pandas, matplotlib and Jupyter for the analysis and post-processing of the simulation results. PyRolL must not be understood as a click’n’run tool for generation of colorful images, but as a toolbox for an engineer or scientist, who has basic understanding of rolling theory and materials science, as well as basic skills in programming.
The PyRolL Core package is installable via PyPI
pip install pyroll-core
A basic ready-to-use configuration can be installed with
pip install pyroll-basic
Read here for further information on the basic configuration.
Where to Get Started
After following the first examples, you shall read the recommendations.
If you encounter problems, please refer first to the troubleshooting page. If this does not solve your problem, you may contact us via the following ways:
If you think you have found a bug, please file an issue in the respective GitHub repository ( e.g. here for bugs in the core package).
If your problem is not likely to be a bug, please open a thread on the discussions board. So the answer to your question is available to everyone.
If your problem contains confidential information, you may contact us via email directly.
In public correspondence, please stick to English language, so everyone can read it. In private correspondence, you may also use German language.
- The PyRolL Core Package
- Extension Packages for PyRolL
- Plugin Packages for PyRolL
- The PyRolL Basic Configuration
- Recommendations for Using PyRolL
- Find Out Which Plugins Are Loaded
- Use a Debugger
- AttributeError “Hook call for ‘…’ on ‘…’ could not provide a value.”
- AttributeError “Hook call for ‘…’ on ‘…’ resulted in a RecursionError.”
- ValueError “Hook call for ‘…’ on ‘…’ resulted in an infinite value.”
- ValueError “Profile’s width can not be larger than its contour lines. May be caused by critical overfilling.”
- Warning “Solution iteration of … exceeded the maximum iteration count of …”
What is this flappy bird?
The German name of the Golden Oriole is Pirol, which resembles the name PyRolL.