Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations Ron247 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

Status
Not open for further replies.

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

Status
Not open for further replies.

Part and Inventory Search

Sponsor