In Part I of this series, we began the journey of calibrating a material model in Ansys Workbench using PyAnsys and Stochos from Probabilistic Intelligence. We explained how to accomplish the first five bullets of the process below. In this article, we detail the optimization routine that will result in optimal material model parameters. The optimization process steps are the boldface items that will be discussed in the current article:
Recall the parameter definition from Part I, remembering that all parameters are of continuous type:
Parameter |
Units |
Bounds |
Young's Modulus, E | MPa | [160000, 200000] |
Initial Yield Stress, S0 | MPa | [1100, 1600] |
Linear Hardening Coefficient, R0 | MPa | [1, 1000] |
Exponential Hardening Coefficient, Rinf | MPa | [400, 900] |
Exponential Saturation Parameter, b | None | [160, 400] |
Also, recall that we completed a start DOE run on 30 design points, 13 of which met the min(gradient) >= 0 criterion that the material model requires.
The process of DIMGP model calibration and optimization is as follows, looping over the number of requested optimization iterations (OPTIMIZATION_ITERS):
Since the data are stored after every optimization iteration, it is very easy to continue the optimization process over as many sessions as needed.
The code to perform the optimization iterations is shown in the next two images:
After completing the optimization process, we retained 50 design points and obtained decent agreement between Run 59 and the reference signal. The L2 distance of Run 59 = 213.9, which is more than four times lower than Run 5 from the start DOE.
Also, we obtain the final sensitivity analysis from Stochos that shows which parameters are most important. Evidently, R0 is not an important parameter.
Finally, the summary data shows that the current optimal model parameters are highlighted in yellow below:
In conclusion, we completed the process of material model calibration started in Part I of this series. Using Python with PyAnsys and Stochos provides the automation and statistical modeling required for such a task. Note: Stochos has some built-in optimization control functions that make it possible to simplify the code presented here. We chose to do it manually for ease of exposition.
Download the following .zip file to obtain the Workbench project and Python code to reproduce the results in this article: Ansys 2025 R1 model archive and Python code