PDA

View Full Version : UMAT help: Deformation graadient



ashu28
2006-02-28, 20:00
Hi!
I am realtively new to UMAT and am trying to write the file for a elastic-viscoplactic data. My model deals with the deformation gradient F but whatever UMAT files I have always take DSTRAN as the starting point. What I want is the F vector at any point of time from which I have to calculate F ealstic and F plastic. Can anyone please tell me whether ABAQUS gives deformation gradient vector and also whether the STRAN and DSTRAN are logarithmic strains or engineering strains?
What is the relation between DFGRAD0 , DFGRAD1 and DSTRAN??

Also I am a bit confused about when to use DROT or ROTSIG. My case deals with large deformations, so will i be required to rotate F using DROT before proceeding in the model calculations?

It would be great if someone can help me out in this.

Ashu

sq
2006-03-01, 06:53
It sounds like you know what you're talking about, so let me just give you a little clarification with the variables:

DFGRAD0: This is the deformation gradient [F] at the beginning of the time step (you don't want to use this one for current stress).

DFGRAD1: The deformation gradient [F] at the end of the time step (bingo!).

WHAT ABAQUS DOESN'T TELL YOU:

The stress output has to be given on a rotated basis, but [F] is not given that way. So, you need to find [R] from [F] and [U] (both given in the input stream).

This is very important if you have any significant rotations in your problem!

ashu28
2006-03-01, 10:45
Hi!
Thanks for your prompt response. That really helps understanding the different variables. As you said, one needs to find R and then rotate the stress finally using R (this is what I get from the reply), how can one get U? Can you please clarify a bit more as to how can one get U in ABAQUS?
I really appreciate your help.

Ashu

sq
2006-03-01, 13:06
You're welcome!

On advice, I rotated the stretch tensor B calculated from F, and used the rotated stretch tensor to calculate the stress tensor.

U's are passed into VUMAT immediately preceding F's. It might be called stretch (remember there are left and right symmetric stretch tensors).

ashu28
2006-03-01, 13:25
Hi!

This is what appears to me:

I get F from DFGRD1, then I get B=F.transpose(F) or C=transpose(F).F
and the get U= sqrt([C]).
Now, R=F.Inverse(U)
This way I'll get R. Now I calculate sigma as per the model.

The thing is now should I use [transpose(R)][Stress][R] or [R][Stress][transpose(R)] ?
Am I on the right track?

Also, one more question is which strains are stored in STRAN and DSTRAN? Are these logarithmic strains?
Can I recover these from [F] somehow? Is it STRAN = DFGRD1 + [I]
or the strains are also rotated?

I know I may be asking stupid questions, but I would really appreciate your advice on this.

Ashu

sq
2006-03-01, 14:37
First, these are NOT stupid questions. Anyway, I quote from the manual:

"In finite-strain problems the strain components have been rotated to account for rigid body motion in the increment before UMAT is called and are approximations to logarithmic strains".

Let me revise a previous thought concerning your use of the deformation gradient; my error, while the VUMAT call gives you U directly, UMAT does not (oops!). V or U could be computed from F as you suggest.

Keep in mind what the square root of a matrix is- you need to be able to calculate eigenvectors and eigenvalues to get this! Numerical Recipes in FORTRAN has a nice, simple one for symmetric matrices.

ashu28
2006-03-01, 15:24
Am I also correct if I say that this rotation matrix [cos -sin; cos sin]
can be calculated (lets say for plane strain) by getting theta from Bohr Circle as applied to F ?

tan theta= F12/(sqrt(((F11-F22)/2)^2+(F12)^2)) ???

Ashu

Dave_Holmes
2006-03-01, 22:38
I've always been under the assumption that using DROT in the subroutine ROTSIG provided by ABAQUS does the same job without any of the otherwise required coding, is this a correct assumption to make? This of course falls down if you are using the *ORIENTATION option in your input file.

ashu28
2006-03-02, 16:29
Can you please elaborate a bit more on your last posting?
I am really not able to understand what u mean...

Ashu

Dave_Holmes
2006-03-02, 17:37
ABAQUS provides various utility routines for use by UMAT. In UMAT you just use CALL ... to enact them with inputs as calculated by your subroutine. The utility routines include ones to calculate stress invariants, principal values and directions and one to rotate an input tensor. ABAQUS also outputs a 3x3 tensor DROT when calling UMAT which is a tensor of rotation increments. These are outlined in sections 23.2.29 and 24.2.3 of the ABAQUS/Standard manual however I am using ABAQUS via a Linux platform, I'm not sure how these utility routines work from a windows platform where you have to use your own FORTRAN compiler.

Harryboy
2006-03-03, 09:07
My experience is that in VUMAT (Abaqus/Explicite) the stress has to be rotated
according to

sigm=matmul(matmul(transpose(R),sigm),R)

Alternatively, formulate the constitutive model in the right stretch tensor "U".
Personally, I don't like the later approach, since if your working with
orthotropic material, the directions of the material "gets lost".

When using UMAT (Abaqus/Standard) no rotations of the stress has to be made.
To test this, I have implemented the Neo model in Abaqus/Standard and
Abaqus/Explicit and compare the result to Abaqus Neo Model. I have tested the
model under simple shear, so the rotation tensor differs from unity.

Best Regards
Harryboy

ashu28
2006-03-03, 15:20
Hey!
Your reply sort of contradicts some of the UMATs i have gone through. They all use DFGRAD or STRAN and DSTRAN for their constitutive model but rotate stress using either DROT or the function ROTSIG. Also the discussion above led me to confirm this. I might be wrong but are u really sure one doesnt need to rotate stresses anyway

Ashu

sq
2006-03-06, 06:57
Please keep in mind VUMAT and UMAT have different input streams!