Creep User Subroutine Calibration

The creep law shown above is sometimes called the "Bailey-Norton" power law. It has been available in Abaqus for decades, but it has some serious drawbacks.  The parameter "A" has odd units that depend upon the value of the other parameters. Because the 3DExperience platform is a 'units aware' software, the Bailey-Norton creep law is not supported there.

The creep law shown below is more modern, available in Abaqus since 2019.  

In this example we show how to set up a calibration of a creep user-subroutine.  The creep user-subroutine is taken from the Abaqus Benchmark Manual section 3.2.6  Verification of Creep Integration.  It is the classic Bailey-Norton creep law.  From the Benchmark Manual section, we will use the user-subroutine and a modified version of the .inp file named "creep_usr_creep.inp".  All the files that you would need to reproduce this calibration are supplied in the attached zip file.  

The Abaqus .inp files attached to the Benchmark Manual section are set up in English units (inch, lbf, psi) and we will continue to use those units. 

An interesting aspect of the CREEP user-subroutine, being one of the earliest Abaqus user-subs, is that it does not support the use of data lines for passing values into the subroutine.  There is a relatively new feature called *Parameter Table and *Property Table that allow one to pass values into user-subroutines. Within the 3DExperience platform, Parameter / Property Tables are supported with something called a Custom Schema.  The user imports a custom schema xml file into the platform.  This will be shown in the narrated video below.  

Note:  In 3DX, under preferences -> units, entities that have no unit are described by the word "no dimension", but in the schema.xml file one must use the term "dimensionless".  This is a bit confusing.  

This Benchmark Manual problem performs a creep simulation by applying a pressure on the edge of a CPS4 element and monitoring the changing U2 output of an edge node.  Synthetic test data was created using the Abaqus output for U2 from the native time power law model using the material model constants shown above. 

We show a narrated video of setting up this problem, the steps taken are:

  1. Switch to the FE mode.
  2. Make sure display units and calculation units are English, lbf, inch, psi
  3. Import the fake test data ; U2 versus time.
  4. Import the Abaqus FE model
  5. Map the U2 FE output to the test data. 
  6. Select the material model.  
  7. Import the Custom Schema .xml file
  8. Import the standardU.dll file that was compiled from the creep_user_BM326.f source code. Name it "Creep_Usersub_BM326".

 

The narrated video below demonstrates the steps listed above and creates a calibration model for this example. This video was created on May 6, 2024 using the public cloud, R2024x HotFix 3.9

 

 

The zip file below contains:

  1. creep_BM326_20k.inp
  2. CREEP_Schema_BM326.xml
  3. Creep_User_2Step_BM326.3dxml
  4. creep_user_BM326.f
  5. fake_data_BM326_20k.txt
  6. standardU.dll  (created using abq2024hf1)

 

Notes on Custom Schema (Nov, 2025) :

Relative to the Material Calibration App in 3DX, when I say I am going to use a Custom Schema, I am doing this to enhance the App's UI.  The Custom Schema .xml file for this example looks like this:

 

 

When you import this .xml file, the UI is enhanced like this:

Using a Custom Schema has several advantages:

  1.  Allows you to name the parameters
  2.  Allows you to assign units to the parameters.
  3.  Allows you to assign default values for the parameters (default values must be in MKS in the Schema file).   

 

When you use this Custom Schema in the Material Calibration App, the App will write out an Abaqus .inp file that has this sort of material definition:

 

 

This in turn means that the user subroutine you wrote must have been coded to access parameters from a *PARAMETER TABLE