Contact pressure on hyperelastic material

Hello, I’ve being doing some test simulations on compression of (hyperelastic material model) gaskets (with contacts) and found that despite refining the mesh the CPRESS variable seems not to smooth. Any thinking on this? all other model variables, disp, stress, strains are quite smooth, however that does not happen with contact variables, probably is a feature of the method but then, what surface contact pressure would you use for design, cpress or stress? I expected them to converge.
Model (inp, results, and pmx file): gasket1c - Google Drive

some pictures

Did you try with other types of hex elements ? Or with mortar contact ? It’s worse for convergence but can potentially provide smoother contact pressure results.

Hi JuanP74,

I’m now considering if this problem could be related with this post.

There are undelaying springs involved in contact.
If some of them snap, the contact pressure could show uneven contact stresses. I say that because hyperplastic materials involve larger strains (clearance=amplitude).

I tried to check this point on compression only support, but at that time I wasn’t able to set up the gapuni offset in Mecway.

If you have the adjust active, ¿Could you try to deactivated it and provide some initial clearance to see if the problem disappear?


No adjust in all contacts

I have try your material parameters on my material test bench and problem might be related with the minimum compressibility coefficients assigned to D2 and D3.
D=0 triggers the default values but they seem wrong assigned to D2 and D3. A minimum of D=1E-10 [1/Pa] to each one removes the spiky behaviors.

That’s quite interesting :thinking:. May I ask about the theoretical background for “wrong assignment”?

I have recreated the problem in Mecway, but using a basic Neo Hooke material (all elements are lineal hexa), and the contact stress looks razonable and smooth.

interesting, very soft material though. My material has an initial Young modulus of about 432 MPa.

I am using mm N ton s C units so the warning I get is

 *WARNING reading *HYPERELASTIC: default value was
          used for compressibility coefficients
   D1 =  0.8627E-03
 *WARNING reading *HYPERELASTIC: default value was
          used for compressibility coefficients
   D2 =  0.7443E-06
 *WARNING reading *HYPERELASTIC: default value was
          used for compressibility coefficients
   D3 =  0.6421E-09

No so low…

What material is your gasket? Is rubber like or cardboard like the Klinger?

A reinforced elastomer, I am modelling it as Ogden hyperelastic as it fits well the data but I know is just an approximation, just exploring the possibilities

Did you try to approximate with a simpler material such as Mooney Rivling or Neo Hoke? Very often the diferences or improvements of more complex material models are in strain ranges not used in real life.

they’re unstable with the limited data I have

The gasket is being deformated up to 10% (from 1mm to 0.9), maybe you could use a simple lineal model for such low strains.

that’s only for compression of the gasket. In fact the gasket is not linear, I already run first with a linear version to check convergence and other issues. Everything was right.
And please do not say low strains, according to Bathe’s book beyond 4% (most say is too much) is non linear always :crazy_face:

Default value is not unit independent as D2 and D3 are build as powers of D1.

Code says:

!     if any of the compressibility coefficients is zero (incompressible 
!     material), it is replaced. The lowest order coefficient is replaced
!     such that it corresponds to a Poisson coeffient of 0.475, the 
!     following ones are replaced by a power of the first one

If threshold value to trigger defaults (1E-10) is valid for Compressibility in MPa , and D1 is provided in Pa, it should be converted to Mpa first, powered to build D2 and D3 and then converted back to user units.

Actual defaults for hyperelastics could be out of range when using [Pa]

For rubber are very very low strains :slight_smile:

One solution could be to do the check tree times so all Di and up default value as minimum.
By the way, did that solve you issue?

however non linear :ok_hand: