VUEXPAN

User subroutine to define thermal strain increments.

User subroutine VUEXPAN:

  • can be used to define thermal strain increments as a function of temperature, time, element number, predefined field variables, etc.;

  • will be called at all integration points of the elements for which the material contains user-defined thermal expansion; and

  • is intended for models in which the thermal strains depend on temperature, time, state variables, and/or predefined fields in complex ways.

This page discusses:

User Subroutine Interface

      subroutine vuexpan (
C Read only (unmodifiable)variables -
     * nblock, nDir, nShr, nExpanType,
     * nElem, nIntPt, nLayer, nSectPt,
     * stepTime, totalTime, dt, cmname, 
     * nstatev, nfieldv, nprops, props,
     * tempOld, tempNew, fieldOld, fieldNew,
     * stateOld, 
C Write only (modifiable) variable -
     * stateNew, strainThInc, dStrainTherDT )
C
      include 'vaba_param.inc'
C
      dimension strainThInc(nblock,nDir+nShr),
     * dStrainTherDT(nblock,nDir+nShr),
     * nElem(nblock), props(nprops),
     * tempOld(nblock), tempNew(nblock),
     * fieldOld(nblock,nfieldv),
     * fieldNew(nblock,nfieldv),
     * stateOld(nblock,nstatev),
     * stateNew(nblock,nstatev)
C
      character*80 cmname
C
      do 100 km = 1, nblock
        user coding to define strainThInc, dStrainTherDT,
        and, optionally, stateNew
  100 continue

      return
      end

Variables to Be Defined

strainThInc(nblock,nDir+nShr)

Increments of thermal strain. The number of values to be defined and the order in which they are arranged depend on the type of thermal expansion being defined.

  • For isotropic expansion give the isotropic thermal strain increment as the first and only component of the matrix.

  • For orthotropic expansion give Δϵ11th, Δϵ22th, and Δϵ33th as the first, second, and third components of the matrix, respectively.

  • For anisotropic expansion give Δϵ11th, Δϵ22th, Δϵ33th, Δϵ12th, Δϵ23th, and Δϵ13th. Direct components are stored first, followed by shear components in the order presented here. For plane stress only three components of the matrix are needed; give Δϵ11th, Δϵ22th, and Δϵ12th as the first, second, and third components, respectively.

dStrainTherDT(nblock,nDir+nShr)

Variation of thermal strains with respect to temperature, ϵth/θ. The number of values and the order in which they are arranged depend on the type of thermal expansion being defined.

  • For isotropic expansion give the variation of the isotropic thermal strain with respect to temperature as the first and only component of the matrix.

  • For orthotropic expansion give ϵ11th/θ, ϵ22th/θ, and ϵ33th/θ as the first, second, and third components of the matrix, respectively.

  • For anisotropic expansion give ϵ11th/θ, ϵ22th/θ, ϵ33th/θ, ϵ12th/θ, ϵ23th/θ, and ϵ13th/θ. Direct components are stored first, followed by shear components in the order presented here. For plane stress only three components of the matrix are needed; give ϵ11th/θ, ϵ22th/θ, and ϵ12th/θ as the first, second, and third components, respectively.

stateNew(nblock,nstatev)

Values of state variables at each material point at the end of the increment.

Variables Passed in for Information

nblock

Number of points to be processed in this call to VUEXPAN.

nDir

Number of direct components in a symmetric tensor.

nShr

Number of indirect components in a symmetric tensor.

nExpansionType

The thermal expansion type: 1 for isotropic expansion, 2 for orthotropic expansion, and 3 for anisotropic expansion.

nElem(nblock)

User-defined element number.

nInt

Integration point number.

nLayer

Layer number.

nSectPt

Section point number in the current layer.

stepTime

Value of time since the step began.

totalTime

Value of total time. The time at the beginning of step is given by totalTime - stepTime.

dt

Time increment size.

cmname
User-specified material name, left justified. It is passed in as an uppercase character string. Some internal material models are given names starting with the "ABQ_" character string. To avoid a conflict, you should not use "ABQ_" as the leading string for cmname.
nstatev

Number of user-defined state variables that are associated with this material.

nfieldv

Number of user-defined external field variables.

nprops

User-specified number of user-defined thermal expansion properties.

props(nprops)

User-supplied thermal expansion properties.

tempOld(nblock)

Temperatures at each material point at the beginning of the increment.

tempNew(nblock)

Temperatures at each material point at the end of the increment.

fieldOld(nblock,nfieldv)

Values of user-defined field variables at each material point at the beginning of the increment.

fieldNew(nblock,nfieldv)

Values of user-defined field variables at each material point at the end of the increment.

stateOld(nblock,nstatev)

Values of state variables at each material point at the beginning of the increment.