Vous êtes sur la page 1sur 10

Impicit Delayed Norton Creep Implemented

Carlos Shultz
PADT Inc.

Abstract
A custom implicit creep routine was developed. The routine was based upon Norton's creep equation using
Hoop Stress with an additional delay to the onset of creep. The delay, called an incubation time, was an
exponential function of temperature and stress. The original implementation used Sz for 2D elements (182)
and Sy for 3D element (85,186,187) but was extended to use Seqv. The procedure for compiling will be
explained as well as other features including a verbose flag, a hoop vs. equivalent stress switch, and the use
of state variables to track element status.

Introduction
A custom creep model, called a delayed Norton creep model, was implemented for use with ANSYS 8.1.
Once the delay (a.k.a. incubation time) has been passed, each element is allowed to creep according to a
Norton creep equation. The model is designed to use hoop stress (Sz when axi-symmetric and Sy when
solid) or Seqv to calculate the amount of creep which occurs.

Material Model

Creep Strain
Material specific constants C1 through C3 were used in the calculation of creep strain using the following
equation:
− C3

∆ε = C1 S hoop,avg e
C2 T
∆t

∆ε is the incremental creep strain


T is absolute temperature, K

S hoop ,avg is hoop stress in MPa


∆t is the incremental time for the iteration

Values of C1, C2, and C3 were:


C1=0.15
C2=1.2
C3=22251.6

Creep strain does not accumulate until incubation time has been exceeded.
Incubation Time
Material specific constants C5 through C9 were used in the calculation of incubation time using the
following equation:

C6 Shoop , avg
+C7 (C8 −C9T )
8.314T 106
tinc = C5e

tinc is the incubation time


T is absolute temperature, K

S hoop ,avg is hoop stress in Pa

Values of C5 through C9 were:


C5=0.003
C6=180000
C7=2
C8=0.6
C9=0.00055

Hoop vs. Equivalent Stress Toggle


If C10 is set to 1 then the incubation time and creep strain calculations are based upon equivalent stress
rather than hoop stress.

This is implemented in the code like this:


if (prop(10).eq.1) then
tinc=c5 * exp(c6/8.314/T) * exp(c7*(c8-c9*T)*seqv/1e6)
else
tinc=c5 * exp(c6/8.314/T) * exp(c7*(c8-c9*T)*abs(ShoopAVG)/1e6)
endif

Usercreep.F Code Features

Element Error Trapping and Hoop Stress Calculation


The code was implemented for a subset of the elements in ANSYS. The code determines whether the
element is allowed and if so, calculates the proper hoop stress.

ival=elmget(elemid,elmdat,nodes) Í Retrieve element type number


ival=etyget(elmdat(2),ielc(1)) Í Retrieve element type for the element type
number
ival=ensget(elemid,stress) Í Retrieve nodal stress results

If the element type is not supported, the code writes:


UNSUPPORTED ELEMENT TYPE
to the output window and goes to the end of the subroutine.

If the axisymmetric keyoption is not specified, the code writes:


FOR CUSTOMCREEP WITH TYPE 182 KEYOPT(3) MUST = 1
to the output window and goes to the end of the subroutine.

The Hoop stress is calculated differently for each element type, for type 182, Sz for the corner nodes are
stored in the 3rd, 14th, 25th, and 36th position of the stress array. So, the hoop stress is:
stress(3) + stress(14) + stress(25) + stress(36)
S hoop ,avg =
4

State Variables
State variables were used to track the state of the elements. If the incubation time for a given element has
been exceeded, its 1st state variable changes from 0 to 1. The state variables for all integration points of an
element change in unison to prevent element distortion failures which occur if the element creeps at a
subset of integration points.
This is implemented in code like this:
if (statedata(elemID,kDInPt).NE.1.0) then
if (time.GE.tinc) then Í if incubation time exceeded, set
flags and allow creep
statev(1)=1.0
do 101 b=1,20
statedata(elemID,b)=1.0
101 continue
else
goto 990 Í otherwise skip creep
endif
endif

