Simon-666
Civil/Environmental
- Jan 12, 2017
- 2
Dear all,
I am trying to use subroutine VUSDFLD to carry out element deletion for concrete fracture analysis. The subroutine is as follow. The model can run but i cannot see any element deleted during the analysis.
I suspect the subroutine does not change the status value as defined in DEPVAR. Can anyone have any suggestion on this issue? Thanks in advance.
c
c User subroutine VUSDFLD for user-defined fields
c
subroutine vusdfld(
c Read only -
* nblock, nstatev, nfieldv, nprops, ndir, nshr,
* jElemUid, kIntPt, kLayer, kSecPt,
* stepTime, totalTime, dt, cmname,
* coordMp, direct, T, charLength, props,
* stateOld,
c Write only -
* stateNew, field )
c
include 'vaba_param.inc'
c
dimension props(nprops),
* jElemUid(nblock), coordMp(nblock, *),
* direct(nblock, 3, 3), T(nblock,3,3),
* charLength(nblock),
* stateOld(nblock, nstatev),
* stateNew(nblock, nstatev),
* field(nblock, nfieldv)
character*80 cmname
c
character*3 cData(maxblk)
dimension jData(maxblk)
dimension eqps(maxblk)
dimension eqpst(maxblk)
c Get stresses and strains from previous increment
jStatus = 1
call vgetvrm( 'PEEQ', eqps, jData, cData, jStatus )
call vgetvrm( 'PEEQT', eqpst, jData, cData, jStatus )
c
do k = 1, nblock
StateUpdate = stateOld(k,1)
if ( (eqps(k) .ge. 0.004) .OR. (eqpst(k) .ge. 0.00005) ) then
c Element deletion
stateNew(k,1) = 0.d0
end if
stateNew(k,1) = StateUpdate
end do
c
return
end
I am trying to use subroutine VUSDFLD to carry out element deletion for concrete fracture analysis. The subroutine is as follow. The model can run but i cannot see any element deleted during the analysis.
I suspect the subroutine does not change the status value as defined in DEPVAR. Can anyone have any suggestion on this issue? Thanks in advance.
c
c User subroutine VUSDFLD for user-defined fields
c
subroutine vusdfld(
c Read only -
* nblock, nstatev, nfieldv, nprops, ndir, nshr,
* jElemUid, kIntPt, kLayer, kSecPt,
* stepTime, totalTime, dt, cmname,
* coordMp, direct, T, charLength, props,
* stateOld,
c Write only -
* stateNew, field )
c
include 'vaba_param.inc'
c
dimension props(nprops),
* jElemUid(nblock), coordMp(nblock, *),
* direct(nblock, 3, 3), T(nblock,3,3),
* charLength(nblock),
* stateOld(nblock, nstatev),
* stateNew(nblock, nstatev),
* field(nblock, nfieldv)
character*80 cmname
c
character*3 cData(maxblk)
dimension jData(maxblk)
dimension eqps(maxblk)
dimension eqpst(maxblk)
c Get stresses and strains from previous increment
jStatus = 1
call vgetvrm( 'PEEQ', eqps, jData, cData, jStatus )
call vgetvrm( 'PEEQT', eqpst, jData, cData, jStatus )
c
do k = 1, nblock
StateUpdate = stateOld(k,1)
if ( (eqps(k) .ge. 0.004) .OR. (eqpst(k) .ge. 0.00005) ) then
c Element deletion
stateNew(k,1) = 0.d0
end if
stateNew(k,1) = StateUpdate
end do
c
return
end