找回密码
 注册
Simdroid-非首页
查看: 340|回复: 12

[FLUENT/GAMBIT] udf中的define_source 动量源项求助

[复制链接]
发表于 2011-5-25 21:41:46 | 显示全部楼层 |阅读模式 来自 江苏南京
各位大侠,我用define_source写了一个x方向的动量源项,导入fluent以后,出现了这样的问题Error: Divergence detected in AMG solver: x-momentum。请各位大侠帮我看看这是为什么啊?
udf如下:
#include "udf.h"
#define omg 2.4*3.1415926  //转速(弧度)
#define rotorthick 0.05532 //致动盘厚度
#define rou 1.225  //空气密度
DEFINE_SOURCE(xmom_source,c,t,dS,eqn)
{
  real x[ND_ND];   //cell中心坐标
  real vx,vy,vz;   //cell的x,y,z三个方向的速度
  real beta;       //入流角
  real cita;       //桨距角
  real alfa;       //迎角
  real rad;        //cell距离风轮的距离
  real vreal;       //来流风速加上当地速度
  real cl,cd;      //升力,阻力系数
  real chord;      //弦长
  real con,source;
  real cellsurface;//cell的面积
  C_CENTROID(x,c,t);
  rad=pow(x[1]*x[1]+x[2]*x[2],0.5);
  cellsurface=C_VOLUME(c,t)/rotorthick;
  vx=C_U(c,t);
  vy=C_V(c,t);
  vz=C_W(c,t);
  vreal=omg*rad+pow(vy*vy+vz*vz,0.5);
  
  beta=atan(vx/vreal);
  cita=0.0;
  alfa=beta-cita;
  cl=0.8;
  cd=0.2;
  chord=0.5;
  con=-rou*chord*(cl*cos(beta)+cd*sin(beta))/(2.0*omg*rad)*cellsurface;
  //con=-100;
  source = con*vreal*vreal;
  dS[eqn] = 0;
  return source;
}
发表于 2011-5-25 22:14:38 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
vreal=omg*rad+pow(vy*vy+vz*vz,0.5);
这句话什么意思 注意pow内部的数只能是正数吧?
所以很可能和这个有关系
回复 不支持

使用道具 举报

发表于 2011-5-25 22:35:56 | 显示全部楼层 来自 江苏南京
pow(vy*vy+vz*vz,0.5)得出的是叶素在桨盘平面内的合速度,omg*rad是叶素沿桨盘切向的速度,两个速度方向并不相同,怎么能直接相加呢?
回复 不支持

使用道具 举报

发表于 2011-5-25 22:53:03 | 显示全部楼层 来自 江苏南京
而且con=-rou*chord*(cl*cos(beta)+cd*sin(beta))/(2.0*omg*rad)*cellsurface这个也有问题,这种算法就是认为整个桨盘都是桨叶,相当于桨盘实度为1,没有体现动量源方法平均化的概念。而且source是集中力,应该除以网格单元的体积,才是计算所需的分布力。

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-25 23:26:40 | 显示全部楼层 来自 江苏南京
2# 水若无痕
我把con这个变量输出来了一下,值是3e-5这个左右
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-25 23:27:59 | 显示全部楼层 来自 江苏南京
3# feihu0105
对的,这个是我写错了,应该是矢量相加,谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-25 23:36:03 | 显示全部楼层 来自 江苏南京
4# feihu0105
con=-rou*chord*(cl*cos(beta)+cd*sin(beta))/(2.0*omg*rad)*cellsurface
这个公式我的想法是-rou*chord*(cl*cos(beta)+cd*sin(beta))乘以后面的速度的平方就是所以叶素上的气动力,而2.0*omg*rad就是单个叶片扫过的面积,我把这两个变量相除就得到单位时间上单位面积上的气动力,然后这个单位面积上的气动力乘以每个网格单元的面积就得到了每个网格上的力。。。。我没用体积是为了排除我使用的桨盘的厚度。请您多多指教
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-25 23:37:13 | 显示全部楼层 来自 江苏南京
2# 水若无痕
pow(a,b)为所求的a的b次方,所以只需要b为正数就行吧
回复 不支持

使用道具 举报

发表于 2011-5-26 09:50:13 | 显示全部楼层 来自 江苏南京
本帖最后由 feihu0105 于 2011-5-26 10:08 编辑

7# 果实小鱼
关于平均化的方法,如果你的桨盘网格是四边形结构化网格

那么就可以按角度取平均

其中
Ω*r是桨叶旋转线速度,你的这种平均化方法不知道是否可行。

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2011-5-26 09:54:48 | 显示全部楼层 来自 江苏南京
本帖最后由 feihu0105 于 2011-5-26 10:01 编辑

而且上式算出的F的确是网格单元中心处作用的集中力,而N-S方程中需要的是分布力,我看fluent公司讲动量源方法的官方文献就是除以单元体积的。
其实这种动量源方法早已被集成到fluent软件中了,他们叫VBM(虚拟桨叶模型),如果你是fluent的正版用户的话可以直接向他们申请相关的UDF文件和教程。
可以参考一下我之前发的一篇帖子
http://forum.simwe.com/thread-981177-1-1.html
回复 不支持

使用道具 举报

发表于 2011-5-26 10:09:51 | 显示全部楼层 来自 黑龙江哈尔滨
学习了。。。。。。。。。。
回复 不支持

使用道具 举报

发表于 2011-6-19 08:58:39 | 显示全部楼层 来自 天津
你好,我想问一下是不是对于体积力的加载,使用define-source,然后那个source等于体积力除以单元体积就行了?我想问是除以单个单元的体积,还是总的体积啊,我的QQ529854066,你可不可以加我,我有些问题想请教,嘻嘻,谢谢哈
回复 不支持

使用道具 举报

发表于 2011-6-19 11:24:35 | 显示全部楼层 来自 江苏南京
12# missingsky
肯定是要除以单个单元的体积啊。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-20 17:38 , Processed in 0.051886 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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