# Determination of the domain of nonlinearity in a Neo-Hook solid model (Finite elements)

For a FEM simulation of a Neo-Hook solid model, how do we know we are in the "regime" of nonlinearity of the solid? In other words, how do I know the hyperelastic material law is really used, and not just a needless additional computational cost because it can be modeled with a linear elastic Hook law. Following these Wikipedia figures for example, does this mean the nonlinearity really happens when we see a nonlinear relationship between $$\lambda_{11}$$ and $$P_{11}$$?

For my case/simulation, I chose the element with the biggest stress values, and I calculated the Lagrange Green strain tensor $$\pmb{E}$$ there, I computed the eigendecomposition to get the biggest eigenvalue $$E_{11}$$ and its associated eigenvector $$\pmb{v}_{11}$$. I then compute the stretch as : $$\lambda_{11} = \sqrt{1+2E_{11}}$$. For the principal stress I compute : $$P_{11} = \pmb{v}_{11} \cdot (\pmb{P}\pmb{v}_{11})$$ where $$\pmb{P}$$ is the first Piola-Kirchoff stress. Should I expect to see a nonlinear relationship here? Is my definition of these quantities correct? In my case, I get something linear:

I used $$W(\pmb{F}) = \frac{\mu_s}{2}\, (|\pmb{F}|^2 - 3 - 2\, \log(J))$$ with $$\mu = 1923076$$.

• It looks like you’re still in the linear region, just to understand better, how are you running this model? Also maybe plotting stress $(\mathbf{\frac{\partial W}{\partial E}})$ and strain $(\mathbf{E})$ components directly might help in seeing where the nonlinearity is really present in the material model. May 25, 2023 at 20:42
• Your $\lambda_{11}$ is close to one. Which means it is close to linear elastic and hence you are seeing a linear response. Make $\lambda_{11}$ much bigger - say 1.2, or 2 or 5 or 10. Then see what you get. Also, you might try plotting the stress-strain curve without using FEM. Try deriving a (non-linear) equation for the stress-strain curve and solve it using fsolve or something equivalent.
– NNN
May 26, 2023 at 12:31
• @NNN, would you expand your comment into an answer? May 28, 2023 at 14:48

Since your $$\lambda_{11}$$ is close to unity, it means that your response will be close to linear, because your strain is small. You have not provided enough strain for the non-linearity to kick-in.

I would plot over a larger range of $$\lambda_{11}$$, say from 1 to 5. That should be enough to see the non-linearity.

Also, before doing FEM, I would derive a non-linear relationship between $$\lambda_{11}$$ and $$P_{11}$$, solve the resulting equations with some non-linear solver and plot the results. And then compare with FEM.

Edit: Also try plotting an exponential constitutive relation such as the Veronda Westmann model.

In the FEM simulation, the part is loaded using forces, so I don't control the range of $$\lambda_{11}$$. Specifically, it's a 2D beam under a bending. So it gives something like this :

As suggested by @NNN I derived the relationship $$P_{11}(\lambda_{11})$$ and I have $$P_{11} =(\lambda_{11}^2 - 1) \mu / \lambda_{11}$$, which is indeed not very "nonlinear", unless $$\mu$$ is very low. In the comparison between FEA (the above plot) and the analytical expression, it does seem to match. The problem is that I probably "sampled" the stress and its principal component the wrong way, since using the principal direction only gives stretches $$\lambda \in [.999, 1.0003]$$ whether the $$yy$$ component for example (as shown in the paraview contour) reaches values much higher : If I plot the $$P_{yy} = f(\sqrt{1+2*E_{yy}})$$ for the two corner elements, I get :

Could you please indicate what's the right way to compute the principal directions for the principal stretch ?

Thank you.

• Typically when plots the stress-strain relationship, it is in uniaxial tension, not bending. Try setting up a uniaxial tension problem. Also I'm not sure about your stress-strain relationship. It should be something of the form stress/strain = modulus and yours looks like stress = modulus/strain
– NNN
Jun 1, 2023 at 3:02
• The $(\lambda_{11}^2 - 1)$ is actually on the numerator, I wrote like in code :D I edited. I think I mis-explained my question, I wanted to know for arbitrary loading/deformations, e.g bending, how can we know we are in the nonlinearity regime, is the eigendecomposition of the Green-Lagrange tensor (for a discretised element very deformed e.g the corner of the bent part) the right approach ?
– Zed
Jun 1, 2023 at 7:17
• If you want to know if a particular element has gone into the non-linear regime, I would do something like you said. I would probably take the polar decomposition of $\mathbf{F}$ and look for the eigenvalues of the stretch tensor. But after getting the stretches one would need to look up against a uniaxial stress strain curve to figure out whether the material is non-linear at that stretch ...
– NNN
Jun 1, 2023 at 7:42
• Thank you ! And do you confirme that I have to compute the stress in THAT direction ? something like $\pmb{v}_{11} \cdot (\pmb{P} \pmb{v}_{11})$ .
– Zed
Jun 1, 2023 at 9:25
• I believe so, if $\mathbb{v}_{11}$ is the direction you are interested it. But it's been a while since I did this and I can't find something directly relevant online
– NNN
Jun 1, 2023 at 9:47