找回密码
 注册
查看: 3099|回复: 2

star-cd moving mesh 的实现方法问题!

[复制链接]
发表于 2009-9-23 21:58:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一直对star-cd的动网格实现方法存有疑问。按照帮助文件中提到,对于类似于网格压缩这种运动,比如活塞运动,它采取了cell层的active和de-active办法,到某个时间将指定的某层网格删除或重显,以此来实现空间大小改变,
这种方法容易实现,但当活塞位于上止点时,缸盖与活塞中间的网格数目由于没有变化,而此时我认为是物理量变化较为剧烈的时候,这个网格有必要加密。
另一种办法,那就是整个网格数目不变,活塞向上运动时,将网格向上压缩,那么到上止点时,网格就是最密的时候了,我在实现这个过程中使用了vfill这个命令,用eparm将曲轴连杆运动的时间确定下来,那么在时间点上执行压缩命令,修改点的坐标,实现移动。等活塞向下跑时,依然为执行vfill,只是移动的距离设置为负即可。vfill之前需要对压缩部分网格vrenumber,要不然网格就乱了。
但是,由于star-cd对egrid调用的一些机制,造成vfill不能被控制,egrid会被star-cd在每一个time step中调用,于是vfill会在每个time step中被执行,而我要求为在某些time step中执行,导致网格压缩与预期不一样。
不知道各位在操作中是否遇到过这种问题。。。
发表于 2009-10-2 12:31:53 | 显示全部楼层
不明白你执行vfill之前,为什么还要“对压缩部分网格vrenumber”,如果你先前的v的编号是规则的,vfill不需要改变v的编号。
如果只想在某个时间段执行vfill,好像可以用:
*if time gt xx
...
...
*endif
 楼主| 发表于 2009-10-2 19:56:36 | 显示全部楼层
基本上在需要建立压缩网格时,活塞面上的shell编号就不是规则的,或者说不是连续的,vfill的最后一个还是最后两个变量就是vfill需要重复几次以及增加量。如果shell上的编号不连续,就会乱套了。
cfind抓住活塞面,然后对生成的shell上的点重新编号,拉伸这个shell,于是每层上的点与它的上下层对应的点增减量一样,不用管一层上面点的排列规则,它们在某个范围里连续,vfill肯定会跑遍的。
if 。。。。endif可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表