本帖最后由 xyyell 于 2013-6-9 22:46 编辑
我的博客:http://blog.sina.com.cn/s/blog_9d4516590101d1e0.html
关于生死单元的移动问题,在Matlab中的Script上折腾了两天,最后却发现还是有简便方法的,当然是在已经熟悉界面控制的前提下。
这里画一个棒状矩形为计算域。
L:长度,H:高度,v:从左端到右端的移动速度
分段函数:
初始关闭所有单元,并预留激活跳板。
0~1e-12为一段足够小的长度,取值为1,激活单元。
1e-12~L为剩余长度,取值1e-12为接近于0,关闭单元。
注意:这个函数不能放在全局域中,只能放在相应的计算分域中。
kbd = pw1( x - v*t ) *mat1.def.k( T )
kbd:生死单元移动方程; mat1.def.k( T):取自材料库中的热导率 pw1( x - v*t): pw1为上述分段函数;
x - v*t:分段界面移动,激活单元
因为pw1中激活分段中取值为1,因此乘以mat1.def.k( T )后即为激活单元赋值。
而关闭单元的分段中取值接近于0,乘以任何数后值依然为0,单元还是关闭的。
在物理模块中,只要把函数 kbd赋予热导率 k,即可实现从左到右随时间依次激活各单元。
当然,这里用的是Study:Time Dependent进行处理。
生死单元热导率kbd的值,看右边图例的上下极值就知道,实验成功!!!
|