| 
 ProductsAbaqus/Explicit User subroutine interface      subroutine vueos (
C Read only (unmodifiable) variables –
     1     nblock,
     2     jElem, kIntPt, kLayer, kSecPt, 
     3     stepTime, totalTime, dt, cmname,
     4     nstatev, nfieldv, nprops,
     5     props, tempOld, tempNew, fieldOld, fieldNew,
     6     stateOld, charLength, coordMp, 
     7     densityMean, refDensity, densityNew,
     8     dkk, Em,
C Write only (modifiable) variables –
     8     press, dPdRho, dPdEm, 
     9     stateNew )
C
      include 'vaba_param.inc'
C
      dimension props(nprops), 
     1  tempOld(nblock),
     2  fieldOld(nblock,nfieldv), 
     3  stateOld(nblock,nstatev), 
     4  tempNew(nblock),
     5  fieldNew(nblock,nfieldv),
     6  charLength(nblock), coordMp(nblock,*), 
     7  densityMean(nblock), refDensity(nblock),
     8  densityNew(nblock),
     9  dkk(nblock), Em(nblock),
     1  press(nblock),dPdRho(nblock),dPdEm(nblock),
     2  stateNew(nblock)
C
      character*80 cmname
C
      do 100 km = 1,nblock
        user coding  to define/update press, dPdRho, dPdEm
  100 continue
      return
      end
 Variables to be defined
 
 Variables that can be updated
 
 Variables passed in for information
 
 Example: User subroutine VUEOS to reproduce results obtained with EOS, TYPE=USUPAs a simple example of coding of user subroutine VUEOS, consider the following form of the Mie-Grüneisen equation of state with 0.0 and a linear dependency between pressure and internal energy: where . Therefore, the results obtained with user subroutine VUEOS should be the same as the results obtained with the linear type of EOS already available in Equation of state material. The code in user subroutine VUEOS must return the pressure, , as in the above equation; the derivative of the pressure with respect to the density, ; and the derivative of the pressure with respect to the energy, . For the case considered here, these values are       subroutine vueos (
C Read only (unmodifiable) variables –
     1     nblock,
     2     jElem, kIntPt, kLayer, kSecPt, 
     3     stepTime, totalTime, dt, cmname,
     4     nstatev, nfieldv, nprops,
     5     props, tempOld, tempNew, fieldOld, fieldNew,
     6     stateOld, charLength, coordMp, 
     7     densityMean, refDensity, densityNew,
     8     dkk, Em,
C Write only (modifiable) variables –
     8     press, dPdRho, dPdEm, 
     9     stateNew )
C
      include 'vaba_param.inc'
C
      dimension props(nprops), 
     1  tempOld(nblock),
     2  fieldOld(nblock,nfieldv), 
     3  stateOld(nblock,nstatev), 
     4  tempNew(nblock),
     5  fieldNew(nblock,nfieldv),
     6  charLength(nblock), coordMp(nblock,*), 
     7  densityMean(nblock), refDensity(nblock),
     8  densityNew(nblock),
     9  dkk(nblock), Em(nblock),
     1  press(nblock),dPdRho(nblock),dPdEm(nblock),
     2  stateNew(nblock)
C
      character*80 cmname
C
      parameter ( zero = 0.d0, one = 1.d0, half = 0.5d0 )
C
      c0 = props(1) 
      gamma0 = props(2)
      c02 = c0*c0 
C
      do k=1, nblock
       rho0 = refDensity(k)
       eta = one - rho0/densityNew(k)
       f1 = rho0*c02*eta*(one-half*gamma0*eta)
       f2 = gamma0*rho0
       press(k) = f1 + f2*Em(k)
C dP/dEm
       dPdEm(k) = f2 
C dP/dRho
  
       dPdRho(k)= c02*(rho0/densityNew(k))**2*(one-gamma0*eta)
      end do
C
      return
      end
 | |||||||||||||