VDLOAD

User subroutine to specify nonuniform distributed loads.

User subroutine VDLOAD:

  • can be used to define the variation of the distributed load magnitude as a function of position, time, velocity, etc. for a group of points, each of which appears in an element-based or surface-based nonuniform load definition;

  • will be called for load integration points associated with each nonuniform load definition including PENU and PINU loads applicable for pipe elements;

  • does not make available the current value of the nonuniform distributed loads for file output purposes; and

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

This page discusses:

User Subroutine Interface

      subroutine vdload (
C Read only (unmodifiable)variables -
     1 nBlock, ndim, stepTime, totalTime,
     2 amplitude, 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  dirCos(nBlock,ndim,ndim), 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 load. Units are FL−2 for surface loads, FL−3 for body forces.

Variables Passed in for Information

nBlock

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

ndim

Number of coordinate directions: 2 for two-dimensional models, 3 for three-dimensional models. The model will be considered three-dimensional if any three-dimensional elements are defined (including SPRINGA elements).

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.

amplitude

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

curCoords (nBlock, ndim)

Current coordinates of each point for which the load is to be calculated.

velocity (nBlock, ndim)

Current velocity of each point for which the load is to be calculated.

dirCos (nBlock, ndim, ndim)

Current orientation of the face, edge, pipe, or beam for pressure type loads (not applicable for body force type loads). The second dimension indicates the vector, and the third dimension indicates the components of that vector. For faces (pressures on three-dimensional continuum, shell, and membrane 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 (pressures on two-dimensional continuum elements and two-dimensional beams and pipes), 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 will be a unit normal in the out-of-plane direction. For three-dimensional beam and pipe elements, the first and second vectors are the local axes (n1, n2) and the third vector is the tangent vector (t), as defined in Beam Element Cross-Section Orientation.

For a discrete element analysis using PD3D elements, the first column of the array is the radius of the element.

jltyp

Key that identifies the distributed load type. The load type may be a body force, a surface-based load, or an element-based surface load. For element-based surface loads, this variable identifies the element face for which this call to VDLOAD 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:

JltypeLoad type
Surface-based load
1 BXNU
2 BYNU
3 BZNU
20 PNU
21 P1NU
22 P2NU
23 P3NU
24 P4NU
25 P5NU
26 P6NU
27 PINU
28 PENU
41 PXNU
42 PYNU
43 PZNU
sname

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