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

关于UDF中散度的求法

[复制链接]
发表于 2012-12-17 17:18:21 | 显示全部楼层 |阅读模式

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

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

x
在学UDF,但是遇到求某一矢量的一阶导数也就是散度的问题,不知道怎么编写,望各位大神指点
发表于 2012-12-29 21:39:06 | 显示全部楼层
两个办法
一个是利用UDS提供的UDSI_G这个宏,也就是参量的梯度。你可以把数据用DEFINE_ADJUST存储到一个UDS里面,用到梯度的时候直接调用就可以了。至于你说矢量的话,你就用3个UDS好了。用哪个梯度就调用哪个UDS。

另外一个是自己写。采用一阶差分的话梯度大小可表示为 dC/dx=(ci-c0)/dx,方向比较麻烦,如果是结构化网格的话,就是垂直于接触面。给你一个思路,对于要求梯度的cell_0,总的梯度等于各个分方向梯度矢量和。我们可以找到c0的所有的面,以此计算各个面上的梯度,大小按照上面说的计算,方向你可以选cell中心点连线方向,也可以取垂直于界面,具体你再思考吧。然后把这个矢量求和,你就得到了一个标量C的梯度了。而对于一个矢量的梯度,相当于它三个分量分别作梯度。用到那个就算那个。

第二种方法如果做好了的话,其实比第一种好,因为在计算的时候第二种的梯度可以随时调用出来,而第一种你都是调用上一个迭代结果的梯度。计算性能上,应该是第二种好一点。
 楼主| 发表于 2012-12-30 08:56:06 | 显示全部楼层

回复 2# fty0083 的帖子

好的,谢谢指点~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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