ProductsAbaqus/Standard User subroutine interface subroutine utrsnetwork (
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_trs_shift_begin = 1,
* io_trs_shift_end = 2 )
C
parameter( i_trs_kstep = 1,
* i_trs_kinc = 2,
* i_trs_noel = 3,
* i_trs_npt = 4,
* i_trs_layer = 5,
* i_trs_kspt = 6 )
C
parameter( ir_trs_step_time = 1,
* ir_trs_total_time = 2,
* ir_trs_creep_time = 3,
* ir_trs_timeinc = 4 )
C
parameter( ic_trs_material_name = 1 )
C
dimension
* statev(nstatv),
* predef(nfield),
* dpred(nfield),
* props(nprops),
* coords(*),
* outputData(nOutput),
* i_array(niarray),
* r_array(nrarray)
character*80 c_array(ncarray)
C
user coding to define outputData(io_trs_shift_begin)
and outputData(io_trs_shift_end)
return
end
Variables to be defined
Variables that can be updated
Variables passed in for information
Example: Williams-Landel-Ferry shift functionAs an example of the coding of user subroutine UTRSNETWORK, consider the William-Landel-Ferry model to define the shift function. In this case the shift function is expressed as (see Thermo-rheologically simple temperature effects) where
The user subroutine would be coded as follows: subroutine utrsnetwork (
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_trs_shift_begin = 1,
* io_trs_shift_end = 2 )
C
parameter( i_trs_kstep = 1,
* i_trs_kinc = 2,
* i_trs_noel = 3,
* i_trs_npt = 4,
* i_trs_layer = 5,
* i_trs_kspt = 6 )
C
parameter( ir_trs_step_time = 1,
* ir_trs_total_time = 2,
* ir_trs_creep_time = 3,
* ir_trs_timeinc = 4 )
C
parameter( ic_trs_material_name = 1 )
C
C
parameter( zero=0.0d0, one=1.0d0, dln10=2.30258509299d0)
C
dimension
* statev(nstatv),
* predef(nfield),
* dpred(nfield),
* props(nprops),
* coords(*),
* outputData(nOutput),
* i_array(niarray),
* r_array(nrarray)
character*80 c_array(ncarray)
C
outputData(io_trs_shift_begin) = zero
outputData(io_trs_shift_end) = zero
temp0 = temp-dtemp
C
C WLF
C
theta0 = props(1)
C1 = props(2)
C2 = props(3)
outputData(io_trs_shift_begin) =
& exp(-dln10*C1*(temp0-theta0)/(C2+(temp0-theta0)))
outputData(io_trs_shift_end) =
& exp(-dln10*C1*(temp-theta0)/(C2+(temp-theta0)))
C
return
end | |||||||||||||