Simpack - Rail Wear Iteration Problem

Bump 3 (26 Jan 2024): If anyone could assist below.


I am trying to simulate rail wheel and rail wear in SIMPACK. Part of finding the wear amount involves profile evolution at each time step. I would to query how do one create automation to repeat the wear process (update to an existing temporary wear file after every iteration step) until the required millage has reached.


To clarify, as an example:

1st Iteration:

1) Rolling Stock A is running on track profile A (track alignment A).

2) At end of simulation certain wear is generated on track profile A.


2nd Iteration:

3) Rolling Stock A is now running on track profile A (with wear from 1st iteration). This inevitably causes some change of contact force of wheel on rail since rail has accumulated some wear from 1st iteration (rail profile has changed).

4) At end of simulation certain wear is generated on track profile A (with 1st and 2nd iteration runs).


3rd Iteration:

5) Repeat as above (3 and 4) and so on.


Question:

a) Is there any process for this?

b) Is it something to do with SIMPACK script?

c) Any example script in the SIMPACK documentation I could follow?

d) Basically the rolling stock and track profile is the same throughout the study. Is then anyway to have such a iteration in SIMPACK where the rail profile is changed due to wear and used during each different integration step?

e) I also noted that a distance factor could be defined to scale the amount of wear. If let say I input a scale amount of 10, will it be the same as running an time integration iteration for 10 times since I am using the same rolling stock and same track profile?


I also noticed this in the documentation regarding saving the end state after time integration to be used as the new starting state for the next run. Will saving the end state also save the wear on the rail which is to be used for the next iteration run?


f) If so, how do I get the rolling stock to return to the starting point of the track and perform the next iteration (without erasing the wear on the rail accumulated from the previous run)?


g) Also will using the command: myIniStateSet.copyToModel();

erase the end state accumulated from the previous time integration? So this negates the code (see below) to save the end state in the previous run?:

var myEndStateSet = myModel.createStset("\$ST_EndState");

Thank you for your time in reading this lengthy post. I look forward to some SIMPACK experts responses and advice. 🙂 Wish you all a Merry Christmas and a happy new year.

Simpack ​​​​​​​