VDFLUX

User subroutine to specify nonuniform distributed fluxes in an explicit dynamic coupled temperature-displacement analysis.

User subroutine VDFLUX:

  • can be used to define the variation of the distributed flux as a function of position, temperature, time, velocity, element number, etc. for a group of points in a dynamic coupled thermal-stress analysis using explicit integration (for more information, see Fully Coupled Thermal-Stress Analysis);

  • will be called at each flux integration point associated with each element-based or surface-based nonuniform distributed flux definition in the analysis; and

  • recognizes an amplitude reference (Amplitude Curves) if it appears with the associated nonuniform flux definition.

This page discusses:

User Subroutine Interface

      subroutine vdflux (
C Read only (unmodifiable)variables -
     1 nblock, ndim, kStep, kIncr, stepTime, totalTime, jUid,
     2 amplitude, temp, curCoords, velocity, dirCos, jltyp, sname,
C Write only (modifiable) variable -
     1 value )
C
      include 'vaba_param.inc'
C
      dimension curCoords(nblock,ndim), velocity(nblock,ndim),
     1  jUid(nblock), dirCos(nblock,ndim,ndim), temp(nblock),
     2	 value(nblock)
      character*80 sname
C

      do 100 km = 1, nblock
        user coding to define value

  100 continue

      return
      end

Variables to Be Defined

value(nblock)

Magnitude of the distributed flux. Units are JT−1L−2 for surface fluxes and JT−1L−3 for body fluxes.

Variables Passed in for Information

nblock

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

ndim

Number of coordinate directions: 2 for two-dimensional models, 3 for three-dimensional models. The model is considered three-dimensional if any three-dimensional elements are defined.

kStep

Step number.

kIncr

Increment number.

stepTime

Value of time since the step began.

totalTime

Value of total time. The time at the beginning of the step is given by totalTimestepTime.

jUid

User-defined element numbers.

amplitude

Current value of the amplitude referenced for this flux (set to unity if no amplitude is referenced). You must multiply the flux by the current amplitude value within the user subroutine if the amplitude is required.

TEMP

Current value of temperature at this integration point.

curCoords(nblock, ndim)

Current coordinates of each point for which the flux is to be prescribed.

velocity(nblock, ndim)

Current velocity of each point for which the flux is to be prescribed.

dirCos(nblock, ndim, ndim)

Current orientation of the face or edge (not applicable for body flux type loads). The second dimension indicates the vector, and the third dimension indicates the components of that vector. For faces (surface fluxes on three-dimensional continuum and shell elements) the first and second vectors are the local directions in the plane of the surface and the third vector is the normal to the face, as defined in Conventions. For solid elements the normal points inward, which is the opposite of what is defined in the conventions; for shell elements the normal definition is consistent with the defined conventions. For edges (fluxes on two-dimensional continuum elements) the first vector is the normal to the edge; the second vector is the tangent to the edge; and, if ndim=3, the third vector is a unit normal in the out-of-plane direction.

jltyp

Key that identifies the distributed flux type. The load type may be a body flux, a surface-based flux, or an element-based surface flux. For element-based surface fluxes this variable identifies the element face for which this call to VDFLUX is being made. See About the Element Library for element load type identification. This information is useful when several different nonuniform distributed loads are being imposed on an element at the same time. The key is as follows:

jltypLoad type
Surface-based load
1 BFNU
11 S1NU or SNEGNU
12 S2NU or SPOSNU
13 S3NU
14 S4NU
15 S5NU
16 S6NU
sname

Surface name for a surface-based flux load definition (JLTYP=0). For a body flux or an element-based face load the surface name is passed in as a blank.