Dear Kostas,
I'm interested in computation of stress of a linear elasticity problem.
I found this discussion in the getfem-users archive.
Could you please explain me what is the "mass matrix" in GetFEM++, and
how do you need the line "sigmaij =
np.transpose(gf.linsolve_mumps(mass_mat_t, sigmaij))" to get sigmaij?
Thank you in advance.
Best regards,
Phuoc
On Thu, Jan 26, 2017 at 5:07 PM, Konstantinos Poulios <address@hiddenom
<mailto:address@hidden>> wrote:
Dear Samyak
It would be helpful to know which material law you use (small or
large strains?) and which programming language (python, matlab,
scilab, C++?).
E.g for small strains elasticity in python, something like this
should work:
mass_mat_t = gf.asm_mass_matrix(mim, mft)
for i,j in [[1,1],[2,2],[1,2]]:
sigmaij = gf.asm_generic(mim, 1, "({Lambda}*Div_u*Id(qdim(u)) +
{Mu}*(Grad_u+Grad_u'))({i},{j})*Test_t".format(Lambda=Lambda, Mu=Mu,
i=i, j=j), -1,
"u", False, mfu, md.variable("u"),
"t", True, mft, np.zeros(mft.nbdof()))
sigmaij = np.transpose(gf.linsolve_mumps(mass_mat_t, sigmaij))
Then sigmaij has the ij component of the stress tensor projected on
the finite element space defined in mft. If mft is a Lagrangian FEM
the values of sigmaij will correspond to the nodes of mft. The
projection from gauss points to the finite element space is as Yves
mentioned some kind of averaging.
I hope this helps.
Best regards
Kostas