Strain increment in UMAT

I noticed that a user material takes in emec and emec0 in the caclulix interface or DSTRAN in the abaqus interface.

I’m assuming DSTRAN = emec - emec0 comes from the displacement increment computed at every newton iteration. But to solve for that displacement increment, we need stress and the material tangent modulii (DDSDDE). However, to get these values, we need to call the UMAT which takes in the strain increment. So, I am confused because it seems like a circular dependence.

Obviously i am misunderstanding something. Can someone who knows the internals help me understand? Thanks!

Check the umat examples. I believe there is an Abaqus example and also you can look at the *elastic implementation

I think I need to go deeper than the UMAT level. Right now, I’m lost in this file: resultsmech.f

I am trying to find out how the strain at end of the increment is determined (emec)