24小时热门版块排行榜    

查看: 2320  |  回复: 7

brant1987799

新虫 (初入文坛)

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

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

» 猜你喜欢

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

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

微流咨询

新虫 (正式写手)


【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +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的回帖

微流咨询

新虫 (正式写手)


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


fluent培训
4楼2015-01-16 08:57:37
已阅   回复此楼   关注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的回帖

微流咨询

新虫 (正式写手)


由于动网格会造成cell的位置会变化,如果按照你的思路,那就必须每一次迭代都需要输出point的位置信息了,另外,计算机存在存储误差,所以在udf中尽量不要采用等于的判断

» 本帖已获得的红花(最新10朵)

6楼2015-01-16 17:49:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brant1987799

新虫 (初入文坛)

送红花一朵
引用回帖:
6楼: Originally posted by 微流咨询 at 2015-01-16 17:49:14
由于动网格会造成cell的位置会变化,如果按照你的思路,那就必须每一次迭代都需要输出point的位置信息了,另外,计算机存在存储误差,所以在udf中尽量不要采用等于的判断

好的,谢谢你!
7楼2015-01-17 14:08:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一树一树花开

新虫 (初入文坛)

您好,请问你这个问题解决了吗?能教我一下吗?
8楼2017-10-17 22:05:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 brant1987799 的主题更新
信息提示
请填处理意见