Abaqus的热源程序的接口是DFLUX,可以定义非均匀的与位置、时间、温度、单元和积分点相关的热源方程。调用计算过程中,每一个单元积分点都会从这个子程序得到。当单元为一次单元时,不管是热传导分析、温度-结构耦合分析或者温度-电场-结构耦合分析时,将节点作为flux积分点档键冲进行计算。
基本格式如下:
最主要的就是定义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的名称亮念。
解释:
parameter(one=1.d0) !定义一个常数
DIMENSION COORDS(3),FLUX(2),TIME(2) !定义数组,都是一维数组,元素分别为3,2,2个
CHARACTER 80 SNAME 定义字符型,长度为80
q=633 2.27 0.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=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!注意one是一个变量,在一开头就赋值了.
C FLUX(1)=heat shape-1100000 !C表示注解,这个一般在FORTRAN77中常常用行歼这个符号,现在人多用!来注解.或者说注释行.
FLUX(1)=heat*shape
endif
RETURN
END
(1)高斯面热源
(2)半椭球体热源
程序:program fangbianpao
implicit none
real:: t1=4,t2=5,t3=6,t4=7
real, parameter:: n=10
real:: i,j
real:: counter=0
real:: T_1(n),T_2(n),T_3(n),T_4(n),T(4*n)
do i=1,n
T_1(i)=t1*(i-1)
T_2(i)=t2*(i-1)
T_3(i)=t3*(i-1)
T_4(i)=t4*(i-1)
enddo
T=[T_1,T_2,T_3,T_4]
do i=0,63
do j=1,size(T)
if (i==T(j)) then
counter=counter+1
write(*,*) '掘派第'侍散大,counter,'老竖次响声:',T(j)
exit
endif
enddo
enddo
write(*,*) counter
end program fangbianpao
把你写的function放在另一个.f文件里面,或者放在主程序语句外面(即子困凯程序枣缓形式)再来调用。主程序可调用function 和subroutine,所以,不用把凳尺模子程序function写在主程序里。如此则subroutine和主程序都可以随意调用function,注意调用时的实参(subroutine里面的参数)和虚参(function里面的参数)要变量类型一致,而且实参数目不少于虚参(这个很重要)。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)