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.