VUCHARLENGTH

User subroutine to define characteristic element length at a material point.

User subroutine VUCHARLENGTH:

  • is called at all material points of elements for which the material definition includes a user-defined characteristic element length and the constitutive model requires a characteristic length;

  • allows the definition of characteristic element length at a material point as a function of element topology, nodal and material point coordinates, and material orientation;

  • can use field variables that are passed in; and

  • can use solution-dependent state variables that are passed in.

This page discusses:

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 rz 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) =cosθ, T(k,1,2) =-sinθ, T(k,2,1) =sinθ, T(k,2,2) =cosθ, T(k,3,3) =1.0, 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.