24小时热门版块排行榜    

查看: 1646  |  回复: 5

kylafree

至尊木虫 (知名作家)


[交流] 请教指定浓度的法向梯度为0的UDF如何写

一个二维的组分输运问题,想用UDF指定第一种组分浓度在边界处法向梯度为0,请大家帮忙看看下面的写法错在哪里,该如何改正呢,感谢。

#include "udf.h"

DEFINE_PROFILE(c,t,i)
{
   
   real A[2], e_n[2];
   face_t f;
   real At;
   begin_f_loop(f, t)
  {
   F_AREA(A, f, t);     /* 取得面的法向矢量A*/
   At = NV_MAG(A);     /*计算A的模*/
   NV_VS(e_n,=,A,/,At);     /*将A化为单位法向e_n*/
   
   NV_DOT(F_YI_G(f,t,0) , e_n) = 0;     /*令浓度的法向梯度为0*/
   
}
  end_f_loop(f,t)
}

编译后错误代码为 error C2109: subscript requires array or pointer type
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫(金币+0.5):给个红包,谢谢回帖
kylafree(金币+5): 2011-11-21 21:06:33
这种实现方法就不对:
NV_DOT(F_YI_G(f,t,0) , e_n) = 0;
2楼2011-11-21 19:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)


引用回帖:
2楼: Originally posted by tacaro at 2011-11-21 19:57:06:
这种实现方法就不对:
NV_DOT(F_YI_G(f,t,0) , e_n) = 0;

刚发现不久,这个是赋值语句。不能这样写。 也感谢你。
能提供一个正确的思路吗?
3楼2011-11-21 21:05:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
kylafree(金币+5): 2011-11-23 20:48:01
用t的c0或c1做
4楼2011-11-23 13:48:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)


引用回帖:
4楼: Originally posted by tacaro at 2011-11-23 13:48:15:
用t的c0或c1做

你是指一个face的左右两边各有一个cell,一边是c0,另一边是c1吗?
另外在边界处的face好象仅有一个c0噢,这种情况怎么办呢?可以利用现成的宏做么?
5楼2011-11-23 20:51:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dongding

禁虫 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
请问楼主要实现这个功能应该用哪个方法?
6楼2013-10-26 15:31:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kylafree 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见