Principal Stress/Strain Calculation


I am building a 2d/3d elasticity model. By following the tutorial (e.g., Beam_3d.edp), I can solve the stresses {Sxx, Syy, Sxy} (in 2d) or {Sxx, Syy, Szz, Sxy, Syz, Sxz} (in 3d).

Can I further calculate the principal stresses for all elements? Is using EigenValue function a right direction?

Like solving:
( A - \lambda I )x = 0
where A is the stress tensor:

A = [Sxx, Sxy, Sxz,
Sxy, Syy, Syz,
Sxz, Syz, Szz]

\lamba is 3 eigenvalues

Thank you very much!


For small dense matrices, you can use the LAPACK dgeev routine, see here an example. I think that what you want to do is basically loop over your elements and call this routine on all of them?

Thank you very much, prj!