I'm trying to implement a Yeoh hyperelastic model for a FEM simulation. The program requires a function that returns the second Piola-Kirchhoff stress tensor $\mathbf{S}$, with the Green-Lagrange strain tensor $\mathbf{E}$ as input. I got an expression for that, but there seems to be an error I'm not being able to find, as I ended up with a relation that returns non-zero stress at zero strain. This looks quite wrong (and the simulated material collapses on itself for the initial step), so I would like to write what I did, and hopefully someone knows where is the mistake, or if I am interpreting the result wrongly.

I followed the book "Nonlinear solid mechanincs" from Gerhard A. Holzapfel, which indicates that the stress tensor can be derived from the strain energy function $\Psi$ as:$$ \mathbf{S} = \frac{\partial \Psi}{\partial \mathbf{E}}$$

The Yeoh model proposes a strain density function $\Psi=\sum_{i=1}^3 C_i \ (I_1(\mathbf{C})-3)^i$, where $I_1(\mathbf{C})=tr(\mathbf{C})$, $\mathbf{C}$ is the right Green deformation tensor and the $C_i$ are fitting parameters. That is, the strain energy only depends on the trace of the deformation tensor. Then, using the definition of $\mathbf{E}=\frac{1}{2} \left(\mathbf{C}-\mathbf{I}\right)$, with $\mathbf{I}$ being the identity; I got that the traces are related by $tr(\mathbf{C})=2*tr(\mathbf{E})+3$. By substituting this on the expression for $\Psi$ , I got a neat expression for doing the derivation, $$\Psi(\mathbf{E})= \sum_{i=1}^3 2^i \ C_i \ tr(\mathbf{E})^i $$

Then, by using a result from tensor calculus, that $$\frac{ \partial tr (\mathbf{E})}{\partial \mathbf{E}}=\mathbf{I}$$ I got the stress strain relation: $$\mathbf{S}=\left(2 \ C_1+8 \ C_2 \ tr(\mathbf{E})+24 \ C_3 \ (tr(\mathbf{E}))^2\right) \mathbf{I}$$

The term $2 \ C_1$ confuses me. I would expect that, if the strain tensor is zero, then the stress would need to be also zero. So, is there some math error somewhere? Or is there really a strain-free stress with these material models? And if it is the second case, do you know any good book on these kind of material models?

Thanks a lot.


1 Answer 1


(I've been watching this question to see if an expert in hyperelasticity can weigh in. Lacking that after a month, I'll note the following points from an elasticity background that may be helpful.)

Energies have no absolute reference zero; we must choose one. Natural reference-zero choices for elasticity include the stress-free or strain-free state at the temperature of interest. The first constant $C_1$ in Yeoh's energy function appears to set this reference zero for a strain-free case, as $\Psi|_{i=1}=C_1$ for zero deformation. (Specifically, the zero energy is lower than this case by the amount $C_1$. If $C_1$ is set to zero, then the strain-free case serves as the reference.)

Stresses in strain-free materials can certainly arise, as when uniform and isotropic materials are fully constrained but subjected to a field (e.g., a temperature change or electric field) that would induce expansion or contraction in the free material. A simple example is the heating $\Delta T$ of a short rod with stiffness $E$ and thermal expansion coefficient $\alpha$ between two rigid walls; from Hooke's Law,

$$\varepsilon=0=\frac{\sigma}{E}+\alpha\Delta T,$$

and so the stress (even in the absence of strain) is $\sigma=-\alpha E\Delta T$.

If such nuances aren't relevant and a strain-free case in your material implies a stress-free case and vice versa, then perhaps this provides justification for setting $C_1$ equal to zero.

  • $\begingroup$ Thanks for your comment! Yes, seems like it is perhaps a too specific question :( As far as I know, it is not a problem with the choice of zero. If you check Ψ(E), you can see the energy is already selected to be 0 for null strain tensor. THe problem appears in fact with the derivative, which should not be affected by the reference value selection. In that regard, C1 is not related to the reference. The rest of the comment is quite interesting. $\endgroup$
    – Alv
    Jul 27, 2023 at 11:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.