User login


You are here

combining UMAT and UEL

I am trying to combine UMAT and UEL in my Abaqus calculation to simulate crack propagation by using a damage criterion. My UMAT calculates the damage variable in each time increment and whenever the damage variable violates the damage criterion in one or more elements, I should seperate the damaged element(s) via XFEM theory which can be implemented into a UEL code; therefore, I should use both UMAT and UEL in my calculation. Is there any way to combine these two codes together?


Jason Mayeur's picture


Whenever you create a UEL in Abaqus, you inherently have to include a "UMAT" (constitutive update) as part of code. When you are defining the stiffness matrix and the residual vector for the element, you need the stress tensor and material tangent stiffness tensor which are exactly the items your return to Abaqus in a UMAT call (along with the state variable array).  You don't necessarily use the UMAT subroutine call, rather you embed the UMAT's coding of the const. update within the UEL.

Is it your intent to only use the XFEM element only in selective portions of the mesh (i.e., where the damage variable reaches a critical value)?  If that is the case, I really don't have the knowledge to be any help to you, as it seems that would require some sort of adaptive remeshing technique.



Dear Jason,

Thank you. You helped a lot. What you said is exactly what I was doubting. So UEL is a more general concept than UMAT and can include the constitutive equations of the material behavior as well. I just need to embed the constitutive equations in the UEL along with the element description.


In my UEL, as you mentioned, I am going to implement XFEM formulation and use it together with a damage model, i.e. XFEM is to be linked to plasticity. Do you know perhaps if there is any reference, apart from what is in Abaqus manual, which clearly describes how to write a UEL in Abaqus?


Best regards,



Jason Mayeur's picture

Yes, a UEL is more general and must include the constitutive update (UMAT) within it to form the element matrices required as input back to Abaqus (AMATRX, RHS, etc.) at the end of the UEL call.  To my knowledge, there isn't a "nice" reference apart from what is in the Abaqus manual in regard to constructing the code, but its not terribly hard to do for standard finite elements (post-processing the results, however, is a different story).  I may be able to dig up a copy of 4 node quad element UEL that I did for a nonlinear FE class project if you're interested in looking at that.


Sure. It'd be nice if you can send it to me. My email is

Thanks in advance,



Dear Jason
   I am a student wuhan university of technology in china. My research topic is about strain gradient and ABAQUS was selected as the tool. I am  learning the uel and Umat and troubled about few reference .Could you sent a copy of the example about 4 node quad element UEL for a nonlinear to me. My email is
  Thanks in advance.

Hi jason


i am also interested in the UEL which u developed. can u send it to my email id attached:




Hi jason


i am also interested in the UEL which you developed. can you please send it to my email id attached:





Dear jason

I am also interested in the UEL which you developed. can you send it to my email : ,thanks。



I am also doing the Research work on UEL,can you please send me your UEL email

Thanks in advance.

Dear jason

 I am also very interested in the uel for nonlinear.

 Can you also send it to me?


Thank you very much

 Best regard


mehran.ghasabeh's picture

Hello everybody,

Could anyboy explain more about the required input file (Job.inp) for running an analysis in abaqus when UEL is implemented?

I have a coupled phase field code for brittle material, I have tried to change the input file as it is required to be done for user element code, but the analysis is terminated suddenly without any warning or error.

Best Regards

Can you explain the details of the error message? Then, I can help you prepare the input file :) 

mehran.ghasabeh's picture

Dear all,

When I have tried to implement UEL code in abaqus and run an analysis, I got this error message:

" The executable standard aborted with system error "Illegal memory reference" (signal 11). Please check the .dat, .msg, and .sta files for error messages if the files exist.  If there are no error messages and you cannot resolve the problem, please run the command "abaqus job=support information=support" to report and save your system information.  Use the same command to run Abaqus that you used when the problem occurred.  Please contact your local Abaqus support office and send them the input file, the file support.log which you just created, the executable name, and the error code."



Best Regards,

Frank Richter's picture

Subscribe to Comments for "combining UMAT and UEL"

Recent comments

More comments


Subscribe to Syndicate