Home › Forum › SOFA › Using SOFA › [SOLVED] Hyperelastic Material Parameters in SOFA
Tagged: SOFA_2012, Windows_10
- This topic has 4 replies, 2 voices, and was last updated 3 years, 5 months ago by Jan.
-
AuthorPosts
-
9 July 2021 at 16:23 #19999JanBlocked
Hello everyone!
I am trying to simulate a bellows that is expanding using pressure inside its cavity. The bellows is made out of hyperelastic material. Currently I am using the Neo-Hookean material model with
TetrahedronHyperelasticityFEMForceField
. As seen in NeoHookean.h the shear modulus mu and bulk modulus K have to be defined.
I assume that the material is incompressible, so that incompressibility parameter d = 0 and J = 1. Given the formula to calculate the bulk modulus K:
K = 2/d.
For the case of a nearly incompressible material model, the bulk modulus K used by SOFA tends towards infinity and has to be assumed very large.The problem is that my current simulation is not stable even for relatively small values like K = 10000, meaning that the bellows will explode, as seen here:
For the case K = 0 the simulation is stable but I don’t know if it is physically acceptable to assume that K = 0 for an incompressible material because I think it might be a special case. I would be thankful if somebody has an idea of how to make the simulation more stable or if it is acceptable to use K = 0.
As a comparison, I am using ANSYS with the Neo-Hookean model as well and the factor d = 0 assuming an incompressible material. The model in ANSYS is stable for the case of d = 0 (or K very large).Best regards
Jan13 July 2021 at 14:52 #20018jnbrunetModeratorHey Jan,
Are you using a very fine mesh and/or large time steps?
NeoHookean materials cannot handle element inversions (unless some very specific numerical schemes are set up, which SOFA doesn’t have). If you are using large time steps or a very fine mesh, the solver could find an intermediate solution where one or more elements are inverted. This is because there are no hard constraints (i.e. degrees of freedom) that prevent element inversions. The simulation then crashes.
You could try to reduce the size of the time steps, or use a coarser mesh, or both, and see if it improves.
Jean-Nicolas
18 July 2021 at 20:54 #20036JanBlockedHey Jean-Nicolas,
thanks for your help!
I reduced the time steps and now the simulation converges. When choosing a high bulk modulus for the hyperelastic material some elements are distorted, as seen here: https://imgur.com/a/6BIha2H.
The deformation becomes smoother the lower the bulk modulus. Is there a possible way to get the deformation smoother without changing the bulk modulus?The simulation uses EulerImplicitSolver and ShewchukPCGLinearSolver. The cavity pressure is applied using SurfacePressureConstraint.
Best regards
Jan18 July 2021 at 23:53 #20038jnbrunetModeratorHey Jan,
Are you really converging? Note that the EulerImplicitSolver is a linear ODE solver, i.e. it is only doing one Newton iteration. It is quite possible that you would need a lot more than this to really converge. Stiffer material are harder to converge. Finally, linear elements (tetrahedral) might not be adequate here, especially if your material is close to incompressible.
You can check out the Caribou plugin, which offers an Euler implicit solver compatible with non-linear materials, and also quadratic tetrahedral elements.
J-N
22 July 2021 at 14:54 #20049JanBlockedHey Jean-Nicolas,
thank you, that was really helpful. With some parameters, the solution converges but I should make it more stable. I will have a look at the Caribou Plugin!
Best regards
Jan -
AuthorPosts
- You must be logged in to reply to this topic.