ABAQUS子程序 DFLUX

Abaqus的热源程序的接口是DFLUX,可以定义非均匀的与位置、时间、温度、单元和积分点相关的热源方程。调用计算过程中,每一个单元积分点都会从这个子程序得到。当单元为一次单元时,不管是热传导分析、温度-结构耦合分析或者温度-电场-结构耦合分析时,将节点作为flux积分点进行计算。

基本格式如下:

      SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
     1 JLTYP,TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION FLUX(2), TIME(2), COORDS(3)
      CHARACTER*80 SNAME


      user coding to define FLUX(1) and FLUX(2)


      RETURN
      END

最主要的就是定义FLUX().
FLUX(1):流经模型某点的热流。对于面热源,单位是JT–1L–2,对于体热源是JT–1L–3。
FLUX(2):热量对温度的变化率。

SOL:此时此刻求解变量的估算值(传热分析中的温度,质量扩散分析中的浓度)。
KSTEP:分析步
KINC:增量步
TIME(1):(瞬态分析中)当前分析步时间
TIME(2):(瞬态分析中)当前总时间
NOEL:单元号。
NPT:单元积分点号。单元或单元表面上的积分点编号,具体取决于表面还是体。
COORDS:包含点坐标的数组。如果考虑分析步中几何非线性,则这些坐标是当前坐标。否则是原始坐标。
JLTYP:表征热源形式,对于如下:

JLTYP Flux type

0 Surface-based flux

1 BFNU
11 S1NU (SNEGNU for heat transfer shells)
12 S2NU (SPOSNU for heat transfer shells)
13 S3NU
14 S4NU
15 S5NU
16 S6NU

TEMP:当前温度
PRESS:当前的等效应力
SNAME:对于面热源时适用,表示surface的名称。

INCLUDE 'ABA_PARAM.INC'
 parameter(one=1.d0)
 DIMENSION COORDS(3),FLUX(2),TIME(2)
 CHARACTER*80 SNAME
 q=633*2.27*0.75
 v=0.00227
 d=v*TIME(2)
 x=COORDS(1)
 y=COORDS(2)
 z=COORDS(3)
 x0=0
 y0=0
 z0=0
 a=0.0019
 b=0.0032
 c=0.0028
 PI=3.1415
 heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
 shape=exp(-3*(x-x0)**2/b**2-3*(y-y0)**2/c**2-3*(z-z0-d)**2/a**2)
C JLTYP=1,表示为体热源
 JLTYP=1
 if (JSTEP. eq. one) then
C FLUX(1)=heat*shape-1100000
 FLUX(1)=heat*shape
 endif
 RETURN
 END

解释:
parameter(one=1.d0) !定义一个常数
DIMENSION COORDS(3),FLUX(2),TIME(2) !定义数组,都是一维数组,元素分别为3,2,2个
CHARACTER80 SNAME 定义字符型,长度为80
q=633
2.270.75 !变量赋值
v=0.00227
d=v
TIME(2) !TIME(2)代表第二个元素
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)!将COORDS的三个元素分别赋值于,x,y,z.
x0=0
y0=0
z0=0
a=0.0019
b=0.0032
c=0.0028
PI=3.1415 !
heat=6sqrt(3.0)q/(abcPIsqrt(PI))!
shape=exp(-3(x-x0)2/b2-3(y-y0)2/c2-3(z-z0-d)2/a2)!
C JLTYP=1,表示为体热源
JLTYP=1
if (JSTEP. eq. one) then!注意one是一个变量,在一开头就赋值了.
C FLUX(1)=heat
shape-1100000 !C表示注解,这个一般在FORTRAN77中常常用这个符号,现在人多用!来注解.或者说注释行.
FLUX(1)=heat*shape
endif
RETURN
END

(1)高斯面热源

SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C
W_U=18.0
W_I=60.0
EFFI=0.5
Q=W_U*W_I*EFFI
v=0.005

Rh=0.004
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)

C
x0=0
y0=0
C
PI=3.1415
C
R=sqrt((x-x0-d)**2+(y-y0)**2)
C
JLTYP=0
FLUX(1)=3*Q/(PI*Rh**2)*exp(-3*R**2/Rh**2)
RETURN
END

(2)半椭球体热源

SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
C

W_U=18
W_I=60
EFFI=0.5
Q=W_U*W_I*EFFI
v=0.005
d=v*TIME(2)
C
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
C
x0=0
y0=0
z0=0.003

C
a=0.003
b=0.002
c=0.003
PI=3.1415
C
heat=6*sqrt(3.0)*Q/(a*b*c*PI*sqrt(PI))
shape=exp(-3*(x-x0-d)**2/a**2-3*(y-y0)**2/b**2-3*(z-z0)**2/c**2)
C
JLTYP=1
FLUX(1)=heat*shape
RETURN
END

你可能感兴趣的:(ABAQUS子程序 DFLUX)