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