Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IDS on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Displacements in Abaqus Subroutine Umat?

Status
Not open for further replies.

Kahlo

Mechanical
May 14, 2007
2
Hello

I have one very important question: I want to program the subroutine Umat in Abaqus 6.5. My basic element types are coh2d4 and coh3d8. The problem now, when i want to start programming i use the traction-separation law. This law describe as the words say: traction (stress) vs. separation (displacements). But - this is problem- i can not get the displacements von the Subroutine umat. This just give me the stran;dstran and i have to use displacements.
Does anybody knows how i cam get displacement in abaqus umat or is it impossible? This means - no programming for umat with traction-separation?

Thank you all for help.

Regards K.
 
Replies continue below

Recommended for you

It should be quite simple.

UMAT is supplied with current coordinates (COORDS) of the integration points.

You can use state variables to store the initial coordintates of the integration points.

Call SDVINI subroutine to store the initial coordinates values. (you have to set Material Property ->Depvar=3 (for 3D problem and use *INITIAL CONDITIONS,TYPE=SOLUTION,USER to order to have SDVINI called).

In SDVINI code something like this:
STATEV(1)=COORDS(1)
STATEV(2)=COORDS(2)
STATEV(3)=COORDS(3)

Then in UMAT compute the displacemets as:
u1=COORDS(1)-STATEV(1)
u2=COORDS(2)-STATEV(2)
u3=COORDS(3)-STATEV(3)

You should set NLGEOM=ON, otherwhise the COORDS will not be updated as the integration is performed over the initial (i.e. undeformed) element domain.
 
Thanks a lot for your help!

It is getting a little bit better now. But it is not programming if you don´t have another problem:

I want to update stress - this means i have to use the increment of the displacement: delta u(2). When i do like you suggested, i get the displacement for the end of the step, but not for every increment, which i have to use for calculating and updating stresses.
In umat you have like Kinc but this is only the number of the inc - useless!?

Hopefully my last question about the start in doing my umat.

Greetings and Regards

K.
 
According to my first suggestion you obtain the total displacements for each time increment, not only at the end of the step as you said.

To use the displacement increments then you can update STATEV(i) in UMAT to store the current coordinates.

delta_u1=COORDS(1)-STATEV(1)
delta_u2=COORDS(2)-STATEV(2)
delta_u3=COORDS(3)-STATEV(3)

STATEV(1)=COORDS(1)
STATEV(2)=COORDS(2)
STATEV(3)=COORDS(3)

If you need both total displacements and displacement increments just dimensions STATEV to 6 (Depvar=6) and use for example the STATEV(1...3) to store the initial coordinates and STATEV (4...6) to store the coordinates from the previous time increment.

Regards.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor