ABAQUS Subroutine VUSDFLD element deletion
ABAQUS Subroutine VUSDFLD element deletion
(OP)
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





RE: ABAQUS Subroutine VUSDFLD element deletion
First of all, there is a mistake in the subroutine. The stateNew(k,1) = StateUpdate before end do should be deleted.
Second. I tried to just use plasticity for the concrete and didn't change the subroutine. Then it works well, i.e., element deletion can be observed. Therefore, it seems that the subroutine is not called when concrete damage plasticity in ABAQUS is used. But there are two papers claimed that VUSDFLD can be used with CDP, but details about the subroutine is not provided. There might be something missing either in the .inp file or .for file when damage plasticity is used.
RE: ABAQUS Subroutine VUSDFLD element deletion
If damage has to be omitted for it to work, then I see little difference with the brittle cracking model, unless you're considering element deletion in compression. Then this might be really handy.
I'm eager to read whether you succeeded.