24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2966  |  回复: 10

larklove

铁虫 (初入文坛)

[交流] 出口压力的UDF编写问题已有4人参与

小弟刚接触CFD不久,在fluent计算二相流中想设置outlet为压力出口。模型二维矩形网格,出口处y轴0.5m以上为空气,压力为零,y轴0.5以下为水,压力随水深变化。这个UDF是参照一个三维类似模型压力出口改的,可是怎么都没法compile成功,求大神帮忙看看有没有什么新人小白的错误什么的……
#include "udf.h"
#define p 998.2
#define g 9.81
DEFINE_PROFILE(pressure_profile,thread,postion)
{
        real x[ND_ND];
        face_t f;
        real y;
        begin_f_loop(f,thread)/*loops over all face in the thread passed in the defing macro argument */
        {
                F_CENTROID(x,f,thread);
                y=x[1]
                if (y>=0.5)
                {F-PROFILE(f,thread,position)=0;}
                else
                {F_PROFILE(f,thread,psotion)= p*g*(0.5-y);}
        end_f_loop(f,thread)
        }
}
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

奔跑鱼

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by larklove at 2014-03-11 09:18:07
感谢~不过这个改了还是不行,报错The UDF library you are trying to load (libudf) is not compiled for 2ddp on the current platform  应该是三维模型转二维的编写错误

我还是第一次见到 写的这么粗心的UDF,变量名就重复了几次,错误都不一样,LZ可真得认真点才行,还好这个程序简单。
我修改了一下,这个应该是能运行的
#include "udf.h"
#define p 998.2
#define g 9.81
int position;
DEFINE_PROFILE(pressure_profile,thread,position)
{
        real x[ND_ND];
        face_t f;
        real y;
        begin_f_loop(f,thread)/*loops over all face in the thread passed in the defing macro argument */
        {
                F_CENTROID(x,f,thread);
                y=x[1];
                if (y>=0.5)
                {F_PROFILE(f,thread,position)=0.0;}
                else
                {F_PROFILE(f,thread,position)= p*g*(0.5-y);}
        
        }
                end_f_loop(f,thread)
}

[ Last edited by 奔跑鱼 on 2014-3-11 at 23:21 ]
8楼2014-03-11 23:01:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

yegavin

至尊木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
end_f_loop(f,thread)这一行应该写在下面一行大括弧的后面
有你真好~
2楼2014-03-10 20:49:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

larklove

铁虫 (初入文坛)

感谢~不过这个改了还是不行,报错The UDF library you are trying to load (libudf) is not compiled for 2ddp on the current platform  应该是三维模型转二维的编写错误
3楼2014-03-11 09:18:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aling0101

新虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
楼主编译成功了么

[ 发自手机版 http://muchong.com/3g ]
贵在坚持
4楼2014-03-11 12:20:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

larklove

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by aling0101 at 2014-03-11 12:20:27
楼主编译成功了么

没,我在想二维网格的边界条件是一维的,是不是上面的程序本质上是错误的。x[ND_ND]和y=x[1]在二维边界处不知道对不对
5楼2014-03-11 18:46:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

achilFes1990

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
y=x[1]后面少个;

if后面的语句F-PROFILE(f,thread,position)=0,错了

你这个是要模拟船舶的VOF吧,考虑自由面的阻力计算
扫一扫关注我的微信公众号,共同学习船舶CFD
6楼2014-03-11 21:00:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

奔跑鱼

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by larklove at 2014-03-11 18:46:18
没,我在想二维网格的边界条件是一维的,是不是上面的程序本质上是错误的。x和y=x在二维边界处不知道对不对...

给你一张UDF help手册中的图,关于fluent二维和三维网格拓扑的,你看看就知道,不管是二维还是三维,边界的单元都是face。
出口压力的UDF编写问题
7楼2014-03-11 22:58:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

larklove

铁虫 (初入文坛)

恩恩编译成功了,换了台电脑就成了
9楼2014-03-21 10:45:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

larklove

铁虫 (初入文坛)

引用回帖:
8楼: Originally posted by 奔跑鱼 at 2014-03-11 23:01:40
我还是第一次见到 写的这么粗心的UDF,变量名就重复了几次,错误都不一样,LZ可真得认真点才行,还好这个程序简单。
我修改了一下,这个应该是能运行的
#include "udf.h"
#define p 998.2
#def ...

谢谢哈~小弟从没接触过C,之前也就拿matlab写写,完全小白啊
10楼2014-03-21 10:49:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 larklove 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见