ProductsAbaqus/Explicit Initial velocityAt the beginning of each step user subroutine VDISP is called once to establish the initial velocity; and then, it is called once on each configuration, including the initial configuration, to establish the nodal acceleration. The first call to user subroutine VDISP is made to establish the initial velocity, which is indicated by the passing of a step time value of $dt$ into the subroutine, where $dt$ is the current time increment. If displacement is prescribed, the returned variable, rval, corresponds to ${u}_{o}{v}_{o}dt$, where ${u}_{o}$ and ${v}_{o}$ are the initial displacement and velocity respectively. If velocity is prescribed, the returned variable corresponds to the initial velocity ${v}_{o}$. If acceleration is prescribed, the returned variable corresponds to $\frac{{v}_{o}}{dt}$, where ${v}_{o}$ is the initial velocity. The default value of rval is consistent with the velocity at the end of previous step or that specified as an initial condition in case of the first step. You only need to reset the rval if a different initial velocity is desired. The arrays u and v stand for the default initial displacement and velocity, respectively. The array a contains a zero value. AccelerationDuring time incrementation user subroutine VDISP is called once for each configuration, including the initial configuration, to establish the nodal acceleration. If displacement is prescribed, the returned variable should be set equal to the displacement at stepTime+dtNext, where stepTime is the step time and dtNext is the next time increment. If velocity is prescribed, the returned variable should be set equal to the mean velocity at stepTime+dtNext/2. If acceleration is prescribed, the returned variable should be set equal to the acceleration at stepTime. Note that stepTime is zero for the initial configuration. The variable rval has a default value that is computed with the constraints not yet applied. You can leave rval at this value, if desired. The variable u contains values at stepTime. Whereas, the variable v contains initial velocity when stepTime is zero and, otherwise, velocity at stepTime—dt/2. The variable a contains values at stepTime computed with the constraints not yet applied.
User subroutine interface subroutine vdisp(
c Read only variables 
1 nblock, nDof, nCoord, kstep, kinc,
2 stepTime, totalTime, dtNext, dt,
3 cbname, jBCType, jDof, jNodeUid, amp,
4 coordNp, u, v, a, rf, rmass, rotaryI,
c Write only variable 
5 rval )
c
include 'vaba_param.inc'
c
character*80 cbname
dimension jDof(nDof), jNodeUid(nblock),
1 amp(nblock), coordNp(nCoord,nblock),
2 u(nDof,nblock), v(nDof,nblock), a(nDof,nblock),
3 rf(nDof,nblock), rmass(nblock), rotaryI(3,3,nblock),
4 rval(nDof,nblock)
c
do 100 k = 1, nblock
do 100 j = 1, nDof
if( jDof(j) .gt. 0 ) then
user coding to define rval(j, k)
end if
100 continue
c
return
end Variables to be defined
Variables passed in for information
Example: Imposition of acceleration on a rigid body with nonzero initial velocityIn this example a sinusoidal acceleration is imposed on the reference node of a rigid body. Nonzero initial velocity is also specified for the rigid body. User subroutine VDISP given below illustrates how the return value array is to be computed for different phases of the solution. The analysis results show that both the initial velocity and acceleration are correctly specified.
