Hi,
Is it possible to compute the elastic energy for a simple 2D cube before we solve the system?
Because I checked the displacement gradients and they are 0 due to having no solution probably.
Hence, I wonder how would someone be able to compute the elastic energy with the following formula:
psi = 0.5 * lambda * tr_eps * tr_eps + mu * tr_eps_2;
with
tr_eps = trace(eps);
tr_eps_2 = trace(eps * eps);
Here eps is the strain tensor and lambda as well as mu are the lamé parameters, respectively.
In order to compute the strain tensor eps I need the displacement gradients:
eps = 0.5 * (grad_u + transpose(grad_u));
And from what I checked, the get_strain() function from step-18 doesn't give me the same strain tensor. It seems more like a B-operator to me.
If I compute the elastic energy after I solved the system, how am I able to store the energy values for each cell, so I can have access to it all the time.
From Timo Heister and Thomas Wick's phase-field crack examples I learned that they compute energy by means of the compute_energy() function, but it seems to me like they just output the value and it is not further used during computation.
Kind regards,
S. A. Mohseni