<!-- source-page: 351 -->

# 1.1.55 UTRACLOAD: User subroutine to specify nonuniform traction loads.

# Product: Abaqus/Standard

# References

• “Distributed loads,” Section 34.4.3 of the Abaqus Analysis User’s Guide   
• \*DLOAD   
• \*DSLOAD   
• “Distributed traction and edge loads,” Section 1.4.18 of the Abaqus Verification Guide

# Overview

User subroutine UTRACLOAD:

• can be used to define the variation of the distributed traction load magnitude as a function of position, time, element number, load integration point number, etc.;   
• if needed, can be used to define the initial loading direction for the distributed traction load as a function of position, element number, load integration point number, etc.;   
• will be called at each load integration point for each element-based, edge-based, or surface-based nonuniform distributed traction load definition during stress analysis;   
• cannot be used in mode-based procedures to describe the time variation of the load; and   
• ignores any amplitude references that may appear with the associated step definition or nonuniform distributed traction load definition.

# User subroutine interface

```csv
SUBROUTINE UTRACLOAD(ALPHA,T_USER,KSTEP,KINC,TIME,NOEL,NPT,1 COORDS,DIRCOS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION T_USER(3), TIME(2), COORDS(3), DIRCOS(3,3)
CHARACTER*80 SNAME
user coding to define ALPHA and T_USER
RETURN
END 
```

<!-- source-page: 352 -->

# ALPHA

Magnitude of the distributed traction load. Units are $\mathrm { F L } ^ { - 2 }$ for surface loads, $\mathrm { F L } ^ { - 1 }$ for edge loads, and F for edge moments. ALPHA is passed into the routine as the magnitude of the load specified as part of the element-based or surface-based distributed load definition. If the magnitude is not defined, ALPHA is passed in as zero. For a static analysis that uses the modified Riks method (“Unstable collapse and postbuckling analysis,” Section 6.2.4 of the Abaqus Analysis User’s Guide) ALPHA must be defined as a function of the load proportionality factor, . The distributed load magnitude is not available for output purposes.

# T\_USER

Loading direction of the distributed traction load. T\_USER is passed into the routine as the load direction specified as part of the element-based or surface-based distributed load definition. The vector T\_USER passed out of the subroutine is used as the initial loading direction $\mathbf { t } _ { u s e r }$ discussed in “Distributed loads,” Section 34.4.3 of the Abaqus Analysis User’s Guide. The direction of T\_USER as defined by the subroutine should not change during a step. If it does, convergence difficulties might arise. Load directions are needed only for a nonuniform general surface traction, shear surface traction, and general edge traction. If a direction is defined for the nonuniform normal edge traction, shear edge traction, transverse edge traction, or edge moment, it will be ignored. See “Distributed loads,” Section 34.4.3 of the Abaqus Analysis User’s Guide, for details.

# Variables passed in for information

# KSTEP

Step number.

# KINC

Increment number.

# TIME(1)

Current value of step time or current value of the load proportionality factor, , in a Riks step.

# TIME(2)

Current value of total time.

# NOEL

User-defined element number.

# NPT

Load integration point number within the element or on the element’s surface, depending on the load type.

<!-- source-page: 353 -->

# COORDS

An array containing the coordinates of the load integration point. These are the current coordinates if geometric nonlinearity is accounted for during the step (see “Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User’s Guide); otherwise, the array contains the original coordinates of the point.

# DIRCOS

Orientation of the face or edge in the reference configuration. For three-dimensional facets the first and second columns are the normalized local directions in the plane of the surface, and the third column is the normal to the face. For solid elements the normal points inward, which is the negative of what is defined in “Conventions,” Section 1.2.2 of the Abaqus Analysis User’s Guide; for shell elements the normal definition is consistent with the convention. For two-dimensional facets the first column is the normalized tangent, the second column is the facet normal, and the third column is not used. For three-dimensional shell edges the first column is the tangent to the shell edge (shear direction), the second column is the in-plane normal (normal direction), and the third column is the normal to the plane of the shell (transverse direction).

