Defining Characteristic Element Length
The characteristic element length defined in user subroutine VUCHARLENGTH is used by Abaqus in regularization schemes needed to mitigate mesh dependency in constitutive models that include strain-softening, such as damage models (Damage Evolution and Element Removal for Ductile Metals), and concrete (Concrete Smeared Cracking). It could be used with built-in Abaqus material models as well as user subroutine–based material models. The characteristic element length coming in user subroutine VUCHARLENGTH has a default value based on the geometric mean. This default value is a typical length of a line across an element for a first-order element and is half of the same typical length for a second-order element. For trusses the default value is a characteristic length along the element axis. For membranes and shells the default value is a characteristic length in the reference surface. For axisymmetric elements the default value is a characteristic length in the r–z plane only. Inside user subroutine VUCHARLENGTH you can redefine the value of the characteristic element length based on the element topology and geometry. The characteristic element length defined in user subroutine VUCHARLENGTH at a particular material point is passed to other user subroutines that are called at the same material point, such as user subroutines VFABRIC, VUMAT, VUSDFLD, and VUEOS. The characteristic element length calculated in user subroutine VUCHARLENGTH at a particular material point is also used in built-in Abaqus material models that require characteristic length and are called at the same material point.
Array of Element Type and Geometric Properties
jElType contains information about the element type and the geometry. jElType(1) provides information about the shape of the element.
jElType(1) | Shape |
---|
1 |
line |
2 |
triangle |
3 |
quadrilateral |
4 |
tetrahedron |
5 |
wedge |
6 |
hexahedron |
jElType(2) provides information about the element's dimensionality.
jElType(2) | Space |
---|
1 |
2D and plane strain |
2 |
3D |
3 |
axisymmetric |
4 |
plane stress |
jElType(3) provides information about the section of the element.
jElType(3) | Section |
---|
1 |
solid |
2 |
shell |
3 |
truss |
4 |
membrane |
Elements
User subroutine VUCHARLENGTH can be used with membrane elements; shell elements; truss elements; and plane stress, plane strain, axisymmetric, and three-dimensional solid elements.
Special Consideration for 8-Node Continuum Shell Elements
For 8-node hexahedron continuum shell elements (SC8R and SC8RT), the order of nodes in the array of nodal coordinates (coordNode) passed to user subroutine VUCHARLENGTH depends on the stacking direction. For a single element nodes 1–4 correspond to the bottom face and nodes 5–6 correspond to the top face.
User Subroutine Interface
subroutine vucharlength(
c Read only variables-
1 nblock, nfieldv, nprops, ncomp, ndim, nnode, nstatev,
2 kSecPt, kLayer, kIntPt, jElType, jElem,
3 totalTime, stepTime, dt,
4 cmname, coordMp, coordNode, direct, T, props,
5 field, stateOld,
c Write only variables-
6 charLength )
c
include 'vaba_param.inc'
c
dimension jElType(3), jElem(nblock), coordMp(nblock,ndim),
1 coordNode(nblock,nnode,ndim),
2 direct(nblock,3,3), T(nblock,3,3), props(nprops),
3 stateOld(nblock,nstatev), charLength(nblock,ncomp),
4 field(nblock, nfieldv)
c
character*80 cmname
c
do 100 k = 1, nblock
user coding to define charLength(nblock,ncomp)
100 continue
c
return
end
Variables to Be Defined
- charLength(nblock,ncomp)
Characteristic element length.
Variables Passed in for Information
- nblock
Number of material points to be processed in this call to user subroutine VUCHARLENGTH.
- nfieldv
Number of user-defined external field variables.
- nprops
User-specified number of user-defined material properties.
- ncomp
User-specified number of components of characteristic element length. If ncomp is greater than 1, only the first component of characteristic element length would be used in the built-in Abaqus material models. However, all the components could be used in the above-mentioned user subroutines.
- ndim
Number of coordinate directions: 2 for two-dimensional models and 3 for three-dimensional models.
- nnode
Number of nodes of the element.
- nstatev
Number of user-defined state variables that are associated with this material type (define this as described in Allocating Space for Solution-Dependent State Variables).
- kSecPt
Section point number within the current layer.
- kLayer
Layer number (for composite shells).
- kIntPt
Integration point number.
- jElType(3)
Array containing information about the element type and geometry.
- jElem(nblock)
Array of element numbers.
- totalTime
Value of total time. The time at the beginning of the step is given by totalTime-stepTime.
- stepTime
Value of time since the step began.
- dt
Time increment size.
- cmname
User-specified material name, left justified. It is passed in as an uppercase character string.
- coordMp(nblock,ndim)
Material point coordinates. It is the midplane material point for shell elements.
- coordNode(nblock,nnode,ndim)
Nodal coordinates.
- direct(nblock,3,3)
An array containing the direction cosines of the material directions in terms of the global basis directions. For material point k direct(k,1,1), direct(k,2,1), and direct(k,3,1) give the (1, 2, 3) components of the first material direction; direct(k,1,2), direct(k,2,2), and direct(k,3,2) give the second material direction and so on. For shell and membrane elements the first two directions are in the plane of the element and the third direction is the normal.
- T(nblock,3,3)
An array containing the direction cosines of the material orientation components relative to the element basis directions. For material point k this is the orientation that defines the material directions (direct) in terms of the element basis directions. For continuum elements T and direct are identical. For shell and membrane elements T(k,1,1) , T(k,1,2) , T(k,2,1) , T(k,2,2) , T(k,3,3) , and all other components are zero, where is the counterclockwise rotation around the normal vector that defines the orientation. If no orientation is used, T is an identity matrix.
- props(nprops)
User-supplied material properties.
- field(nblock,nfieldv)
Values of the user-defined field variables at each material point at the beginning of the increment. User subroutine VUCHARLENGTH is called before user subroutine VUSDFLD. Thus, any changes to the field variables made in user subroutine VUSDFLD are not available in user subroutine VUCHARLENGTH.
- stateOld (nblock, nstatev)
State variables at each material point at the beginning of the increment.
|