Search code examples
abaqusfinite-element-analysis

How to use two UEL in same problem in ABAQUS


I am solving a contact problem. A footing under compressive load placed over soil. I would like to use two different types of user-defined elements one for the soil and other for the footing. Please note: I would like to use two different UEL. Not UMAT. How to call two UEL in the same problem? I found on the internet that in order to call two different material models (UMAT1 and UMAT2), string names are compared in an IF statement and the corresponding UMAT routine is referred inside one main Fortran file. How to achieve this for UEL?


Solution

  • There is parameter JTYPE passed into UEL routine. JTYPE is equal to user element type (TYPE=U1001 <=> JTYPE=1001) i.e

    *USER ELEMENT,NODES=2,TYPE=U1001,PROPERTIES=4,COORDINATES=3,VARIABLES=6
    1,2,3
    
    *USER ELEMENT,NODES=2,TYPE=U1002,PROPERTIES=4,COORDINATES=3,VARIABLES=6 
    1,2,3
    
    *ELEMENT,TYPE=U1001, ELSET=U1 
    
    11, 2, 11, 112,  115 
    
    12, 3, 14,  98,  114
    
    *ELEMENT,TYPE=U1002, ELSET=U2
    
    13, 6, 15
    
    14, 7, 18
    

    Then depending on JTYPE value (as a switch) you can code for many types of user elements in the same UEL routine (sample information written into ABAQUS.msg file UNIT 7).

      INCREMENT     1 STARTS. ATTEMPT NUMBER  1, TIME INCREMENT  0.100    
       * ---- Process User Element START  JTYPE         1001
      ****  BZ USER SUBR inc = 1           1
      ****  BZ USER SUBR XII     100000.000000000     
      ****  BZ USER SUBR DU  0.000000000000000E+000
      * ---- Process User Element START  JTYPE         1001
      ****  BZ USER SUBR inc = 1           1
      ****  BZ USER SUBR XII     100000.000000000     
      ****  BZ USER SUBR DU  0.000000000000000E+000
      * ---- Process User Element START  JTYPE         1002
      ****  BZ USER SUBR inc = 1           1
      ****  BZ USER SUBR XII     100000.000000000     
      ****  BZ USER SUBR DU  0.000000000000000E+000
      * ---- Process User Element START  JTYPE         1002
      ****  BZ USER SUBR inc = 1           1
      ****  BZ USER SUBR XII     100000.000000000     
      ****  BZ USER SUBR DU  0.000000000000000E+000