# JLTYP

Identifies the load type for which this call to UTRACLOAD is being made. The load type may be an element-based surface load, an edge-based load, or a surface-based load. This variable identifies the element face or edge for which this call to UTRACLOAD is being made. This information is useful when several different nonuniform distributed loads are being imposed on an element at the same time. See Part VI, “Elements,” of the Abaqus Analysis User’s Guide for element face and edge identification. The load labels are shown in Table 1.1.55–1. For surface- or edge-based loading (TRSHRNU, TRVECNU, EDLDNU, EDNORNU, EDSHRNU, EDTRANU, EDMOMNU), j in the load type identifies the face or edge of the element underlying the surface.

Table 1.1.55–1 JLTYP values for surface traction and edge load labels. 

<table><tr><td>Load Label</td><td>JLTYP</td><td>Load Label</td><td>JLTYP</td><td>Load Label</td><td>JLTYP</td></tr><tr><td>TRSHRNU</td><td>510+j</td><td>EDLDNU</td><td>540+j</td><td>EDTRANU</td><td>570+j</td></tr><tr><td>TRSHR1NU</td><td>511</td><td>EDLD1NU</td><td>543</td><td>EDTRANU</td><td>573</td></tr><tr><td>TRSHR2NU</td><td>512</td><td>EDLD2NU</td><td>544</td><td>EDTRANU</td><td>574</td></tr><tr><td>TRSHR3NU</td><td>513</td><td>EDLD3NU</td><td>545</td><td>EDTRANU</td><td>575</td></tr><tr><td>TRSHR4NU</td><td>514</td><td>EDLD4NU</td><td>546</td><td>EDTRANU</td><td>576</td></tr><tr><td>TRSHR5NU</td><td>515</td><td>EDNORNU</td><td>550+j</td><td>EDMOMNU</td><td>580+j</td></tr><tr><td>TRSHR6NU</td><td>516</td><td>EDNOR1NU</td><td>553</td><td>EDMOM1NU</td><td>583</td></tr><tr><td>TRVECNU</td><td>520+j</td><td>EDNOR2NU</td><td>554</td><td>EDMOM2NU</td><td>584</td></tr><tr><td>TRVEC1NU</td><td>521</td><td>EDNOR3NU</td><td>555</td><td>EDMOM3NU</td><td>585</td></tr></table>

<!-- source-page: 354 -->

<table><tr><td>Load Label</td><td>JLTYP</td><td>Load Label</td><td>JLTYP</td><td>Load Label</td><td>JLTYP</td></tr><tr><td>TRVEC2NU</td><td>522</td><td>EDNOR4NU</td><td>556</td><td>EDMOM4NU</td><td>586</td></tr><tr><td>TRVEC3NU</td><td>523</td><td>EDSHRNU</td><td>560+j</td><td></td><td></td></tr><tr><td>TRVEC4NU</td><td>524</td><td>EDSHRNU</td><td>563</td><td></td><td></td></tr><tr><td>TRVEC5NU</td><td>525</td><td>EDSHRNU</td><td>564</td><td></td><td></td></tr><tr><td>TRVEC6NU</td><td>526</td><td>EDSHRNU</td><td>565</td><td></td><td></td></tr><tr><td></td><td></td><td>EDSHRNU</td><td>566</td><td></td><td></td></tr></table>

# SNAME

Surface name for a surface-based load definition. For an element-based or edge-based load the surface name is passed in as blank.

<!-- source-page: 355 -->

# 1.1.56 UTRS: User subroutine to define a reduced time shift function for a viscoelastic material.

# Product: Abaqus/Standard

# References

• “Time domain viscoelasticity,” Section 22.7.1 of the Abaqus Analysis User’s Guide   
• \*TRS   
• \*VISCOELASTIC   
• “Transient thermal loading of a viscoelastic slab,” Section 3.1.2 of the Abaqus Benchmarks Guide

