Hallo zusammen,
ich möchte für die Berechnung der thermischen Ausdehnungen in meinem Model die Subroutine UEXPAN benutzen, um die Volumendehnung zu berücksichtigen (die sich aufgrund von Phasentransformationen im Stahl im meinem Model ergeben). Dazu habe ich zunächst einfach den thermischen Ausdehnungskoeffizienten in die Subroutine geschrieben und wollte in einem ersten Versuch einfach nur die Temperaturabhängigkeit von alpha (die ich ja auch einfach im Inputfile mit *EXPANSION angeben kann) in die Subroutine gepackt. Leider erhalte ich nicht die gleichen Ergebnisse wie wenn ich alpha unter *Expansion angebe. Die Elementverzerrungen sind jetzt sehr groß. Zum Vergleich, die Temperaturabhängigkeit von alpha, die ich vorher wie folgt im Inputfile definiert hatte:
*EXPANSION
10.2e-6, 20.
10.5e-6, 100.
10.9e-6, 200.
11.3e-6, 300.
11.6e-6, 400.
12.0e-6, 500.
12.2e-6, 600.
12.4e-6, 700.
12.5e-6, 750.
möchte ich jetzt so berechnen:
*EXPANSION,USER
und dann mit der Subroutine UEXPAN:
SUBROUTINE UEXPAN(EXPAN,DEXPANDT,TEMP,TIME,DTIME,PREDEF,
1DPRED,STATEV,CMNAME,NSTATV,NOEL)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
DIMENSION EXPAN(*),DEXPANDT(*),TEMP(2),TIME(2),PREDEF(*),
1DPRED(*),STATEV(NSTATV)
C
IF(TEMP(2).LE.0)THEN
a=0.0000101
ELSEIF(TEMP(2).GT.0.AND.TEMP(2).LE.20)THEN
a=0.0000102
ELSEIF(TEMP(2).GT.20.AND.TEMP(2).LE.100)THEN
a=0.0000105
ELSEIF(TEMP(2).GT.100.AND.TEMP(2).LE.200)THEN
a=0.0000109
ELSEIF(TEMP(2).GT.200.AND.TEMP(2).LE.300)THEN
a=0.0000113
ELSEIF(TEMP(2).GT.300.AND.TEMP(2).LE.400)THEN
a=0.0000116
ELSEIF(TEMP(2).GT.400.AND.TEMP(2).LE.500)THEN
a=0.0000120
ELSEIF(TEMP(2).GT.500.AND.TEMP(2).LE.600)THEN
a=0.0000122
ELSEIF(TEMP(2).GT.600.AND.TEMP(2).LE.700)THEN
a=0.0000124
ELSEIF(TEMP(2).GT.700)THEN
a=0.0000125
ELSE
ENDIF
C
expan(1)=a*(TEMP(2)-20)
C
RETURN
END
Was habe ich hier übersehen?
Grüße
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP