Composite Failure UMAT in Plane Stress
My end goal is to develop an Abaqus UMAT that can be used for progressive failure of laminated composites in plane stress. Im working from the ground up here, but Ive reached a sticking point. I implemented and validated isotropic elasticity and then orthotropic elasticity for a single composite (8-ply) shell.
Now Im working with a 4x16 mesh of shell elements, and the problem Im having is that Abaqus seems to be having a convergence problem right at the point of failure. Ive got solution-dependent variables to flag failure, and if I disable the degradation, I can see that the failure stress is being reached in one of the plys, and the appropriate solution-dependent variable gets set. However, if I enable the degradation portion of my UMAT, then Abaqus gets stuck iterating right where failure first occurs. The last step printed to the odb file is the one where all stresses are within allowables.
Im wondering if it might have something to do with my degradation approach. Right now, Im using the simplest possible method: if the stress is above allowable, then reduce all elastic moduli by a factor of 1e5. Im confused as to why this causes convergence issues, though. Even if I use a degradation factor smaller than 1e5 Abaqus crashes. In other words, it seems that once any material point undergoes softening, Abaqus cant get the solution to convergence. My expectation here is that the other plys should continue to carry the load once failure occurs in the first ply, but this does not seem to be occurring.
Does anyone have any thoughts or suggestions? They would be much appreciated. Thank you!
Hello there,
I think that possibly your damage model is not man enough for the job.
In the best scenario, results would be mesh-dependent, as softening would tend to concentrate on a single row of elements (mathematically, softening results in the property of ellipticity being lost).
Moreover, I suspect you have another problem, in that your description might not be able to describe progressive degradation. To help me understand more, what would you expect to happen to a 1D bar of your material subject to a constant, increasing stress rate?
Hope it helps
Hello,
log on to
[url] http://simulia.custhelp.com/cgi-bin/abaqus.cfg/php/enduser/home.php [/url]
and register.
Search for answer ID
3123 Abaqus/Explicit VUMAT for the simulation of damage and failure in unidirectional fiber composite materials
Good luck
Frank
Hello,
It gives error- error during compilation. what can be the problem?
*****************************************************************************
** UMAT FOR ABAQUS/STANDARD INCORPORATING ELASTIC BEHAVIOUR FOR PLANE **
** STRAIN AND AXI-SYMMETRIC ELEMENTS. **
**************************************************************************
**************************************************************************
**
**
**
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE ABA_PARAM.INC
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),
2 DDSDDT(NTENS),DRPLDE(NTENS),
3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
DIMENSION DSTRES(3),C(3,3)
PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,
1 SIX=6.D0, NINE=9.D0, TOLER=0.D-6)
PI=DACOS(-1.D0)
C
C PROPERTIES
C
E11=PROPS(1)
E22=PROPS(2)
V12=PROPS(3)
G12=PROPS(4)
V21=PROPS(2)*PROPS(3)/PROPS(1)
ALPHA0=PROPS(5)*PI/180
XC=PROPS(6)
XT=PROPS(7)
YC=PROPS(8)
YT=PROPS(9)
SL=PROPS(10)
ETA_T=-1/TAN(2*ALPHA0)
ETA_L=-(PROPS(10)*COS(2*ALPHA0))/(PROPS(8)*COS(ALPHA0)**2)
ST=PROPS(8)*COS(ALPHA0)*(SIN(ALPHA0)+ETA_T*COS(ALPHA0)/TAN(2*ALPHA0))
ST1T=PROPS(7)/PROPS(1)-V21*PROPS(9)/PROPS(2)
C
C MATERIAL STIFFNESS MATRIX
C
DEV=1-V21*V12
C(1,1)=E11/DEV
C(1,2)=V12*E11/DEV
C(1,3)=0
C(2,1)=C(1,2)
C(2,2)=E22/DEV
C(2,3)=0
C(3,1)=0
C(3,2)=0
C(3,3)=G12
C
C EVALUATE NEW STRESS TENSOR
C
DO K1=1,NDI
TERM1= 0.
TERM2 = 0.
DO K2=1,NDI
TERM1 = TERM1+C(K1,K2)*STRAN(K2)
TERM2 = TERM2 + C(K1,K2)*(STRAN(K2)+STRAN(K2))
END DO
DSTRESS(K1)=TERM1
STRESS(K1)=TERM2
END DO
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DSTRES(I1) = C(I1,I1)*DSTRAN(I1)
STRESS(I1) = C(I1,I1)*(DSTRAN(I1)+STRAN(I1))
END DO
C
C CREATE NEW JACOBIAN
C
DO K1=1,NTENS
DO K2=1,NTENS
DDSDDE(K2,K1) = 0.
END DO
END DO
C
DO K1=1,NDI
DDSDDE(K1,K1) = C(K1,K1)
END DO
C
DO K1=2,NDI
N2 = K1-1
DO K2=1,N2
DDSDDE(K2,K1) = C(K2,K1)
DDSDDE(K1,K2) = C(K1,K2)
END DO
END DO
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DDSDDE(I1,I1) = C(I1,I1)
END DO
C
C TOTAL CHANGE IN SPECIFIC ENERGY
C
TDE = 0.
DO K1=1,NTENS
TDE = TDE + (STRESS(K1)-.5*DSTRES(K1))*DSTRAN(K1)
END DO
C
C CHANGE IN SPECIFIC ELASTIC STRAIN ENERGY
C
TDE=0.0
DO K1=1,NTENS
TDE=TDE+(STRESS(K1)+0.5*DSTRESS(K1))*DSTRAN(K1)
END DO
DEE = 0.
DO K1=1,NDI
TERM1 = 0.
TERM2 = 0.
DO K2=1,NDI
TERM1 = TERM1 + C(K1,K2)*STRAN(K2)
TERM2 = TERM2 + C(K1,K2)*DSTRAN(K2)
END DO
DEE = DEE + (TERM1+.5*TERM2)*DSTRAN(K1)
END DO
I1 = NDI
DO K1=1,NSHR
I1 = I1+1
DEE = DEE + C(I1,I1)*(STRAN(I1)+0.5*DSTRAN(I1))*DSTRAN(I1)
END DO
SSE = SSE + DEE
RETURN
END
Your subroutine is not too long, but it will require a bit more time to review and fix it properly.
Unfortunately I am very busy these days. I can help, but only for a fee. Send me a [URL= https://polymerfem.com/sendmessage.php ]message[/URL] if you are interested.
/Jorgen
Mr
Hello there,
Im now facing exactly the same convergence problem when trying to simulate progress damage with USDFLD. When reaching the failure criterion, it will suffer with convergence difficulty with little increment. Can you please tell me how you finally solve it? Thanks
Xinyao
[QUOTE=hobscrk777,10607]My end goal is to develop an Abaqus UMAT that can be used for progressive failure of laminated composites in plane stress. Im working from the ground up here, but Ive reached a sticking point. I implemented and validated isotropic elasticity and then orthotropic elasticity for a single composite (8-ply) shell.
Now Im working with a 4x16 mesh of shell elements, and the problem Im having is that Abaqus seems to be having a convergence problem right at the point of failure. Ive got solution-dependent variables to flag failure, and if I disable the degradation, I can see that the failure stress is being reached in one of the plys, and the appropriate solution-dependent variable gets set. However, if I enable the degradation portion of my UMAT, then Abaqus gets stuck iterating right where failure first occurs. The last step printed to the odb file is the one where all stresses are within allowables.
Im wondering if it might have something to do with my degradation approach. Right now, Im using the simplest possible method: if the stress is above allowable, then reduce all elastic moduli by a factor of 1e5. Im confused as to why this causes convergence issues, though. Even if I use a degradation factor smaller than 1e5 Abaqus crashes. In other words, it seems that once any material point undergoes softening, Abaqus cant get the solution to convergence. My expectation here is that the other plys should continue to carry the load once failure occurs in the first ply, but this does not seem to be occurring.
Does anyone have any thoughts or suggestions? They would be much appreciated. Thank you!
Hi there,
Im currently facing exactly the same problem like yours. When I tried to simulate progressive damage of a laminate structure with USDFLD, it wil meet convergence difficulty upon reaching the failure stress. Can you please tell me how youve solved this? Thanks a lot
Xinyao
- how to model anisotropic hyperelastic material in Ansys 103 months ago
- help seeking on VUMAT for Neo-hooke model in ABAQUS10 months ago
- YLD2000-2D (Barlat2000) Implementation - LS-Dyna Umat1 year ago
- User difined Material Model In LS Dyna1 year ago
- Constitutive model of BERGSTROM-BOYCE MODEL3 years ago
- 21 Forums
- 3,866 Topics
- 13.2 K Posts
- 8 Online
- 29.3 K Members