24小时热门版块排行榜    

查看: 2325  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

brant1987799

新虫 (初入文坛)

[求助] 怎么用udf读取在fluent中设置的surface-point? 已有1人参与

在fluent中使用了滑移网格的设置,而设置的surface-point不能够随着网格一起运动,因而无法扑捉到监测点的某些时段的压力。想求助大家帮帮忙,能否在用udf定位设置的point,进而采集其旁边的node或者cell的压力,或者针对此问题有别的好方法将动态点的压力扑捉到。由于是新人,金币数还不是很多,请大家见谅,谢谢大家!
回复此楼

» 猜你喜欢

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

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

微流咨询

新虫 (正式写手)


1.你在excute中没有对cell进行循环
2.即使上面这个错误改正了,程序在逻辑上也是有问题的,不可能正好找到一个cell的中心位置等于你给的坐标值,这样你永远都不会输出结果


fluent培训
4楼2015-01-16 08:57:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

微流咨询

新虫 (正式写手)


【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
brant1987799: 金币+5, ★★★很有帮助 2015-01-15 12:42:26
udf中有个宏,可以给定点的坐标,然后确定距离该点最近的cell。

所以可以按照如下思路去解决:
1.计算监测点的坐标
2.利用该查找宏,得到距离该点最近的cell,读取该cell的压力值。

fluent培训
2楼2015-01-15 10:04:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brant1987799

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 微流咨询 at 2015-01-15 10:04:19
udf中有个宏,可以给定点的坐标,然后确定距离该点最近的cell。

所以可以按照如下思路去解决:
1.计算监测点的坐标
2.利用该查找宏,得到距离该点最近的cell,读取该cell的压力值。

fluent培训...

微流咨询,您好
我用fluent中的export功能,导出了这点的压力信息,格式为ascii,从俩面获得了我需要点的坐标,同时编制了一个udf,加载都没有问题,用的是interpret,用的函数为excute_at_end,但是算完第一时间步后,fluent就闪退了,我想是不是我的udf有问题呢?能不能帮助我看一下,谢谢!

#include"udf.h"
#include"mem.h"

DEFINE_EXECUTE_AT_END(PrintPre)

{
        Domain *d;
        double x[2];
        cell_t c;
        double p13_x;
        double p13_y;
        double pressure;
        Thread *t;
        FILE *result;
        d=Get_Domain(1);
        thread_loop_c(t,d)
        {
                C_CENTROID(x,c,t);
                p13_x=x[0];           //定义两个点,用于接收查询的点的坐标
                p13_y=x[1];
               
                if(p13_x==-0.339990499&&p13_y==0.06599982828)    //在循环中查找是否有该坐标,若有,获取其压力值
                {
                        pressure=C_P(c,t);       
                }
                result=fopen("E:\Gambit Work\Tank of Ma\2D-CUT-noBL\A1-NoBL_files\dp0\FFF\Fluent\pressure.txt","x";   //将获取的值写入至该txt文本中
                fprintf(result,"%d\n",pressure);     //在控制台上输出获取到的压力值
                        fclose(result);
        }

}

DEFINE_ZONE_MOTION(Sloshing, omega, axis, origin, velocity, time, dtime)   //这个是滑移网格的运动程序
{

    velocity[0]=0.244038*cos(2.440378*time+1.570796);
       
}
3楼2015-01-15 12:46:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brant1987799

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 微流咨询 at 2015-01-16 08:57:37
1.你在excute中没有对cell进行循环
2.即使上面这个错误改正了,程序在逻辑上也是有问题的,不可能正好找到一个cell的中心位置等于你给的坐标值,这样你永远都不会输出结果


fluent培训...

非常感谢您的帮助!
是这样的,这个点坐标是我用export功能输出的point的压力值中的座标值,这个功能可以选择输出node或者cell,我选的cell,然后将输出的值放在udf中,是否我这种做法不对呢?
5楼2015-01-16 16:23:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见