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.