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). The values are always set equal to zero.
-
volFract(*)
-
Total volume fraction of the material at the previous increment.
-
nVolumeAddEvents
-
Not used.
-
csiAdded(3,*)
-
Not used.
|