In the documentation for Hyperelasticity there is an example of the MaterialModel for NeoHookean and the St Venant Kirchoff models. These are very useful in helping develop ones own materials models. I would like to modify the NeoHookean model to include thermal strains which would allow more accurate simulations of large deformations. To do this it would also be useful to see how the MaterialModel for the small strain elasticity models where thermal strains are included.

How can one access these MaterialsModels (i.e. Orthotropic Elasticity etc...) ?

  • 1
    $\begingroup$ @rhermans As I mentioned my goal is to include thermal strains in the NeoHookean model. The two MaterialsModels available, (at least where we can see the code) don't have thermal strains implemented. Thus I would like to have an example where I can see how this is done. Hope that clears it up. $\endgroup$
    – Dunlop
    Feb 17 at 5:12
  • 1
    $\begingroup$ In fact I was hoping that there was a way of doing this using an undocumented function or so. $\endgroup$
    – Dunlop
    Feb 17 at 5:13

1 Answer 1


You can do this. Here is how:

vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
pars = <|"Material" -> Entity["Element", "Titanium"], 
   "ThermalStrainTemperature" -> T, 
   "ThermalStrainReferenceTemperature" -> Tref|>;
PDEModels`DefaultModelParameters[vars, pars, "SolidMechanics"];
ts = PDEModels`StructuralMechanicsDump`ThermalStrain[vars, pars]
ts // Normal
{{8.6*10^-6 (T - Tref), 0, 0}, {0, 8.6*10^-6 (T - Tref), 0}, {0, 0, 
  8.6*10^-6 (T - Tref)}}

Let me comment on a few things. First, the PDEModels`DefaultModelParameters needs to be called since the ThermalStrain is in a somewhat hidden context. This loads the package and you can then access the ThermalStrain. If ThermalStrain is useful I can certainly promote this to the PDEModels context, let me know.

Now, here is the part I do not know. How useful do you think linear elastic strain is for hyperelastic material? Is it really that straight forward to add this thermal strain to the hyperelastic material models? That can be done. If you have knowledge in this area please ping me and I can see to it that this is added in a future release. Speaking of future releases, I hope we will see more hyperelastic material models in the future (beyond Neo-Hookean).

Update: In Version 13.3 you will be able to access PDEModels`ThermalStrain directly.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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