Each elements 2nd state variable contained the initial value of incubation time. Both of the variables can be
printed and displayed during post-processing if outres,svar,all is entered prior to solution.

Figures 1 through 3 below show a chronology of plots of SEQV and State Variable 1 side-by-side for 3
times during a sample analysis. The hollow cylinder in the example is loaded with internal pressure and
axial tensile forces. Creep starts in the necked down region and spreads to other parts of the model as
incubation time is passed.
Figure 1. Plot of SEQV and State at time=3262, incubation time > 3262 in all elements

Figure 2. Plot of SEQV and State at time=3518, incubation time exceed in some elements
Figure 3. Plot of SEQV and State at time=34048, incubation time exceed in more elements

Verbose Flag
To print out information regarding the current calculations to the output window a verbose flag was
implemented. The user sets material property 4 to 1 in order to trigger output printing. The code to
implement this is:
if (prop(4).EQ.1) then
write (6,991) elemid,elmdat(2),ielc(2),ielc(5),elmdat(5)
991 format ('elemid: ',I8,' typenum: ',I3,' type&key3:
',I3,1x,I1,' esys: ',I2)
write (6,992) t,temp,toffst
992 format ('abs_temp: ',F12.3,' temp: ',F12.3,' temp_off:
',F12.3)
etc…
endif
The verbose flag simplifies both debugging during development and post-compile verification as the user
does not need to recompile in order to use this feature.
Compiling

Procedure for compiling


Make sure that you load the customization tools when installing ANSYS. Figure 4 below shows an
example of the installation gui.

Figure 4. Installation gui example showing customization tools option

You must have the correct Fortran Compiler available. For ANSYS 8.1 windows 32bit, the version is
Compaq Visual Fortran Standard Edition 6.6A. Run the provided anscust.bat file which is in this directory
for a standard installation:

C:\Program Files\Ansys Inc\v81\ANSYS\custom\user\intel

Figures 5,6 and 7 show the expected output when running the anscust.bat file.
Figure 5. Anscust.bat will compile all of the fortran code in the directory and then link the
resulting objects with the precompiled objects

Figure 6. A successful linking will look like this


Figure 7. In the compiling directory you will have a custom ANSYS executable as shown in
this image

Using the custom ANSYS executable


To launch ANSYS using the custom executable, use the customization tab of the launcher. Use the browse
button to navigate to the proper file and then point at the ANSYS.exe file as shown in figure 8 below.

Figure 8. Launcher showing the customization tab and use of the Custom ANSYS.exe

If all has gone properly you should see the following in the output window, see figure 9, “Note – This
ANSYS version was linked by Licensee”.

Figure 9. Output window indicates that the user has linked the version of ANSYS being
used

Using the custom material model


To use the custom creep model, use the material selection gui, select Creep and State Variables as shown in
figures 10 and 11. Add rows for the 10 constants and add temperatures as desired. Enter the data and then
press OK. Enter zeros for the state variables.
Figure 10. Material Definition GUI showing where to specify custom creep model
parameters.

Figure 11. Material Definition GUI showing where to specify custom creep model
parameters.

Alternatively, you can enter the data using APDL like this:
TB,CREEP,1,2,10,100
TBTEMP,1300
TBDATA,1,0.15,1.2,22251.6,0
TBDATA,5,0.003,180000,2,.6,.00055
TBDATA,10,0
TBTEMP,1500
TBDATA,1,0.15,1.2,22251.6,0
TBDATA,5,0.003,180000,2,.6,.00055
TBDATA,10,0
TB,STATE,1,,2

Model Verification
A variety of test cases were run. One case set incubation time to 0 to compare against the built in
implementation of Norton’s creep. Another case was run with constant stress and compared to hand
calculations.

Vous aimerez peut-être aussi