24小时热门版块排行榜    

查看: 2200  |  回复: 10

phoever

新虫 (初入文坛)

[求助] fluent平移温度场的UDF问题 已有2人参与

非稳态计算,一个100mm*100mm*100mm的铁块,每1mm一个单元,希望UDF能使温度场在X轴负方向上每一个时间步移动一格。算法是先用循环把整个温度场根据坐标存到数组里,再用另一个循环重新给温度场赋值,右边界上不做改变。但是这个UDF运行就会报错。代码如下:
#include "udf.h"
DEFINE_EXECUTE_AT_END(move_temperature)
{
        Domain *d;
        real a[ND_ND];
        int x,y,z;
        real T[100][100][100];
        int i;
        Thread *t;
        cell_t c;
        d = Get_Domain(1);
        thread_loop_c(t,d)
        {
                begin_c_loop(c,t)
                {
                        C_CENTROID(a,c,t);
                        x=a[0]*1000+49.5;
                        y=a[1]*1000+49.5;
                        z=a[2]*1000+49.5;
                        T[x][y][z]=C_T(c,t);
                }
                end_c_loop(c,t)
        }
        thread_loop_c(t,d)
        {
                begin_c_loop(c,t)
                {
                        C_CENTROID(a,c,t);
                        x=a[0]*1000+49.5;
                        y=a[1]*1000+49.5;
                        z=a[2]*1000+49.5;
                        if(x!=49.5) C_T(c,t)=T[x+1][y][z];
                }
                end_c_loop(c,t)
        }
}

这是报错信息,设置的残差为1e-06。
Updating solution at time levels N and N-1.
done.
  iter continuity x-velocity y-velocity z-velocity     energy     time/iter
     1 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 9.3887e-06  0:00:19   19
!    2 solution is converged
     2 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 5.7086e-07  0:00:14   18

Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: ()
请问是哪里出了问题呢?
回复此楼

» 猜你喜欢

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

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

CFD_light

铁虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
想法很新颖,不过显然写错了
模拟的最高境界:同形不同理
2楼2015-07-21 10:03:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxman

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
x=a[0]*1000+49.5;
                        y=a[1]*1000+49.5;
                        z=a[2]*1000+49.5;
                        T[x][y][z]=C_T(c,t);
这里x y z是数组的索引,这样计算   你确保会不出现 非自然数??

可以写源项 温度场为时间的函数 即可
3楼2015-07-21 10:46:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phoever

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by zhouxman at 2015-07-21 10:46:09
x=a*1000+49.5;
                        y=a*1000+49.5;
                        z=a*1000+49.5;
                        T=C_T(c,t);
这里x y z是数组的索引,这样计算   你确保会不出现 非自然数??

可 ...

具体怎么做呢?因为温度场并不均匀,而要做的是平移温度场。如果靠计算差值来达到目的的话仍然要读取各位置的温度场。
4楼2015-07-21 14:00:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phoever

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by CFD_light at 2015-07-21 10:03:02
想法很新颖,不过显然写错了

请问哪里错了?
5楼2015-07-21 14:01:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxman

金虫 (小有名气)

【答案】应助回帖

引用回帖:
4楼: Originally posted by phoever at 2015-07-21 14:00:22
具体怎么做呢?因为温度场并不均匀,而要做的是平移温度场。如果靠计算差值来达到目的的话仍然要读取各位置的温度场。...

你是施加温度场还是热源?  帮助文档里面很多源项的例子  随便找一个 就可以看懂的
6楼2015-07-21 14:33:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phoever

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by zhouxman at 2015-07-21 14:33:02
你是施加温度场还是热源?  帮助文档里面很多源项的例子  随便找一个 就可以看懂的...

我想用这样施加温度场的,因为不清楚问题出在哪所以提出这个问题的。如果需要的话我也可以上传cas文件和c函数。
另外,热源项的话是用温度梯度来做吗?但是我想知道C_T_G提供的温度梯度是前差还是后差抑或是这两者的平均?我的理解是根据温度梯度算出前后两点之前温度的差值,再根据热容和体积算出需要附加的热源项,但是这样做感觉比直接施加温度场要复杂很多。
7楼2015-07-21 17:14:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxman

金虫 (小有名气)

引用回帖:
7楼: Originally posted by phoever at 2015-07-21 17:14:13
我想用这样施加温度场的,因为不清楚问题出在哪所以提出这个问题的。如果需要的话我也可以上传cas文件和c函数。
另外,热源项的话是用温度梯度来做吗?但是我想知道C_T_G提供的温度梯度是前差还是后差抑或是这两者 ...

没有必要上传文件,你描述一下你要做什么。
8楼2015-07-21 19:41:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phoever

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by zhouxman at 2015-07-21 19:41:14
没有必要上传文件,你描述一下你要做什么。...

这两天有事没上网
是这样的,算法的内容我上面已经说过了,想通过一个数组存储温度场,然后再根据这个数组重新给温度场赋值,理论上应该没有问题但程序会报错。我不太清楚为什么会出现这种错误因此想请教一下。
9楼2015-07-24 17:00:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouxman

金虫 (小有名气)

引用回帖:
9楼: Originally posted by phoever at 2015-07-24 17:00:53
这两天有事没上网
是这样的,算法的内容我上面已经说过了,想通过一个数组存储温度场,然后再根据这个数组重新给温度场赋值,理论上应该没有问题但程序会报错。我不太清楚为什么会出现这种错误因此想请教一下。...

我说
                        y=a*1000+49.5;
                        z=a*1000+49.5;
                        T=C_T(c,t);
这里x y z是数组的索引,这样计算   你确保会不出现 非自然数??


这样肯定会出现非自然数的数组索引的。不出错才怪
10楼2015-07-24 21:51:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 phoever 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-30 22:24 by xiangy672
[基金申请] 面上意见出来了 +9 黄鸟于飞Chao 2026-08-29 18/900 2026-08-30 16:47 by 黄鸟于飞Chao
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
信息提示
请填处理意见