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 |