UEPACTIVATIONVOL

User subroutine to specify material volume fraction added during element activation.

User subroutine UEPACTIVATIONVOL:

  • can be used to add a volume fraction of material to an element during element activation;

  • can be used to prescribe eigenstrains to material added to an element during element activation;

  • can be used to update the orientation for solid elements;

  • can use and update element solution-dependent variables;

  • will be called at the beginning of each increment in a step in which element activation is active; and

  • can be used only with the heat transfer and static procedures.

This page discusses:

User Subroutine Interface

      subroutine uepactivationvol(
     * lFlags,
     * epaName,
     * noel,
     * nElemNodes,
     * iElemNodes,
     * mcrd,
     * coordNodes,
     * uNodes,
     * kstep,
     * kinc,
     * time,
     * dtime,
     * temp,
     * npredef,
     * predef,
     * nsvars,
     * svars,
     * sol,
     * solinc,
     * volFract,
     * nVolumeAddEvents,
     * volFractAdded,
     * csiAdded,
     * ori,
     * eigenstrains)     
C
      include 'aba_param.inc'
C
      dimension   
     * lFlags(*),
     * iElemNodes(nElemNodes),
     * coordNodes(mcrd,nElemNodes),
     * uNodes(mcrd,nElemNodes),
     * time(2),
     * svars(nsvars,2),
     * temp(2,nElemNodes),
     * predef(2,npredef,nElemNodes),
     * sol(nElemNodes),
     * solinc(nElemNodes),
     * volFract(*),
     * volFractAdded(*),
     * csiAdded(3,*),
     * ori(3,3),
     * eigenstrains(*)

      character*80 epaName

      user coding to define volFractAdded
      and possibly update eigenstrains, lFlags(4), ori, svars

      return
      end

Variables to Be Defined

volFractAdded(*)

The volume fraction of material added to the element in the current increment.

Variables That Can Be Updated

eigenstrains(*)

An array of eigenstrain components. If a local orientation is defined (lFlags(3)=1), the eigenstrain components must be specified in the local orientation. If the local orientation is updated, the eigenstrain components must be specified in the new orientation.

lFlags(4)

A flag to indicate if the orientation should be updated.

lFlags(4)=0 The orientation should not be updated.
lFlags(4)=1 The orientation should be updated. This flag is relevant only for solid elements (lFlags(5)=1) when local orientation is defined (lFlags(3)=1) and volume fraction of material is added to the element for the first time (volFract(1)=0 and volFractAdded(1) > 0). In all other cases this flag is ignored.
ori(3,3)

If a local orientation is not defined (lFlags(3)=0), this array is set to 0. If a local orientation is specified (lFlags(3)=1), this array contains the direction cosines of the material directions in terms of the global basis directions at the first material integration point of the element. ori(1,1), ori(2,1), ori(3,1) give the (1, 2, 3) components of the first material direction; ori(1,2), ori(2,2), ori(3,2) give the second material direction, etc. For shell elements, the first two directions are in the plane of the element and the third direction is the normal.

For solid elements, if a local orientation is defined (lFlags(3)=1), this orientation can be updated when the material is added to the element for the first time.

svars(nsvars,1)

An array for defining new values of element solution-dependent variables at the end of the increment. These are passed in as the values at the beginning of the increment unless they are updated by other user subroutines, in which case the updated values are passed in. The size of the array is nsvars (see below), which can be defined as described in Allocating Space for Element Solution-Dependent Variables.

Variables Passed in for Information

lFlags

An array containing the flags that define the current solution procedure, analysis type, and element type.

lFlags(1) Defines the procedure type. See Results File for the key used for each procedure.
lFlags(2)=0 Small-displacement analysis.
lFlags(2)=1 Large-displacement analysis (nonlinear geometric effects included in the step; see General and Perturbation Procedures).
lFlags(3)=0 Local orientation is not defined.
lFlags(3)=1 Local orientation is defined.
lFlags(5)=1 Solid element.
lFlags(5)=2 Shell element.
lFlags(5)=3 All other element types.
epaName

The name of the progressive element activation. It is the name specified on the ELEMENT PROGRESSIVE ACTIVATION option.

noel

User-assigned element number.

nElemNodes

Number of element nodes.

iElemNodes(nElemNodes)

An array containing user-assigned node numbers of the element.

mcrd

Defined as the maximum of the user-defined maximum number of coordinates needed at any node point (Defining the Maximum Number of Coordinates Needed at Any Nodal Point) and the value of the largest active degree of freedom of the user element that is less than or equal to 3. For example, if you specify that the maximum number of coordinates is 1 and the active degrees of freedom of the user element are 2, 3, and 6, mcrd will be 3. If you specify that the maximum number of coordinates is 2 and the active degrees of freedom of the user element are 11 and 12, mcrd will be 2.

coordNodes(mcrd,nElemNodes)

An array containing the coordinates of the nodes of the element.

uNodes(mcrd,nElemNodes)

An array containing displacements at the element nodes.

kstep

Current step number.

kinc

Current increment number.

time(1)

Current value of step time.

time(2)

Current value of total time.

dtime

Time increment.

temp(2,nElemNodes)

An array containing pairs of values of predefined temperature at the element nodes. The first value in a pair, temp(1,nElemNodes), corresponds to the value at the end of the increment, and the second value, temp(2,nElemNodes), corresponds to the increment in temperature.

npredef

Number of field variables.

predef(2,npredef,nElemNodes)

An array containing pairs of values of predefined field variables at the element nodes. The first value in a pair, predef(1,npredef,nElemNodes), corresponds to the value at the end of the increment, and the second value, predef(2,npredef,nElemNodes), corresponds to the increment in the field variables.

nsvars

Number of element solution-dependent variables.

svars(nsvars,2)

An array containing values of element solution-dependent variables at the beginning of the increment.

sol(nElemNodes)

An array of the solution variables (temperature in a heat transfer analysis) at the beginning of the increment.

solinc(nElemNodes)

An array of estimated values of the increment of the solution variables (temperature in a heat transfer analysis). Currently the values are always set equal to zero.

volFract(*)

Total volume fracture of the material at the previous increment.

nVolumeAddEvents

The variable is currently not used.

csiAdded(3,*)

The variable is currently not used.