# Overview

User subroutine UTRS:

• can be used to define a temperature-time shift for a time domain viscoelastic analysis;   
• will be called for all material points of elements for which a user-defined shift function is specified to define the time-temperature correspondence as part of the viscoelastic material definition;   
• will be called before user subroutine UMATHT and/or user subroutine HETVAL if either or both are to be used with UTRS in a fully coupled temperature-displacement or a coupled thermal-electricalstructural analysis;   
• can use and update solution-dependent state variables; and   
• can be used in conjunction with user subroutine USDFLD to redefine any field variables before they are passed in.

# User subroutine interface

```fortran
SUBROUTINE UTRS (SHIFT,TEMP,DTEMP,TIME,DTIME,PREDEF,DPRED,1 STATEV,CMNAME,COORDS)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION SHIFT(2),TIME(2),PREDEF(1),DPRED(1),STATEV(1),1 COORDS(1)
C
user coding to define SHIFT(1) and SHIFT(2)
RETURN
END 
```

<!-- source-page: 356 -->

# Variable to be defined

# SHIFT

An array of length two that defines the shift function, A $( A > 0 )$ , at this point. SHIFT(1) defines the shift function at the beginning of the increment, and SHIFT(2) defines the shift function at the end of the increment. Abaqus/Standard will apply an averaging scheme to these values that assumes that the natural logarithm of the shift function can be approximated by a linear function over the increment.

If either element of SHIFT is found to be less than or equal to zero, the analysis will terminate with an error message.

# Variable that can be updated

# STATEV

An array containing the solution-dependent state variables at this point. This array will be passed in containing the values of these variables at the start of the increment unless they are updated in user subroutines USDFLD or UEXPAN, in which case the updated values are passed in. If any of the solutiondependent state variables are being used in conjunction with the viscoelastic behavior, they must be updated in this subroutine to their values at the end of the increment.

# Variables passed in for information

# TEMP

Temperature at the end of the increment.

# DTEMP

Increment of temperature during the time increment.

# PREDEF

An array containing the values of all of the user-specified field variables at this point at the end of the increment (initial values at the beginning of the analysis and current values during the analysis).

# DPRED

An array containing the increments of all of the predefined field variables during the time increment.

# TIME(1)

Value of step time at the end of the current increment.

# TIME(2)

Value of total time at the end of the current increment.

# DTIME

Time increment. If this subroutine is called during a procedure such as a static analysis in which the viscoelastic effects will not be taken into account, this variable is passed in as zero.

# CMNAME

User-specified material name, left justified.

<!-- source-page: 357 -->

# COORDS

An array containing the coordinates of the material point. These are the current coordinates if geometric nonlinearity is accounted for during the step (see “Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User’s Guide); otherwise, the array contains the original coordinates of the point.

<!-- source-page: 358 -->

<!-- source-page: 359 -->

# 1.1.57 UTRSNETWORK: User subroutine to define a reduced time shift function for models defined within the parallel rheological framework.

# Product: Abaqus/Standard

# References

• “Parallel rheological framework,” Section 22.8.2 of the Abaqus Analysis User’s Guide   
• “Nonlinear large-strain viscoelasticity with hyperelasticity,” Section 2.2.8 of the Abaqus Verification Guide   
• \*VISCOELASTIC

# Overview

User subroutine UTRSNETWORK:

• can be used to define a time-temperature shift for a nonlinear viscoelastic network for models defined using the parallel rheological framework;   
• will be called for all material points of elements for which a user-defined shift function is specified to define the time-temperature correspondence as part of the viscoelastic material definition;   
• can use and update solution-dependent state variables; and   
• can be used in conjunction with user subroutine USDFLD to redefine any field variables before they are passed in.

# User subroutine interface

```c
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, 
```

<!-- source-page: 360 -->

```python
* 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_crep_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)
