# [Solved] Rubber Curing: ABAQUS UMATHT Subroutine Problem ...

Dear All,

I am writing a UMATHT subroutine (Abaqus) to simulate rubber curing process and predict state of cure. In this effort I used the empirical model by Kamal and Sourer. The reference is shown below.

https://www.sciencedirect.com/science/article/abs/pii/S0927025609003668

the UMATHT code I written is mentioned below. The problem i noticed is, the state variable to show state of cure is not displaying in abaqus. When I inquired through the code, I realised the "time" parameter is not properly assigned to X (bolded in red color as shown below)

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,

1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,

2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,

3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 TIME(2),DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),G(1),alpha(1)

Real*8 CPu,CPc,K,TEMP,C

Real*8 B,RATE,A,D,alpha,G,X

C CPu is the specific heat capacity of uncured rubber

C CPc is the specific heat capacity of cured rubber

C RATE IS THE RATE CONSTANT

C F IS THE MATERIAL CONSTANT

C A IS THE INDUCTION TIME

C Ku is the thermal conductance of uncured rubber

C Kc is the thermal conductance of cured rubber

CPu= PROPS(1)

CPc= PROPS(2)

Ku= PROPS(3)

Kc= PROPS(4)

E = PROPS(5)

R = PROPS(6)

k0 = PROPS(7)

F = PROPS(8)

N = PROPS(9)

t0 = PROPS(10)

C Calculation of Specific Heat Capacity

CP=(CPu+CPc)

C Calculation of Thermal Conductivity

K=(Ku+Kc)

C Calculation of Rate Constant

C= E/(R*TEMP)

B=EXP(C)

RATE=k0*B

C Calculation of Induction Time

D=EXP(F/TEMP)

A=t0*D **X=TIME(1) **

C Calculation of state of cure (alpha)

G=RATE*[(X-A)**N]

alpha = G/(1-G)

DUDT = CP

DU = DUDT*DTEMP

U = U+DU

DO I=1,NTGRD

FLUX(I)= -K*DTEMDX(I)

DFDG(I,I) =-K

END DO

c do i=1,nstatv

statev(1)=alpha

c end do

RETURN

END

Could you please help me a way to assign this value, so that this model can be run smoothly.

I used single element input file to run this code. It is attached.

Any suggestion is welcome.

Thanks a lot

BR,

Aravinda

I looked at your code quickly, and I seems that TIME(1) is assigned to the local variable X. What happens if you add a

print '(a,g16.6)', "X=", X

statement?

-Jorgen

Hi Jorgen, I bought your book on polymer mechanics and it was very useful. Thanks by the way.

I did what you have asked. and what happened was I got nice time values for the time(1) as follows...

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.00000

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.100000E-02

X= 0.200000E-02

X= 0.200000E-02

It goes for a long run.....and it seems to me now the X is defined properly. but when I define

STATEV(1) = alpha

there is a compilation error as

umatht.for(60): error #6366: The shapes of the array expressions do not conform. [STATEV]

I do not know why it happens like that.

could you please help me what have i done wrong in this case.

Thanks Jorgen

Aravinda

I think I see the problem. You fined alpha by:

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 TIME(2),DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),G(1),alpha(1)

This means alpha is a vector with length one.

I suggest that you remove alpha(1) from the DIMENSION statement. That should take care of the problem.

-Jorgen

Hi Jorgen,

Many thanks, as you requested I removed alpha (1) from dimension statement and G(1) also, but when I remove those I am getting that

umatht.for(50): error #6366: The shapes of the array expressions do not conform. [G]

G=RATE*[(X-A)**N]

my updated routine is shown below... I do not understand what I have done anything wrong.... It is really mysterious to me.

Glad if you can help me...

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,

1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,

2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,

3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 TIME(2),DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3)

Real*8 CPu,CPc,K,TEMP,C

Real*8 B,RATE,A,D,alpha,G,X

C CPu is the specific heat capacity of uncured rubber

C CPc is the specific heat capacity of cured rubber

C RATE IS THE RATE CONSTANT

C F IS THE MATERIAL CONSTANT

C A IS THE INDUCTION TIME

C Ku is the thermal conductance of uncured rubber

C Kc is the thermal conductance of cured rubber

CPu= PROPS(1)

CPc= PROPS(2)

Ku= PROPS(3)

Kc= PROPS(4)

E = PROPS(5)

R = PROPS(6)

k0 = PROPS(7)

F = PROPS(8)

N = PROPS(9)

t0 = PROPS(10)

C Calculation of Specific Heat Capacity

CP=(CPu+CPc)

C Calculation of Thermal Conductivity

K=(Ku+Kc)

C Calculation of Rate Constant

C= E/(R*TEMP)

B=EXP(C)

RATE=k0*B

C Calculation of Induction Time

D=EXP(F/TEMP)

A=t0*D **X=TIME(1) **

C Calculation of state of cure (alpha)

G=RATE*[(X-A)**N]

alpha = G/(1-G)

DUDT = CP

DU = DUDT*DTEMP

U = U+DU

DO I=1,NTGRD

FLUX(I)= -K*DTEMDX(I)

DFDG(I,I) =-K

END DO

c do i=1,nstatv

statev(1)=alpha

c end do

RETURN

END

- VUMAT for Hyperelastic Materials - Update to Bergstrom's Example2 years ago
- UMAT: Tangent stiffness for linear perturbation steps / steady state dynamics / vibration analysis2 years ago
- Running with Matlab an Abaqus python script involving a subroutine3 years ago
- UMAT subroutine for 3d solid4 years ago
- About the VUMAT in the books by Dr. Jorgen Bergstrom6 years ago

- 21 Forums
- 3,865 Topics
- 13.2 K Posts
- 8 Online
- 29.3 K Members