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 Thermorheologically 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 |