'F1 Workshop Session 5 - Analysis of a valve spring assembly' simulation project by rszoeke


I created a new simulation project called 'F1 Workshop Session 5 - Analysis of a valve spring assembly':

In this project a nonlinear dynamic analysis of a valve spring is demonstrated.

More of my public projects can be found here.


This analysis was featured in the SimScale Formula One Workshop.

The assembly was uploaded as a STEP file to SimScale and meshed using the tetrahedralization with local refinements. The resulting mesh is shown in the picture below.

Altogether three physical and two glued contacts are modelled in this simulation. One physical contact is between the spring and the handle, another is between the handle and the camshaft and the last is between the handle and the fixation pin. At the beginning of each simulation the spring is compressed and therefore prestressed. The crankshaft of the 4 stroke motor to which the cam shaft is connnected to is rotating with two different speeds. First a rotation of 6000 rpm is assumed. The camshaft is therefore revolving with 3000 rpm. In the picture below you can see, that the spring is suited for this rotational speed.

Now the rotation speed of the crankshaft is doubled. Therefore the camshaft is revolving with 6000 rpm. Now the acceleration of the handle is too high, valve float and valve bounce appear, thus the engine would be at risk of severe damage.


There is also a short video showing the impact of pre-stress in the spring at varying rotational velocities:


Hy rszoeke,
My project is same as yours with a little different.
You write , that you use prestressed spring in simulation. I would like to aks where can i setup in the simulation that my spring will be prestressed??

Best Regards


Hi @zsoltpeitler,
the pre-stressing happened via an upwards movement of the spring base in the constraint “Spring Base Fixation”

Alternatively, there is another feature which allows to add an fictitious layer of material on top of a contact surface in order to generate a pre-stress, it is called “fictitious clearance” and can be set up on the physical contact level. I have a project of bolt pre-stressing where this technique is used: https://www.simscale.com/projects/rszoeke/bolt_prestressing/



Dear @rszoeke
Thank you for your help.
i am beginner in simscale so maybe i could have few stupid question
if i would like to prestress my spring with constant displacement its enough , that i constrain the spring base fixation from the origo with constant value ?


Yes, this should be fine,
but be aware that if you are doing a dynamic analysis, putting a constant displacement at the spring base will actually move it just on the first computed time step and this will introduce some vibrations in the spring (as you can see from the video above). What I did to reduce the vibration was to ramp the initial pre-stressing over some extended time frame (this is where a used a formula to ramp it linearly and then after some time have it constant). You can also use a very large first time step and small ones after that to reduce the vibrations to basically zero (you need to provide a csv file for the time step definition for that).

I’m here if you need more help.




Thanks for creating this project. I would like to know how the boundary conditions are realized on the camshaft. As given,

Dy = (y-0.027432)*(cos(2*pi*100*t)-1) + (z+ 0.0008348)*(sin(2*pi100*t) {of form (y-y1) and (z-z1), where (y1,z1) are the co-ordinates of the center of circle)


Dz = (z+ 0.0008348)*(cos(2*pi*100*t)-1) - (y-0.027432)*(sin(2*pi100*t)

I would like to know:

How can Dy or Dz can be a function of y and z at the same time. Why not only use 'Time' variable alone to drive it in a circle.

I realize its related to Liasion_DDL in code aster but unable to understand it physically. Also where is the reference co-ordinate system located in the workspace?

Much thanks



Hi @anehra,
it is indeed needed as the movement of a point on the shaft axis depend on its distance form the rotation axis - this is exactly captured in the formula. Beware that X,Y and Z actually represent coordinates of the nodes on the mesh and not their displacement.

In the meantime we have a better way of defining a rotating motion - using the specific constraint with exactly this name that we introduced: https://www.simscale.com/docs/content/simulation/model/boundaryConditionTypes/rotatingMotion.html

So there should be no need any more for a complex formula to describe a simple rotation :wink:




Thanks for the clarification.


Anirudh Nehra


Hi @rszoeke. I’m studying your simulation of valve spring assy, for the sake of learning principles of SimScale. With great pleasure I found out, I might be able to gain even kinematic analysis while performing stress analysis in SimScale, like you gained it in this project.


But, I’d like to ask you about one problem I found in your simulation results. The coil spring is over-bound. For example, at timestep number 50, or 55, the steel coil gets into collision with itself, it penetrates itself.


Also, in timestep 38 the cam penetrates rocker-amr.


Why does it make no problem for SimScale simulation when rigid body/bodies gets into collision and interfere their surfaces?


Hi @Pavol_Kianicka,
the analysis was rather done on a “demonstration” level accuracy and I would not bet on it being actually accurate.
For that purpose also not all contacts where defined.

For the solver it’s actually very easy: if there is no contact explicitly defined between two surfaces, the solver does not check for penetration at all and does not “see” it. So if you would shoot two bullets into each other without defining contact between their surfaces - they would just fly through each other without even losing any energy.

I hope that this is a sufficient explanation of the behavior you are observing.

Btw. I think the second one between the cam penetrates rocker-arm is an optical illusion as the arm has a cut-out…



Hi @rszoeke. Thank you for explanation. So the Physical Contact constraint permits two rigid bodies from penetrating their surfaces but allows them to be miles aways from each other.
There is another thing I don’t understand in your simulation. Why did you setup the Fixed Value constraint of the Spring Base so that it can move in Z direction by some weird amount: 0.002*(t/0.001)(t<=0.001)+0.002(t>0.001)? It’s 2mm x very small coefficient. Why is that usefull?


This 2mm are basically the pre-stress of the spring.



Hi Richard. I made two experiments. I totally fixed the spring base and defined the cam rotation by Rotating Motion constraint, instead of Fixed Value. The results are almost the same as yours but it took way less core-hours.