Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

ABAQUS VUSDFLD subroutine 1

Status
Not open for further replies.

roya22

Mechanical
Aug 9, 2017
11
Dear all,

I'm trying to write a vusdfld subroutine to delete elements when their Mises stress reach a certain value. I set Depvar as 1 (for Mises stress). However, I don't know how what command I must use in the vusdfld in order to delete elements and where I must define Field variables in the model (I mean in Elastic in material module or somewhere else).
I would be really grateful if anyone could help me, as I'm new in using this subroutine.

best regards,
Roya
 
Replies continue below

Recommended for you

Sorry,
I read the mentioned discussion and modified myself. However, I got the error below:

The executable explicit.exe aborted with system error code 1073741819. Please check the .dat, .msg, and .sta files for error messages if the files exist.

Here is the code:

subroutine vusdfld(
c Read only variables -
1 nblock,nstatev, nfieldv, nprops, ndir, nshr,
2 jElem, kIntPt, kLayer, kSecPt,
3 stepTime, totalTime, dt, cmname,
4 coordMp, direct, T, charLength, props,
5 stateOld,MISES,
c Write only variables -
6 stateNew, field)
c
include 'vaba_param.inc'
c
dimension jElem(nblock), coordMp(nblock,*),
1 direct(nblock,3,3), T(nblock,3,3),
2 charLength(nblock), props(nprops),
3 stateOld(nblock,nstatev),
4 stateNew(nblock,nstatev),
5 field(nblock,nfieldv)
character*80 cmname
c
c Local arrays from vgetvrm are dimensioned to
c maximum block size (maxblk)
c
parameter( nrData=6 )
character*3 cData(maxblk*nrData)
dimension rData(maxblk*nrData), jData(maxblk*nrData)
c
do k = 1, nblock
c
c Misses Stress
call vgetvrm('MISES', rData, jData, cData, jStatus )
c
MS=MISES(k,1)
stateNew(k,1)=MS
c
IF (stateNew(k,1).LT.5.76) Then
if (stateNew(k,2).NE.0) then
c Element deletion
stateNew(k,2)=0
else
stateNew(k,2)=1
end if
End IF
c
end do
c
return
end

Are there any problems regarding calling the mises stress?
 
You shouldn't change the subroutine interface so delete MISES from this line: 5 stateOld,MISES,

On github you can find an example of VUSDFLD subroutine used to delete elements above specified von Mises stress threshold. Search for AbaqusUserFieldDamage by BBurgarella.
 
Thank you so much for your guide and the example. It was really helpful.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor