ProductsAbaqus/Standard Model descriptionThe user subroutine allows a creep law of the following general form to be defined: where and
The left Cauchy-Green strain tensor, , is defined as where is the deformation gradient with volume change eliminated, which is computed using The user subroutine must define the increment of creep equivalent strain, , as a function of the time increment, , and the variables used in the definition of , as well as the derivatives of the equivalent creep strain increment with respect to those variables. If any solution-dependent state variables are included in the definition of , they must also be integrated forward in time in this user subroutine.
User subroutine interface subroutine ucreepnetwork (
C Must be updated
* outputData,
C Can be updated
* statev,
C Information (Read only)
* nOutput,
* nstatv,
* networkid,
* coords,
* temp,
* dtemp,
* nfield,
* predef,
* dpred,
* nprops,
* props,
* i_array,
* niarray,
* r_array,
* nrarray,
* c_array,
* ncarray)
C
include 'aba_param.inc'
C
parameter( io_creep_equiv_creepinc = 1,
* io_creep_deqcreepinc_deqcreep = 2,
* io_creep_deqcreepinc_dqtild = 3,
* io_creep_deqcreepinc_dinv1crp = 4,
* io_creep_deqcreepinc_dinv1 = 5,
* io_creep_deqcreepinc_dinv2 = 6,
* io_creep_deqcreepinc_ddetf = 7,
* io_creep_deqcreepinc_dpress = 8 )
C
parameter( i_creep_kstep = 1,
* i_creep_kinc = 2,
* i_creep_noel = 3,
* i_creep_npt = 4,
* i_creep_layer = 5,
* i_creep_kspt = 6,
* i_creep_lend = 7 )
C
parameter( ir_creep_step_time = 1,
* ir_creep_total_time = 2,
* ir_creep_creep_time = 3,
* ir_creep_timeinc = 4,
* ir_creep_equiv_creep_strain = 5,
* ir_creep_qtild = 6,
* ir_creep_inv1crp = 7,
* ir_creep_inv1 = 8,
* ir_creep_inv2 = 9,
* ir_creep_detf = 10,
* ir_creep_press = 11 )
C
parameter( ic_creep_material_name = 1 )
C
dimension
* statev(nstatv),
* predef(nfield),
* dpred(nfield),
* coords(*),
* props(nprops),
* outputData(nOutput),
* i_array(niarray),
* r_array(nrarray)
character*80 c_array(ncarray)
C
user coding to define outputData(io_creep_equiv_creepinc),
outputData(io_creep_deqcreepinc_deqcreep),
outputData(io_creep_deqcreepinc_dqtild),
outputData(io_creep_deqcreepinc_dinv1crp),
outputData(io_creep_deqcreepinc_dinv1),
outputData(io_creep_deqcreepinc_dinv2),
outputData(io_creep_deqcreepinc_ddetf) and
outputData(io_creep_deqcreepinc_dpress)
return
end
Variables to be defined
Variables that can be updated
Variables passed in for information
Example: Bergstrom-Boyce modelAs an example of the coding of user subroutine UCREEPNETWORK, consider the Bergstrom-Boyce model. In this case the equivalent creep strain rate is expressed as (see Parallel rheological framework) where and
The user subroutine would be coded as follows: subroutine ucreepnetwork (
C Must be updated
* outputData,
C Can be updated
* statev,
C Information (Read only)
* nOutput,
* nstatv,
* networkid,
* coords,
* temp,
* dtemp,
* nfield,
* predef,
* dpred,
* nprops,
* props,
* i_array,
* niarray,
* r_array,
* nrarray,
* c_array,
* ncarray)
C
include 'aba_param.inc'
C
parameter( io_creep_equiv_creepinc = 1,
* io_creep_deqcreepinc_deqcreep = 2,
* io_creep_deqcreepinc_dqtild = 3,
* io_creep_deqcreepinc_dinv1crp = 4,
* io_creep_deqcreepinc_dinv1 = 5,
* io_creep_deqcreepinc_dinv2 = 6,
* io_creep_deqcreepinc_ddetf = 7,
* io_creep_deqcreepinc_dpress = 8 )
C
parameter( i_creep_kstep = 1,
* i_creep_kinc = 2,
* i_creep_noel = 3,
* i_creep_npt = 4,
* i_creep_layer = 5,
* i_creep_kspt = 6,
* i_creep_lend = 7 )
C
parameter( ir_creep_step_time = 1,
* ir_creep_total_time = 2,
* ir_creep_creep_time = 3,
* ir_creep_timeinc = 4,
* ir_creep_equiv_creep_strain = 5,
* ir_creep_qtild = 6,
* ir_creep_inv1crp = 7,
* ir_creep_inv1 = 8,
* ir_creep_inv2 = 9,
* ir_creep_detf = 10,
* ir_creep_press = 11 )
C
parameter( ic_creep_material_name = 1 )
C
C model parameters
parameter ( zero=0.0d0,half=0.5d0,one=1.0d0,two=2.0d0,
& three=3.0d0,five=5.0d0,six=6.0d0 )
C
dimension
* statev(nstatv),
* predef(nfield),
* dpred(nfield),
* coords(*),
* props(nprops),
* outputData(nOutput),
* i_array(niarray),
* r_array(nrarray)
character*80 c_array(ncarray)
C
C Bergstrom-Boyce Model
C
A = props(1)
dm = props(2)
C = props(3)
E = props(4)
C
dI1 = r_array(ir_creep_inv1crp)
dLamb = (dI1/three)**half
sigmaB = r_array(ir_creep_qtild)
dt = r_array(ir_creep_timeinc)
C
C deq
deq = dt*A*(dLamb-one+E)**C*sigmaB**dm
C
C d(deq)/(dI1crp)
deqdi1 = deq*C/(dLamb-one+E)/dLamb/six
C
C d(eq)/d(eq)
deqeq = zero
C
C d(eq)/d(q)
deqdq = dm*dt*A*(dLamb-one+E)**C*sigmaB**(dm-one)
C
C set output
outputData(io_creep_equiv_creepinc) = deq
outputData(io_creep_deqcreepinc_deqcreep) = deqeq
outputData(io_creep_deqcreepinc_dqtild) = deqdq
outputData(io_creep_deqcreepinc_dinv1crp) = deqdi1
outputData(io_creep_deqcreepinc_dinv1) = zero
outputData(io_creep_deqcreepinc_dinv2) = zero
outputData(io_creep_deqcreepinc_ddetf) = zero
outputData(io_creep_deqcreepinc_dpress) = zero
C
return
end | |||||||||||||