This subroutine using VUSDFLD is to determine position of damage and provide evolution of damage surface, when some elements failed. The “outer” damage status will transfer to “inner” damage status.
Now the problem is that when I read the coordinates of material points, using coordMp(k,1),coordMp(k,1),coordMp(k,1), it returns wrong locations. Then I tried a very simple loop:
Do k=1,nblock
stateNew(k,7)=nblock
end Do
I found the number of material points (namely, nblock) varied! First time I ran this loop, I got the contour of state variable 7 (SDV7) shown below. The SDV7 were various. But from the subroutine they were supposed to be same.
Then I coarsen the mesh, and get a different result, SDV7 of every element were same (equal to the material point number=125)! Shown below:
Then I substituted coordMp(1,1) for nblock in the above-mentioned loop, and found similar phenomenon.
I wonder if the number of material points and their coordinates will vary in a loop? Those results are beyond my expectation.
I attached the subroutine and its .inp below.
Thank you.
