- 积分
- 10
- 注册时间
- 2007-1-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
前两天发了个帖子,介绍了一下生死单元子程序uactive,今天继续介绍一下热流子程序flux。
subroutine flux(f,temflu,mibody,time)
include 'c:\MSC.Software\MSC.Marc\2005\marc2005\common\implicit'
dimension f(2), mibody(*),temflu(*)
REAL pi,v,y0,x0,r,con
pi=3.14
v=3
x0=0
y0=v*time
r=3
con=3000
f(1)=con*exp(-3*((temflu(4)-x0)**2+(temflu(5)-y0)**2)/r**2)
return
end
这是最简单的一个高斯热源模型,其中模型中的con本应该用公式表示,但我直接给了个常数。虽然例子很简单,但其实所有复杂的模型都是从它演变来的,看懂这个例子的话,复杂的热源也不是问题。下面对这个模型进行说明。
很多人搞不懂热源模型是怎么移动的,移动路径在什么位置,移动方向如何。其实只要看一下x0和y0就可以了。当time=0的时候,(x0,y0)就是热源的起点,而当time为最大值时,(x0,y0)就是热源的终点。你或许说,你的热源不在xy平面内移动,而是在xz平面移动。那你就把x0,y0换成x0,z0,然后temflu(5)换成temflu(6)就可以了。
有一点需要说明,如果你仔细看一下f(1)这个公式,就会发现该公式中并不涉及z,也就是temflu(6),说明f(1)的大小是与z轴无关的,即f(1)的形式并非一个高斯面,而是一个无限长的高斯圆柱。在这个圆柱的每一个截面上,都是高斯分布。因此只用将这个子程序与boundary condition里面的face flux中所选择的face配合,才正好是一个高斯面热源。如果你用volume flux中的element,结果就是高斯柱状热源了。
有什么问题的话,欢迎讨论。 |
评分
-
1
查看全部评分
-
|