Simulation won't start in BETA (but it did yesterday)

I’m trying to run a simulation of a crude soft robotic actuator, essentially a silicon rubber tube constrained radially in a PLA filament wrapping. It ran yesterday but failed, running out of time. I tried to rerun it today and it doesn’t even start saying ‘An error occurred’ but there’s no solver log to look at.

Thinking my timeout problem yesterday was due to complexity I tried simulating a smaller simplified model without the wrapping. This also won’t start in the BETA workbench. Creating an identical simulation in the old workbench starts but fails with a matrix factorisation error, though I cannot see why as it has a limited constraint at one end of the tube which is otherwise free to expand as it would like.

What am I doing wrong?

Hi @irving!

Can you share the project link with us please? Having a look at this.




Hi @irving,
the reason why your simulations did not start on the new WB was your selection of the compressibility to be exactly 0. This lead to a division by zero.

I changed it to 1e-5 to quickly verify that and then the run succeeded:

The reason for the failure on the old WB could be related. There you used a value slightly greater than zero, 1e-99, but this led to numerical issues as in the end this is with numerical precision basically zero (you would get a very ill-conditioned matrix which the linear solver won’t be able to invert).

Usually the hyperelastic models work quite wellup to 1e-8 to 1e-9.


1 Like

Hi @rszoeke

Thanks for that. Odd thing is, I know I used 0.01 and/or 0.001 earlier as a value for D and, as far as I recall, it still failed. I’ve tried running it so many times with various C01/C10 values (not having any experimental data yet) maybe I’ve just confused myself :frowning:

Just to clarify that I’m reading the results right, the values shown in post processing are in Pa (N/m^2), metres and Newtons where appropriate, there’s no scaling anywhere?

Hi @irving,
yes, there were several simulations in your projects, and I was referring only to the last ones on the simplified model.
It is very possible that on the complex model other issues may have prevented the runs from succeeding.
If you point me to a specific simulation I could have a look and might find a solution.


Hi @rszoeke,

I’ve been playing with various values and found that the simulations are very sensitive to the C01/C10 Mooney-Rivlin constants. My understanding is that C10 relates to the stiffness of the material. As I don’t have experimental material data yet I trawled the web looking for appropriate constants for EcoFlex-30 silicone rubber. What I found is a massive variation for C10 from ~8kPa to ~130kPa and C01 from ~-7kPa to ~+70kPa.

Small values (<20kPa) for C10 (suggesting material which may be more likely to rupture under pressure) give a very small range of pressures which yield successful simulations. Indeed the more sophisticated model with C10/C01 set to 21.4kPa/10.4kPa respectively shows a 3mm extension at 10kPa pressure, 4mm at 12.5kPa and fails to complete at 15kPa pressure. I’m guessing (with my limited experience in FEA, simulation failure modes and the absence of a better explanation) that at 15kPa the material ruptures so the simulation becomes unbounded?

If you could look at the Constrained Part - 0.15Bar, and Simple Part - 0.175Bar failed runs and explain why they failed that would be useful. I need to figure out a way to estimate the max pressure, which is obviously related to the stress and the material properties but so far the numbers I’m seeing don’t seem to make sense (or I’ve misunderstood something).

If I was to run the simulation as a dynamic time series would the good results be retained even if there was eventually a failure?

To further confuse things I tried a dynamic simulation and, blow me down, it worked! Is the dynamic solver more relaxed than the static one or something?

Here’s my simple part being pressurised to 0.5Bar in 5sec. That’s approx a 200% deformation


Hi @irving,
that’s an impressive strain that you reached there!
It’s actually very surprising that the dynamic solver worked and the static didn’t for the same setup! Generally the use the same nonlinear solution method. I will check your setup (if it’s still in the same project on the new WB) to see if the Numerics settings differ.

Regarding your previous question, in the current models there is no failure rupture model incorporated, so there won’t be an actual rupture happening.
Usually the solver will stop at the point where the deformations get too high and the numerical integration leads somewhere to a singular matrix or the residuals “explode”.
The sensitivity with respect to the material properties is probably rather a problem with the condition number of the stiffness matrix - it basically tells you how badly a small input error will blow up into a result error.
This might be solved usually by having a “better” mesh or by using a specific element formulation - like reduced integration elements.
I will have a look at your model to see if any of these might help.

Btw. if you are having such large deformations with change of normal directions and surface areas, I would rahter use a follower pressure as it updates the surface normals as they move and guarantees that the pressure is always applied normal to the surface also in the deformed state.


Hi @irving,
I found the reason why your static analysis won’t converge.
You instantaneously applied the full pressure, whereas in the dynamic analysis you ramped the pressure slowly up.
It sounds counter-intuitive that we should also “ramp” the load in a static analysis, but in a nonlinear analysis this is key to getting a converged result.
The ramping allows the solver to incrementally solve the nonlinearities instead of trying to resolve it all at once. For the solution of the nonlinear system we use the Newton-Raphson method, basically a split of the nonlinear system in many linear sub-steps. So sometimes it is not only influencing the convergence of the results but also the accuracy.


1 Like

hi @rszoeke

Well I tried your suggestion of using ‘follower pressure’ which makes sense and indeed I had previously used it when the simulation was failing,

I reconfigured the Simple Part, Dynamic to use follower pressure. Unfortunately it failed after 1sec of simulation but at least I got frames 0 -> 5. These showed that, at just 10kPa pressure, expansion was 2.8mm with follower pressure rather than 1.7mm, so its expanding faster! Probably as expected. Running it again with a smaller time-step got a couple of steps further which sort of ties up with your assertion regarding the N-R method, however reducing it further still just produced a long-running non-convergence error.