Energy error/hourglass error in a piston connecting rod crankshaft engine assembly Explicit Dynamics

Hello all,

To begin with, this is not a typical hourglass/energy error problem, so please don't tell me to search the database. I contacted my local Ansys Elite Channel Partner, but they couldn't find the cause of the problem.

I am simulating an engine assembly. The piston, the pins and the crankshaft are rigid bodies, while the connecting rod and the bolts are flexible. I use bonded contact for the threaded connection and frictional contacts for all other contacts.


The first problem is the hourglass energy. I am using the stiffness formulation (Flanagan-Belytschko) for hourglass damping. I tried different coefficients, but every time the hourglass damping is much larger than the internal energy.However, no hourglassing is visible.  Mesh refinement didn’t work, on the contrary- on a very fine grid, the hourglass energy was about 1500% of the internal energy!! The viscous formulation is not working at all. I see that the hourglassing is accumulated in the bolts and near the bolt holes. The grid is perfect, almost 100% hexahedral elements. I use mass scaling, since there are a few smaller elements. Max element mass scaling is ~10.


The second problem is the energy error. I tried different meshes, different contact formulations, in vain. The energy error every time attains 1e6mJ, the shape of the energy error graph is always the same. At first I thought it could be somehow connected to the  angular velocity on the crankshaft, since the RPM(t) is given by an asymptotic function, but this is just the physics of the task,

Please note the above energy graphs are from the fine grid calculations. It weights just too much, so I can attach a Workbench archive with the coarse mesh, I must clean the results too, otherwise it would weight 0.5GB.


  • I reran the case with almost no (vastly reduced) mass scaling. The hourglass energy was reduced 3 times, but it is still 3 times larger than the average internal energy.

  • cxquancxquan Berkeley, CAForum Coordinator

    Can you use any text editor to open the admodel.prt file from the MECH folder of the project and then look at the material and part summary to identify the material or the part that has contributed the most to the hourglass energy?

  • The hourglass energy is accumulated just everywhere ... When I ran the case with viscous damping, the regions near the screws and the screws themselves underwent hourglassing. I cannot identify a specific part based on the list because these codes C-10, C-11 etc. do not figure in the Workbench part list.

    I managed to eliminate the Energy Error. Instead of accelerating the mechanism from 0, I imposed an Initial Condition (values extracted from a separate Rigid Dynamics analysis). Anyway, the hourglass energy still greatly exceeds the internal energy... I will try to refine the grid to an "absurd" sizing, say 0.3mm (connecting rod length 300mm) and run the case on my university cluster.

    However, another problem has appeared. I saw that the bonded contact was not enforced/detected properly

    so I changed the Maximum Offset from 1e-4mm to 0.2mm.

    Now the bonded contact is perfectly fine, however the general motion of the connecting rod is oscillatory. What could be the source of this problem? Should I use some damping?

  • @bobsik641 @cxquan

    I had one of the simplest models you can imagine, a tube rotating on its axis at a constant velocity. The hourglass energy built up to a huge value and began eroding the elements!

    Does your model have a Remote Displacement or a Revolute Joint? Both of those caused the problem.

    The workaround was to use a Cylindrical Coordinate System and rotate the tube on its axis using Displacement of the theta DOF in the cylindrical coordinate system.

  • bobsik641bobsik641 Member
    edited January 1

    Hello @peteroznewman

    I don't use any joints. Realistic (bonded for threads, frictional elsewhere) contacts are used for each interface.

    The rotational motion of the crankshaft is imposed by the Velocity BC. The case was initialised from Rigid Dynamics results.

    The piston head is constrained by a typical Displacement support.

    The symmetry condition is imposed by another Displacement support.

    The stresses in the model are high (up to a few GPa), but still I thought this grid is fine enough to inhibit hourglassing

    Te stresses in the model are high (up to a few GPa), but anyway I thought this grid is fine enough to inhibit hourglassing...

    Should I enable plasticity (bilinear model)? If so, is it advisable to refine the grid even further?

  • @bobsik641

    The grid looks fine enough. If the purpose of the analysis is to simulate normal operation of the crank, you should not need plasticity.

    One thing I learned from your post is to try Flanagan-Belytschko for hourglass control. I didn't know about that when I posted in this discussion:

    What I noticed in that discussion is how the tool meshed with hex elements had horrible hourglassing,

    But when I remeshed with tet elements, that problem was resolved, at least in the tool.

  • bobsik641bobsik641 Member
    edited January 2

    Yes, the purpose is just to evaluate if the design is safe.

    All the time, I was taught to use structural hexahedral grids for all explicit applications. I'll try using Tet elements in the hourglass-dominated regions. I'll let you know what happens.

    I use the stiffness FB formulation for hourglass damping.

  • bobsik641bobsik641 Member
    edited January 2

    I remeshed the model with Tet elements. To my suprise, the miniumum quality improved from 0.30 to 0.36. There is no hourglass energy now. I was taught that tetra is a "trash" element and can be used only as a filler. Am I mistaken ?

    Anyway, the problem of oscillatory motion persists. It appeared when I changed the Maximum Offset to 0.2mm in the two bonded contacts (threads), because some elements on the thread were not involved in the contact, they were not detected. This Maximum Offset seems to be essential for proper contact enforcement.

    I thought the problem could be due to the other frictional contacts, however everything looks fine there, friction coefficient set to 0.05.

    Both the piston head and the crankshaft move smoothly, without oscillating.

    Any ideas?

  • @bobsik641

    Perhaps the initial conditions that came from Rigid Dynamics that originally produced a smooth motion of the connecting rod have been ignored/discarded after you made the offset change and the connecting rod starts the dynamic simulation with zero initial velocity. The instantaneous velocity of the crank bearing excites a lateral vibration of the connecting rod as it starts the motion from rest and not with a compatible initial velocity.

    Try manually creating a rotational velocity about the piston bearing as an Initial Condition for the connecting rod.

  • @peteroznewman

    I took my time to (correctly I hope) initialise the case. Please take a look at that. These values were extracted from a Rigid Dynamics analysis, but that's the best we can do. The main coordinate system is placed in the same place and orientation in both RD and ED analyses.

    We start the simulation while the piston head is in the Top Dead Centre. The crankshaft rotatates counterclockwise, as can be seen on the last screenshot.

    The real question is: why it worked previously but now it doesn't? In both cases, the bonded contact glued the two interfaces together, the only difference was that previously the "glue" was not distribued along the whole circumference (theta direction) of the thread.

    I'd be grateful if you could take a look at my project and see what could've gone wrong. Please find it attached below.

  • bobsik641bobsik641 Member
    edited January 9

    @peteroznewman if you have any ideas, don't hesitate to share them with me :)

    I don't really know if there's any way of damping out this single frequency?

    It's even more noticeable when the velocity is displayed.

Sign In or Register to comment.