Search
Close this search box.
Notifications
Clear all

Convergence troubles with USERMAT subroutine

19 Posts
7 Users
0 Reactions
2,139 Views
Posts: 24
 mil
Topic starter
(@mil)
Eminent Member
Joined: 17 years ago

Hello Jorgen (and others),

Please help me: I am trying to write USERMAT (3D) subroutine of hyperelastic material for ANSYS. Since I am relatively new in this area I started with neo-hookean model, however I still have huge convergence problems of my subroutines.

Details:
- First I calculate rotation matrix R (from def. grad.) and transform deformation gradient F into corotated coordinate system. Then I calculate Cauchy stress tensor and material elasticity tensor C (C is obtained numerically - based on Second Piola-Kirchhoff stress and central difference method). Finally i transform C into spatial elasticity tensor (through Piola transformation) and condense it into matrix notation required by ANSYS.
- For one-element analysis there is no problem - everything is OK (simple tension, simple shear, rotation, ...) and convergence is great. For multi-element analysis convergence difficulties occur. I really cannot reach the same convergence capability as for the build-in models in ANSYS (even for neo-Hookean model).
- Moreover, if I increase number of substeps (e.g. for displacement controlled multi-element simple tension test), the convergence becomes worse and worse :-(. This I did not observe for build-in models.

Note: If I use analytical form for material elasticity tensor C, the convergence problems still remain the same.

Questions:
1/ What is probable cause of my convergence problems? Could it be caused by rounding errors due to too long calculations? Should it be related to not sufficiently straighforward calculation? Or there must be something wrong in my code?
2/ Is there any possibility to calculate directly the spatial elasticity tensor (to avoid Piola transformation of C)? Does anybody have any refferences to that formulation (e.g. for neo-hookean model)?
3/ Should I try to convert my USERMAT subroutine into UMAT subroutine for abaqus? Could I expect any improvement of such (non)convergency of my code under ABAQUS enviroment or should I first concentrate on the debugging process of my current USERMAT code under ANSYS?

Hope that I clearly described my problem and thank you A LOT for ANY advice - I am really puzzled now :-(.

Paul

Topic Tags
18 Replies
Posts: 3998
(@jorgen)
Member
Joined: 5 years ago

First, your approach seems reasonable to me. Also keep in mind that writing a user-material model is very time-consuming and can at times be frustrating. Part of the difficulty is that it is quite challenging to debug the code since you do not have control over what ANSYS does.

Here are a few hopefully helpful comments:

- It is quite encouraging that things work well for one element. How bad is the convergence for multi-elements? Do you get good convergence for multi-elements in uniaxial loading?

- Based on your explanation, my guess is that you either have a bug in your code, or use an inappropriate expression for the elasticity tensor. You should be able to get very good convergence for the neo-Hookean model.

- Yes, it is possible to directly calculate a suitable elasticity tensor. I recall seeing various references for that, and I do that in my own user-material implementations.

- If you want, you can certainly try using ABAQUS instead. I suspect, however, that you might run into similar problems even with ABAQUS.

Jorgen

Topic Tags
18 Replies
Posts: 24
 mil
Topic starter
(@mil)
Eminent Member
Joined: 17 years ago

Thanks Jorgen a lot for your response and for further stimulation.

Here are a few answers on your comments/questions:
- How bad is the convergence for multi-elements? Do you get good convergence for multi-elements in uniaxial loading? : ->

-> For neo-Hookean material it is quite sufficient (approx. stretch ratio=lambda=4 for uniaxial dipl. controlled loading for 5x5x5 brick of elements), however NOT THE SAME as for build-in model (where lambda=10 is no problem). Nevertheless, the dependence of convergency on the number of elements and on the number of substeps is quite surprising for me (I did not observe this symptom for build-in models) - is this standard symptom?

-> Moreover, if I add any anisotropic component of constitutive model (based on I4 strain invariant), the convergence substatially drops down (lambda = 1.5) - is this standard symptom? I am able to pressurize a tube made of anisotropic constitutive model only up to approx. 5&#37, of the required inner pressure - that is the main problem I am just trying to solve.

-> By the way .... why is ABAQUS used for user material programming so more frequently than ANSYS? What are the benefits of ABAQUS in this area?

Thank you for any additional comments and wish a nice(r) day.

Paul

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

Its interesting that you get different convergence properties using your user-material compared to the built-in model, but I am not that surprised 🙁

If you carefully read through the user-manuals for various FE programs you will see detailed discussions about how the stress is calculated but it is often not explained how the Jacobian is calculated. It turns out that very few constitutive models have a closed-form Jacobian that is easy to use. I have derived my own closed-form Jacobian for the neo-Hookean model, and that works well. But that is perhaps not a trivial exercise. In my experience, a more accurate Jacobian will improve the convergence specifically for large deformations. Small deformations often work even with a less accurate Jacobian.

I have also done a lot of work with anisotropic user-materials. One curious observation is that I got good convergence using I4 in an ABAQUS UMAT, but the same model implemented in LS-DYNA had worse convergence properties. The point here is that different FE codes might have different problems with anisotropic models.

I think that many FE codes work well with user-materials. I have not done an extensive study addressing the strength and weaknesses of different FE codes. One thing that I like about ABAQUS is that all their recent versions are very carefuly tested. I dont think that I have every found a bug in ABAQUS, something that is not true for many codes.

-Jorgen

Reply
Posts: 124
(@bw_composite)
Estimable Member
Joined: 17 years ago

Hi all,

I have been following this interesting thread and was a little puzzled by the mention of a closed form Jacobian.

If we are talking about the deformation gradient how can you express it in a closed form solution? And moreover how can a material model have its own Jacobian?

I do not expect Jorgen to show his formulation of course, but if anybody could spend a line on this I would be obliged.

Thanks and Regards

Marco

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

Perhaps the confusion is that the word Jacobian is sometimes used for two different things:

(1) J = det[F]

and

(2) J = partial derivative of stress increment with respect to strain increment

The second of these can be derived in closed-form for some models. Note, however, that a numerical approximation can be equally fast.

- Jorgen

Reply
Posts: 124
(@bw_composite)
Estimable Member
Joined: 17 years ago

Jorgen,

thanks for the clarification.

Have anice weekend

Muzialis

Reply
Page 1 / 3
Share: