Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

DG export in ABAQUS

Status
Not open for further replies.

bmejoe

Bioengineer
Jul 7, 2010
7
US
Thanks in advance. Has anyone had trouble exporting the deformation gradient in ABAQUS? I'm using *EL FILE with 8-node brick pore stress elements. I have a hyperelastic model, and the documentation says that model type should work, however, ABAQUS will not export DG for me.
 
Replies continue below

Recommended for you

Okay, so I've come to terms with the fact that ABAQUS won't let me get DG into my fil. So I'm just going to take the displacements and initial coordinates and get DG the old fashioned way. This means I have to modify some Fortran codes that work with a USUB we have here. It's the ABQMAIN USUB and we have this:

...
ELSE IF (KEY.EQ.30) THEN
F(1,1)=ARRAY(3)
F(2,2)=ARRAY(4)
F(3,3)=ARRAY(5)
F(1,2)=ARRAY(6)
F(1,3)=0
F(2,3)=0
F(2,1)=0
F(3,1)=0
F(3,2)=ARRAY(7)
...

ARRAY(3) and so on were taking values of DG from the fil. Since I'm now exporting the fil with u and X does anyone have any idea what I should be putting in for the values of the ARRAY. I have no clue how the fil file is structured.
 
I am not sure if I understood the problem. Correct me if I am wrong: You have a subroutine that implements a hyperelastic material model. Which subroutine are you using? And what do you need the defgrad for? Are you trying to change or add some new behavior to the material model?

Section 5.1.3 of the Analysis User's Manual may be of some help in dealing with a results file (ABAQUS v6.11).





 
Thanks for the response. Sorry for the lack of info. I have been simulating a coupled porohyperelastic and mass transport problem with custom implemented transport material laws that require that calculation of a modified diffusivity based on the material state (DG). So we used to export the state of the material through *EL FILE by asking for DG. This worked for our old hyperelastic material model. However, we're now using the Fung-ORTHO material model. Exporting DG won't work with this material model (something involving ABAQUS being persnickety), hence, we need to calculate DG 'manually'. So in the code I was given it calculates the DG (F(i,j)) by asking for ARRAY(3) for F(1,1), ARRAY(4) for F(2,2), etc. I can get ABAQUS to export the displacements and coordinates, but I have no clue what to but in the parentheses in ARRAY() to make sure I'm extracting the proper value from the .fil to calculate the DG. Thanks!
 
So, previously you were using a UMAT and now you have switched to strain based anisotropic hyperelastic formulation. And since this new subroutine does not provide access to deformation gradient, you will have to manually compute the deformation gradient.

Short answer: You can not do it the way you hope to do it.

My 2 cents:

a) You have probably thought of this but can you implement the Fung model in the UMAT? This way you will have access to DG.

b) I am not sure about this but, perhaps, you could turn the UMAT into a dummy material model in which the DDSDDE/STRESS/etc. at the end of the increment is the same as it is at the beginning of the increment. Using the dummy material model in the UMAT, extract the components of DG in to a common variable and then use these in the anisotropic hyperelastic material model.

Best.

 
No UMATs were involved in my previous model. Just a simple *hyperelastic model. I was getting DG from *EL FILE.

I thought of implementing Fung into a UMAT, but that is my last resort.

I figured this out though. I am NOT a Fortran guy at all, and I didn't write the original transfer subroutine. The routine just modifies values in the results of the PHE analysis for use in the XPT analysis. I've finally figured it out though. To have the subroutine pick up DG without using *EL FILE and DG you can use *NODE FILE and COORD and just use F=dx/dX. To actually modify it in the ABQMAIN subroutine I simply go from
(KEY.EQ.30)
to:
(KEY.EQ.89).

I had no idea that's what the KEY.EQ was for...it's just telling the program to find a different parameter (e.g., COORD instead of DG). The ARRAY(i) is the same, but with just a little math now. I feel really stupid for knot figuring this out sooner. Thanks for your help man!
 
Status
Not open for further replies.
Back
Top