Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

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

Code Problem with UMAT

Status
Not open for further replies.

p282h

Mechanical
Joined
Aug 18, 2009
Messages
39
Location
US
Hi:

I am trying to model residual stress as a result of temperature change using linear isotropic hardening equation.

1. I used USDFLD to calculate young's modulus (as FIELD(1)), poisson ratio (as FIELD(2)) as a function of temperature
2. I calculated the corresponding yield stress (FIELD(3)) as a function of temperature too in USDLFD, and stored as statev.

3. I used UEXPAN to calculate thermal strain (EXPAN(1) which I stored as a STATEV variable, Dthermal strain =coeff of expan*DTEMP and stored as another statev.

4. I got a UMAT code for isotropic hardening plasticity,

I calculated: FIELD(1)=EYoung(T), FIELD(2)=ENU(T)

EBULK3=FIELD(1)/(ONE-TWO*FIELD(2))
EG2=FIELD(1)/(ONE+FIELD(2))

EG=EG2/TWO
EG3=THREE*EG
ELAM=(EBULK3-EG2)/THREE

C ELASTIC STIFFNESS
C

C
DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=ELAM

END Do
DDSDDE(K1,K1)=EG2+ELAM

End Do

DO K1=NDI+1,NTENS
DDSDDE(K1,K1)=EG

End Do

C



C RECOVER ELASTIC AND PLASTIC STRAINS
C
DO K1=1,NTENS
STATEV(K1)=E(K1)
STATEV(K1+NTENS)=PE(K1)
80 END Do
C Also recover equivalent plastic strain

Call ROTSIG(STATEV(1),DROT,E,2,NDI,NSHR)
Call ROTSIG(STATEV(NTENS+1),DROT,PE,2,NDI,NSHR)

PEEQ=STATEV(1+2*NTENS)

C CALCULATE Predictor STRESS FROM ELASTIC STRAINS AND THERMAL STRAIN
C
DO K1=1,NTENS
DO K2=1,NTENS
STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*(DSTRAN(K1)-STATEV(2))
STATEV(1)=STATEV(1)+STATEV(2)
E(K1)=STRAN(K1)+DSTRAN(K1)-STATEV(1)
1
C IF NO YIELD STRESS IS GIVEN, MATERIAL IS TAKEN TO BE ELASTIC
C
End Do
End DO
C
C MISES STRESS
C
SMISES=(STRESS(1)-STRESS(2))*(STRESS(1)-STRESS(2)) +
1 (STRESS(2)-STRESS(3))*(STRESS(2)-STRESS(3)) +
1 (STRESS(3)-STRESS(1))*(STRESS(3)-STRESS(1))
DO K1=NDI+1,NTENS
SMISES=SMISES+SIX*STRESS(K1)**2
90 END Do
SMISES=SQRT(SMISES/TWO)
STATEV(3)=SMISES
C
C HARDENING CURVE, GET YIELD STRESS
C


C
C DETERMINE IF ACTIVELY YIELDING
C
IF (STATEV(3).GT.(1.0+TOLER)*STATEV(5)) THEN
C
C FLOW DIRECTION
C Actively Yielding
C Seperate the hydrostatci from the deviatoric stress

C
SHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE

DO K1=1,NDI
FLOW(K1)=(STRESS(K1)-SHYDRO)/STATEV(3)
End Do
DO K1=NDI+1,NTENS
FLOW(K1)=STRESS(K1)/STATEV(3)
END Do

END IF
C SOLVE FOR EQUIV STRESS, PEEQ from NEWTON ITERATION
HARD=0.0

DPEEQ=0.0
DO KEWTON=1,NEWTON
RHS=STATEV(3)-EG3*DPEEQ-STATEV(5)
DPEEQ=DPEEQ+RHS/(EG3+HARD)
END Do

IF(ABS(RHS).LT.TOLER*STATEV(5)) GOTO 140
130 CONTINUE
WRITE(6,2) NEWTON
2 FORMAT(//,30X,'***WARNING - PLASTICITY ALGORITHM DID NOT ',
1 'CONVERGE AFTER ',I3,' ITERATIONS')
140 CONTINUE
EFFHRD=EG3*HARD/(EG3+HARD)
C
C CALC STRESS AND UPDATE STRAINS
C
DO K1=1,NDI
STRESS(K1)=FLOW(K1)*STATEV(5)+SHYDRO
PE(K1)=PE(K1)+THREE*FLOW(K1)*DPEEQ/TWO
E(K1)=E(K1)-THREE*FLOW(K1)*DPEEQ/TWO
END DO
DO K1=NDI+1,NTENS
STRESS(K1)=FLOW(K1)*STATEV(5)
PE(K1)=PE(K1)+THREE*FLOW(K1)*DPEEQ
E(K1)=E(K1)-THREE*FLOW(K1)*DPEEQ
END DO

PEEQ=PEEQ+DPEEQ
SPD=DPEEQ*(STATEV(5)+STATEV(5))/TWO
C
C JACOBIAN
C
EFFG=EG*STATEV(5)/STATEV(3)
EFFG2=TWO*EFFG
EFFG3=THREE*EFFG2/TWO
EFFLAM=(EBULK3-EFFG2)/THREE

DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=EFFLAM
CONTINUE
DDSDDE(K1,K1)=EFFG2+EFFLAM
END Do
END Do
DO K1=NDI+1,NTENS
DDSDDE(K1,K1)=EFFG
END DO
DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K2,K1)=DDSDDE(K2,K1)+FLOW(K2)*FLOW(K1)
1 *(EFFHRD-EFFG3)

End Do
END DO



C
C STORE STRAINS IN STATE VARIABLE ARRAY
C
DO K1=1,NTENS
STATEV(K1)=E(K1)
STATEV(K1+NTENS)=PE(K1)

STATEV(1+2*NTENS)=PEEQ
END Do

RETURN
END


Questions: 1. error LNK2005: _UMAT already defined in uexpanSS316LonSS316L2.obj
fatal error LNK1169: one or more multiply defined symbols found; unable to fix the error.

2. Is my logic correct (i.e. to substract thermal strain from elastic strain and calculate stress, if stress exceed yield stress then store values as plastic strain).

3. I would like to incorporate volumetric strains also in my model to study phase transformations, can anyone give me suggestions?.

Thanks,
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top