Search
Close this search box.
Notifications
Clear all

UMAT or UHYPER ?

24 Posts
8 Users
0 Reactions
2,831 Views
Posts: 5
Topic starter
(@Arthur)
Active Member
Joined: 16 years ago

Hi all,

Ive got 2 little questions (that may seem stupid!). Im trying to implement in the Abaqus FE code a hyperelastic potential written in principal stretches. Ive already written an UMAT subroutine but there are problems of convergence (and I really dont know from where it comes from). So, I was wondering if writting an UHYPER subroutine wouldnt be simpler than an UMAT (since the expressions needed by Abaqus are easy to compute compared to the expressions required in an UMAT because no tangent matrix to define). The problem is that one has to define the partial derivative of the strain energy density with respect to the first and the second invariant of BBAR and my model is written in terms of principal stretches. How can I proceed to compute these expression easily and properly?

In fact, the implementation of a hyperelastic potential is not my final goal. I would like to implement a visco-hyperelastic model and my second question is : can I still use an UHYPER subroutine to do that or must I go back to an UMAT subroutine? I mean, is a UHYPER subroutine only appropriate for a classical hyperelastic model and can it be used for more complicated model (but still based on hyperelastic models)?

Thank you very much!

Have a nice day

Vincent

23 Replies
Posts: 3998
(@jorgen)
Member
Joined: 5 years ago

Hello Vincent,

Yes, writing a UHYPER subroutine is easier than writing a UMAT subroutine. To get the required invariants you will have to derive them using your knowledge about tensor algebra and continuum mechanics. The book by [URL= http://polymerfem.com/forums/showthread.php?t=111 ]Holzapfel[/URL] might be helpful.

You can combine (I think) a UHYPER subroutine with the built-in linear viscoelasticity model in Abaqus. If you want a more advanced viscoelasticity model you will need to use a UMAT or VUMAT subroutine.

- Jorgen

23 Replies
Posts: 5
Topic starter
(@Arthur)
Active Member
Joined: 16 years ago

Hello,

Thanks for the answers! I dont have Holzapfels book but I may find informations in other books about tensor algebra and continuum mechanics quite easily.

OK for the UHYPER. In fact, this does not correspond to what Id like to do... Ill go back to my UMAT... and try to debug it!

Does anyone has already implement in an UMAT a hyperelastic potential based on principal stretches (like Ogden for example...)??? I do not want an UMAT ,), I just want to discuss about the numerical implementation (on the forum or in private message). Noone in my lab can help me and I dont have any idea anymore :(...

Thanks

Have a nice day

Vincent

Reply
Posts: 3998
(@jorgen)
Member
Joined: 5 years ago

I have implemented the Ogden hyperelastic model as an Abaqus UMAT and VUMAT. Feel free to fire away with your questions 😎

Reply
Posts: 5
Topic starter
(@Arthur)
Active Member
Joined: 16 years ago

Hi all,

After several weeks of research, Ive finally found my mistake :grin:. It appears that the problem came from the derivative of the eigenspace. I used the expression given in Simo and Taylor (1991), but Ive found it didnt work very well (but why :confused:???? The question remains open!). Ive rather used an adapted version of Miehe (1993) expression which is in fact similar to the one of Simo and Taylor but that is a bit more compact... Now, everything works very fine! The implementation of a hyperelastic potential written in principal stretches dos not have any secrets for me anymore 🙄

Now lets adapt this UMAT to axisymmetrical and plane strain cases ,).

Have a nice day

Vincent

Reply
Posts: 16
(@toyyong)
Active Member
Joined: 15 years ago

about subroutines

I am using a subroutine (for the Complementary enery density function &#937,=A_1 I_1^2+A_2 I_2 ) as follows :--

SUBROUTINE UHYPER (BI1,BI2,AJ,U,UI1,UI2,UI3,TEMP,NOEL,

1 CMNAME,INCMPFLAG,NUMSTATEV,STATEV,NUMFIELDV,FIELDV ,

2 FIELDVINC,NUMPROPS,PROPS)

C

INCLUDE ABA_PARAM.INC

C

CHARACTER*80 CMNAME

DIMENSION U(2),UI1(3),UI2(6),UI3(6),STATEV(*),FIELDV(*),

2 FIELDVINC(*),PROPS(*) C

C10 = PROPS(1)

C01 = PROPS(2)

D1 = PROPS(3) C

STATEV(1) = BI1

STATEV(2) = BI2 C

U = C10*(STATEV(1)-3.)+C01*(STATEV(2)-3.)+((AJ-1.)**2)/D1

UI1(1) = C10

UI1(2) = C01

UI1(3) = 2./D1*(AJ-1.)

UI2(1) = 0.

UI2(2) = 0.

UI2(3) = 2./D1

UI2(4) = 0.

UI2(5) = 0.

UI2(6) = 0.

UI3(1) = 0.

UI3(2) = 0.

UI3(3) = 0.

UI3(4) = 0.

UI3(5) = 0.

UI3(6) = 0.

RETURN

END

while running the job it is showing that the job is aborted because of compilation error........ I am using ifort-compiler..........

Can anyone please provide me a uhyper subroutine (of any complementary energy function ) so that i can test whether am i making mistake in the subroutine itself or not..........

Can you please say me how to pass the variables (e.g. -- bi1,bi2,temp,noel,cname) while writing the subroutines ???????

Reply
Posts: 55
(@james.lockley)
Trusted Member
Joined: 8 years ago

Hi Manashch, search for UHYPER in ABAQUS Verification Manual, there are plenty of examples under the section UMAT and UHYPER along with their corresponding input files. For ABQUS 6.6 that I have, it is chapter 4.1.17. Hope this helps 🙂

Reply
Page 1 / 4
Share: