since there have already been several posts concerning non-linear elastic material laws (e.g. for rubber) and I'd pretty much like to use such a model, too, I've gathered some information about this topic.
I'd like to share some ideas, hoping to launch an interesting discussion...
First of all, I think the current "non-linear" (or "large displacement") elasticity implementation within "ElasticSolve" refers to the "generalized" Hookean law being derived from the elastic strain-energy function, e.g. as reproduced in the attached pdf from FEBio theory manual (University of Utah, http://mrl.sci.utah.edu/febio-overview). Now, the second Piola-Kirchhoff stress can be derived from this function and, as far as I understand, this formulation is used in Elmer, too, if we take a look at the code:
(a commented version of the source is attached, too).Stress2 = 2.0D0*Lame2*Strain + Lame1*TRACE(Strain,dim)*Identity
Using Neo-Hooke as a first non-linear material approach (see section 5.3 of pdf), would it be possible to slightly modify the current ElasticSolve in order to get a dedicated - let's say - ElasticSolverNeoHooke? As far as I understand, the Lamé parameters from linear elasticity could still be used, while only (??) the stress formulation would have to be modified . A very nice illustration of what we might need is given by François Labelle on http://wismuth.com/elas/elasticity.html:
I've marked the according lines and symbols in the attached source file.S = lambda*J*(J-1)*C^-1 + mu*(I - C^-1), where
J = det(deformation gradient)
C = F^T * F = right Cauchy-Green deformation tensor
lambda, mu = Lamé constants
Trying to modify the stress formulation, however I just wasn't able to find out how "invertMatrix" is called (and used) correctly...
And...first of all: do you think this kind of implementation is correct and could actually be done without any major additional coding efforts??
I'd greatly appreciate your suggestions!
Kind regards, enjoy the weekend
Bengt