Home › Forum › SOFA › Using SOFA › Question about Neo-Hookean Strain Energy function implemented in Sofa.
Tagged: 64_bits, Linux_ubuntu, Plugin_SoftRobots, SOFA_2006
- This topic has 3 replies, 3 voices, and was last updated 4 years ago by Pasquale94.
-
AuthorPosts
-
28 September 2020 at 19:07 #17224Pasquale94Blocked
Hello everyone,
I am implementing Soft robotic design models with Neo-hookean constituve laws.
I derived the model data, from experimental data ( tension and compression test) in Abaqus, and I deriverd from curve fitting the constitutive parameters, and the constitutive law result a Neo-hookean one.
So i tried with the same parameters, and the same pressure inside the cavity, a simulation of a pneumatic soft finger. I made it both in Abaqus and SOFA.In Abaqus, the bending angle result overcome 200 degree.
In Sofa, the bending angle is about 110 degree.So, at beginning, i thought that was a meshing problem in SOFA, but playing a lot with the parameters for meshing (facet angle, cell ratio, cell size, facet size) I obtain the same results.
In the End, for curiosity, I checked how it is expressed the NeoHookean strain energy function (NeoHookean.h) In SOFA and in Abaqus, and they seems two different equations.
in particular, in Sofa you have :
return (Real)mu*(Real)(1.0/2.0)*(I1-3)-mu*log(sinfo->J)+k*log(sinfo->J)*log(sinfo->J)/2
in Abaqus is implemeted this one:
U= C10*(I1−3)+(1/D1)*(Jeℓ−1)^2
(this is also the common one that I know for Neohookean behaviour, for uncompressible assumption)Anyway, the formulation that i found for compressiblr material is:
U = C10*(I1-2-2*log(J))+(1/D1)*(J-1)^2
(from Wikipedia, maybe is wrong)so, I understand that your mu is the Lame’ constant and D1=2/K0, but, the two equation for Abaqus and Sofa are different ( because abaqus assume incompressible material), and this can be the cause of such a difference in bending angle.
Anyway, your equation for Neo-hookean compressible material, seems not equal and have the lack of some terms, respect the equation that i found.
I am not an expert on Hyperelastic constitutive models, so a clarification would be appreciated, because maybe Wikipedia formula is wrong, but I am in doubt right now.
Thank you in advance.5 October 2020 at 22:30 #17283HugoKeymasterHi @pasquale94
Let me poke @jnbrunet expert of the point 🙂
Could you please take a look Jean Nicolas?Best wishes,
Hugo
3 November 2020 at 12:39 #17536nickljBlockedHyperelastic model derivation is always a nightmare……I’ll try to explain according to my knowledge. This topic is very complex, so I’ll try to explain point by point, and also raise some of my question at the end.
1. In TetrahedronHyperelasticityFEMForceField, the Neo-Hookean material parameters used are the initial shear module \mu, and initial bulk module K. You may easily do the conversion as
\mu=2C10, K=2/D12. All the three models you showed are “compressible model”. So your argument that “Abaqus model is uncompressible assumption” which is not correct. This is because it has the volumetric contribution, and so the I1 in the formulation should be I1\bar, which is the modified invariant of I1.
3. SOFA use a same strain energy form as the wiki for the deriatoric part. I seldom use this strain energy form, generally many continuum mechanics books use the form with C10(I1\bar-3) for the deviatoric part and also because I use Abaqus a lot… Some references show that the wiki (SOFA) form also gives the same form of PK2 stress, so maybe they are equivalent? Maybe need some derivation and verification.
4. Let’s compare the sofa version and abaqus version, they have different form of strain energy for the volumetric part. As long as the material is nearly in-compressible, they are somewhat equivalent and doesn’t matter.
5. I’m currently also working on understanding how SOFA deals with the elastic tangent tensor. It seems ElasticityTensor is implemented in NeoHookean.h, but not used in the
TetrahedronHyperelasticityFEMForceField, and only applyElasticityTensor is used. Is it some kind of matrix-free method? If any developers may help to give some simple explanation on this, I’ll appreciate a lot.3 November 2020 at 16:01 #17537Pasquale94BlockedHello @nicklj !
Thank you for the answer.
Yes Indeed from coefficients that i obtained in Abaqus i made the transformations that you mentioned.
In this period i noticed that i made some stupid errors in Sofa parameters convertions.
Now i correct them, and the two Fem simulator, Abaqus and Sofa, for the design that I am trying, gives the same results. So I am glad of this!Anyway, I am still curious about the nature of Hyperelastic models equations. And I am agree with you that is a Nightmare in to orient in !
Thank you for the kind and precise answer!
Pasquale.
-
AuthorPosts
- You must be logged in to reply to this topic.