Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

VUSDFLD subrotine ABAQUS : Varying Young's Modulus with an equation

lucas_lemos

Student
Feb 13, 2025
1
Hi, I am trying to write a VUSDFLD subrotine in Abaqus in which the material E changes with the absolute strain. I am using the Explicit solver as this is a dynamic problem.
The code that I have right now is as follows:

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,
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)

REAL*8 ABS_STRAIN, E ! Variables

! 1. Get logarithmic strain from Abaqus using VGETVRM
CALL VGETVRM('LE', rData, jData, nData, k, 1)

! Reshape rData to STRAIN
DO k = 1, nblock
STRAIN_11=rdata(k)
STRAIN_22=rdata(nblock + k)
STRAIN_33=rdata(2*nblock + k)
STRAIN_12=rdata(3*nblock + k)
STRAIN_23=rdata(4*nblock + k)
STRAIN_13=rdata(5*nblock + k)

END DO

! 2. Calculate ABSStrain
ABS_STRAIN = SQRT(STRAIN_11*2 + STRAIN_222 + STRAIN_332 +STRAIN_122 + STRAIN_232 + STRAIN_13*2)

! 3. Calculate Young's Modulus
E = 2.0D0 * ABS_STRAIN

! 4. Store Young's Modulus in the first field variable
field(k, 1) = E

!5 Saves as a state dependent variable
stateNew(k,1) = field(k,1)



RETURN
END

However it doesn't work. It is my first time working with subrotines so I can't find the error (eventhought it might be obvious). Also I don't know exactly what to define in the material inside Abaqus.Can someone help me? Thanks for your time
 
Replies continue below

Recommended for you

Part and Inventory Search

Sponsor