Self heating effect...

Clear all

2 Posts
1 Users
0 Likes
814 Views Posts: 4
Topic starter
(@mcburns)
New Member
Joined: 9 years ago

Hello all,

I have got an issue that are annoying me for a while: I want to simulate the self-heating effect of a material under repeat loading using ABAQUS.

In theory I know how to face the problem:

1) using the *HEAT GENERATION coupled to the subroutine HETVAL I can give to my model a volumetric flux based on stress and strain rate. The self heating effect is actually the integral over time of stress times strain rate.

2) the stress and the strain rate for each node can be saved in the STATEV

3) to get the strain rate and the stress I can use the subroutine USDFLD calling the function GETVRM

Here is the problem! the main parts of the model follow:

[CODE]*Element, type=C3D20RT

*Amplitude, name=Amp-1, time=TOTAL TIME, definition=PERIODIC

1,377.0225,0,0

0,5165290000

*Material, name=Material-1

*Conductivity, type=ORTHO

5.7,3.,1.

*Damping, structural=0.065

*Density

1583.,

*Elastic, type=ENGINEERING CONSTANTS

4.74e+10, 4.74e+10, 9.3e+09, 0.31, 0.31, 0.31, 2.01e+10, 4.28e+09

4.28e+09,

*Expansion

3e-05

*Heat Generation

*Specific Heat

1300.,

*User Defined Field

*Depvar

1

** initial condition: temperature at T=0

*Initial Conditions, type=FIELD, VARIABLE=1

Set-5, 293.

*Step, name=Heating, nlgeom=YES, inc=10000000

*Dynamic,application=TRANSIENT FIDELITY

0.002,4.15,8.3e-07,0.002

Part-1-1.clampmass, BZ, 1.

*Restart, write, frequency=0

*Output, field, frequency=1

*Node Output

NT, U

*Element Output, directions=YES

E, ER, S, TEMP

*End Step

SUBROUTINE USDFLD(FIELD,STATEV,DIRECT,T,CELENT,

1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,

2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,

3 LACCFLA)

C

INCLUDE ABA_PARAM.INC

C

CHARACTER*80 CMNAME,ORNAME

CHARACTER*3 FLGRAY(15)

DIMENSION FIELD(1),STATEV(2),DIRECT(3,3),

1 T(3,3),TIME(2)

DIMENSION ARRAY(3),JARRAY(15),JMAC(*),JMATYP(*),

1 COORD(*)

REAL DE

REAL S

REAL TEMPERATURE

C

C Value of current strain:

C

CALL GETVRM(ER,ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,

1 LACCFLA)

DSTRAIN = ARRAY(1)

C

C Maximum value of STRESS

C

CALL GETVRM(S,ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,

1 MATLAYO,LACCFLA)

STRESS = ARRAY(2)

C

C Set temperature

C

CALL GETVRM(TEMP,ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,

1 MATLAYO,LACCFLA)

TEMPERATURE = ARRAY(3)

FIELD(1)=TEMPERATURE

C

C Store as a solution dependent state variable

C

STATEV(1) = DSTRAIN * STRESS

C

RETURN

END

C

SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,STATEV,FLUX,

1 PREDEF,DPRED)

C

INCLUDE ABA_PARAM.INC

C

CHARACTER*80 CMNAME

C

DIMENSION TEMP(2),STATEV(*),PREDEF(*),TIME(2),FLUX(2),

1 DPRED(*)

C

C Try a constant FLUX

C

FLUX(1)=50000

C

RETURN

END

[/CODE]

1) I used the Dynamic Implicit as I need the strain Rate so it has to be time-dependent. Is that correct??

2) If I used *TEMPERATURE rather than *INITIAL CONDITION, TYPE=FIELD Abaqus does not enter in the subroutine USDFLD (I Tested with a simple WRITE within the subroutine) ...its very sticky isnit?

3) Writing variables DE, S, TEMPERATURE in the .DAT file with the WRITE(6,*) I noticed that they are all ZERO. (!!!!)

I assume the GETVRM does not work properly on this way

4) The program doesnt pass through the HETVAL at all. (tested writing a line in the DAT file)

Any advice and help would be very important,

thanks

Fabrizio

Topic Tags Posts: 4
Topic starter
(@mcburns)
New Member
Joined: 9 years ago

Hi all! is this topic so difficult? Can anyone help me ?

Topic Tags