找回密码
 注册
查看: 4442|回复: 18

这样的差分格式该如何写?

[复制链接]
发表于 2013-3-7 20:00:33 | 显示全部楼层 |阅读模式

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

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

x
在方程中,有偏h/偏x,偏h/偏y这样的偏导数,模型中都是把它定义在网格中心处,那么如果在中心点处用中心差分格式的话,就要用到其左、右两个网格或上、下两个网格的水深h,但是如果这个网格在边界处,即是边界网格,那么该如何写呢?

比如下面这个网格系统,上面是每个网格的编号,对于5、11这两个网格,在它中心点处写偏h/偏x的差分格式时,该如何写呢
未命名.jpg
发表于 2013-3-7 21:25:33 | 显示全部楼层

回复 1# mastergxm 的帖子

边界用后插或者前插,要不就用多项式
 楼主| 发表于 2013-3-7 21:46:17 | 显示全部楼层

回复 2# xyz33uu 的帖子

谢谢回复。你编过类似的程序吗?我是觉得,如果用前差或后差,那么首先就要判断这个网格是否是边界网格,另外,还要判断是哪种类型的边界网格,这样才能判定是用前差,还是后差,这样一来,程序处理起来似乎有点麻烦呀,你有什么建议吗?

[ 本帖最后由 mastergxm 于 2013-3-7 21:48 编辑 ]
发表于 2013-3-8 06:18:29 | 显示全部楼层
边界点是要特殊处理的

不知道你大概是什么样的问题,有可能用immersed-boundary method可以轻易解决你的问题。
 楼主| 发表于 2013-3-8 08:24:24 | 显示全部楼层

回复 4# onesupeng 的帖子

我是模拟湖泊的,假如上面的网格就是某个湖泊离散后得到的网格,因为水深h定义在网格中心,所以在边界处写偏h/偏x的差分时,就不知道如何处理了。你说的这个还真不了解。
发表于 2013-3-8 10:25:42 | 显示全部楼层

回复 5# mastergxm 的帖子

以前我用的方法是在边界上建立一层虚拟网格,虚拟网格上边压力等数值与跟边界第一层网格数值相同,方向相反,从而保证中心差分的时候边界数值为0。比如在网格5左边加一个网格6'作为虚拟网格,从而来对5作中心差分。

[ 本帖最后由 xyz33uu 于 2013-3-8 11:40 编辑 ]
 楼主| 发表于 2013-3-8 13:41:53 | 显示全部楼层

回复 6# xyz33uu 的帖子

谢谢举了个例子。以水深来讲,就是令6' 网格的水深与5相等,对吧?没有看懂你说的“方向相反”是什么意思,可否解释一下?
发表于 2013-3-8 14:32:06 | 显示全部楼层

回复 7# mastergxm 的帖子

比如速度,在6点的方向和6'方向应该是相反的,从而保证5的界面无穿透
 楼主| 发表于 2013-3-11 08:29:08 | 显示全部楼层

回复 8# xyz33uu 的帖子

C网格里,5网格的速度U不是在5网格的左边界中心点上,令它等于0,不就是无穿透的意思吗?
发表于 2013-3-11 09:32:20 | 显示全部楼层

回复 9# mastergxm 的帖子

能解决问题,满足边界条件就可以
 楼主| 发表于 2013-3-11 09:51:48 | 显示全部楼层

回复 10# xyz33uu 的帖子

你做过三维的吗?
 楼主| 发表于 2013-3-11 09:55:42 | 显示全部楼层


在三维模型的对流项里,偏u/偏z,就是下图中的第三项,在底层网格差分时也会遇到上面的问题,你遇到过吗,是如何解决的呢?
未命名.jpg
 楼主| 发表于 2013-3-11 16:23:39 | 显示全部楼层

回复 10# xyz33uu 的帖子

现在遇到的问题就是,我按照自己的处理方法写了代码,但是计算一会儿就发散了,所以就是也不知道是代码写错了,还是这些处理方法有问题。最后认真查了代码,觉得还是处理方法不对,真是麻烦呀。
你编的程序是模拟什么的?
发表于 2013-3-11 18:36:59 | 显示全部楼层

回复 13# mastergxm 的帖子

发散的原因是什么,有仔细检查过没有。如果代码量不大,最好的办法是叫别人帮你检查。我编的程序是超声速扰流问题。
 楼主| 发表于 2013-3-12 13:27:08 | 显示全部楼层

回复 14# xyz33uu 的帖子

我模拟是湖泊,就是模拟湖泊在风场作用下的流动。
还没有找到原因,在仔细检察
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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