Hi everyone,

To put this in context, , I am making a Matlab algorithm for topology optimization that consider fatigue breaking. I am basing on the Ole Sigmund algorithm, which discretices the 2D piece into a rectangular mesh.

For analysing the fatigue resistance of a piece candidate (discreticed on little squares), I need the stress tensor everywhere, so I decided to compute the stress on the center of each squared element, with FEA analysis, because displacements of the nodes are already computed .

Then, I apply the standard 4-node quadrilateral element stress analys: I know the 2 displacements (u,v) of each 4 node, and I apply interpolation to know the deformation on the center of the element, and so the 3 stress components. I do it with the B matrix and C matrix:

B=0.5/l*[ -1 0 1 0 1 0 -1 0; 0 -1 0 -1 0 1 0 1; -1 -1 -1 1 1 1 1 -1];

(l=side of the element)

C=(E/(1-nu^2))* [ 1 nu 0;

nu 1 0;

0 0 (1-nu)/2 ];

Stress=C*B*nodes_displacements

The problem is that once I compute those stresses, and so the Von Misses stress, the final result doesn't seem to be correct, mostly on parts of the piece being flected.

I also tried taking the 16 closer elements for interpolating the stress on the center of the element, but it didn't work either. I did that last thing with a much bigger B matrix, that has as "input" the 32 displacements of those 16 points around the element:

B=[ -0.0013 0 0.0352 0 -0.0352 0 0.0013 0 -0.0117 0 -0.0117 0 0.0013 0 -0.0352 0 0.0352 0 -0.0013 0 0.0117 0 0.0117 0 -0.3164 0 0.3164 0 0.3164 0 -0.3164 0;

0 -0.0013 0 0.0117 0 0.0117 0 -0.0013 0 0.0352 0 -0.0352 0 0.0013 0 -0.0117 0 -0.0117 0 0.0013 0 -0.0352 0 0.0352 0 -0.3164 0 -0.3164 0 0.3164 0 0.3164;

-0.0013 -0.0013 0.0117 0.0352 0.0117 -0.0352 -0.0013 0.0013 0.0352 -0.0117 -0.0352 -0.0117 0.0013 0.0013 -0.0117 -0.0352 -0.0117 0.0352 0.0013 -0.0013 -0.0352 0.0117 0.0352 0.0117 -0.3164 -0.3164 -0.3164 0.3164 0.3164 0.3164 0.3164 -0.3164 ]/(2*l);

So my question is, what would be the simpliest way to fix this problem, and so to get the correct stress values?

I would prefer a way to fix it using only the 4 nodes around the element, because using 16 makes everything more complicated.

Thanks a lot for your answers.

More Miguel Diaz's questions See All
Similar questions and discussions