24小时热门版块排行榜    

查看: 3487  |  回复: 15

13386846246

铜虫 (小有名气)

[求助] udf不能正确调用颗粒的宏的值进行计算

采用多表面燃烧模型模拟煤颗粒燃烧,使用DEFINE_PR_RATE计算颗粒反应,并读取颗粒质量P_INIT_MASS(p),和颗粒温度P_T(p),以监测计算过程。
用fprintf(fpOut2,"%f\n",P_T(p));和fprintf(fpOut1,"%f\n",P_INIT_MASS(p));输出,
可是导出的P_T(p)数据与在material面板中设置的颗粒密度值相等,P_INIT_MASS数据与在离散相中设置的颗粒直径数值相等,其他颗粒的宏输出也不正确。
udf不能正确地调用P_INIT_MASS(p)与P_T(p)的值。请教下各位,这是为什么?
#include "udf.h"
#define A1 10.6313
#define E1 5.1811e+07
DEFINE_PR_RATE(user_pr_rate,c,t,r,mw,pp,p,sf,dif_i,cat_i,rr)
{
        real ash_mass = P_INIT_MASS(p)*(1.-1./3.);
    real one_minus_conv1 = MAX(0.,3*(P_MASS(p)-ash_mass)/P_INIT_MASS(p));
    real one_minus_conv = 3.*exp(2.*log(one_minus_conv1)/3.);
    real rate = A1*exp(-E1/UNIVERSAL_GAS_CONSTANT/P_T(p));
    *rr = -rate*P_INIT_MASS(p)*one_minus_conv;

        FILE *fpOut1 = fopen("P_INIT_MASS(p).txt","a";
        fprintf(fpOut1,"%f\n",P_INIT_MASS(p));
    fclose(fpOut1);

        FILE *fpOut2 = fopen("P_T(p).txt","a";
        fprintf(fpOut2,"%f\n",P_T(p));
    fclose(fpOut2);
       
        FILE *fpOut3 = fopen("P_MASS(p).txt","a";
        fprintf(fpOut3,"%f\n",P_MASS(p));
    fclose(fpOut3);
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

13386846246

铜虫 (小有名气)

13386846246: 回帖置顶 2017-03-09 18:58:26
离散相设置:
udf不能正确调用颗粒的宏的值进行计算
导出数据如下:
udf不能正确调用颗粒的宏的值进行计算-1
编译并挂载过程:
udf不能正确调用颗粒的宏的值进行计算-2

问题:
(1)读取颗粒质量P_INIT_MASS(p),和颗粒温度P_T(p),以监测计算过程。可是导出的P_T(p)数据与在material面板中设置的颗粒密度值相等,P_INIT_MASS数据与在离散相中设置的颗粒直径数值相等,这是什么原因?
(2)P_INIT_MASS(p) 在面板中并没设置参数,那P_INIT_MASS(p)的数值是怎么得到的,是根据P_INIT_DIAM(p)与P_INIT_RHO(p)计算的么?
(3)P_INIT_DIAM(p)与P_INIT_RHO(p)对应的是否是离散相设置中标红的数据?
(4)P_INIT_MASS(p)与P_T(p)导出的数据不对,可能是离散相设置的问题,还是udf的问题,或者是编译过程的问题,但编译通过,并且挂载了呀?
6楼2017-03-09 18:58:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

db0320

铁虫 (初入文坛)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
13386846246: 金币+3, 有帮助 2017-03-09 15:54:38
首先P_INIT_MASS(p),是初始质量,如果你想调用的质量是当前质量应该用P_MASS(p),另进入当前cell时的质量是P_MASS0(p)

对于你的问题,可能是由于没有告诉程序正在追踪的颗粒,在最开始加入 Tracked_Particle *p试一试。
好久没写UDF了,可能说的不对。具体你还是看一下UDF手册。

以下内容百度来的,供参考:
DEFINE_PR_RATE(name,c,t,r,mw,ci,p,sf,dif index,cat index,rr)
symbol name---- UDF name.
cell t c---- Cell index of current particle.
Thread *t---- Pointer to cell thread for particle.
Reaction *r---- Pointer to data structure that represents the current reaction.
real *mw---- Pointer to array containing gaseous and surface species molecular weights
real *ci---- Pointer to array containing gas partial pressures.
Tracked Particle *p---- Pointer to Tracked Particle data structure that contains data related to the particle being tracked.
real *sf---- Pointer to array containing mass fractions of the solid species in the particle char mass at the current time step.
int dif_index---- Diffusion controlled species as defined in the Reactions panel for the current reaction.
int cat_index---- Catalyst species as defined in the Reactions panel for the current reaction.
2楼2017-03-09 13:01:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
3楼2017-03-09 13:23:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

13386846246

铜虫 (小有名气)

13386846246: 回帖置顶 2017-03-09 16:10:48
13386846246: 取消置顶 2017-03-09 16:11:18
引用回帖:
2楼: Originally posted by db0320 at 2017-03-09 13:01:48
首先P_INIT_MASS(p),是初始质量,如果你想调用的质量是当前质量应该用P_MASS(p),另进入当前cell时的质量是P_MASS0(p)

对于你的问题,可能是由于没有告诉程序正在追踪的颗粒,在最开始加入 Tracked_Particle *p ...

谢谢您的回复,加入Tracked_Particle *p 后进行编译,出现redefinition of formal parameter 'p'问题,应该是DEFINE_PR_RATE(name,c,t,r,mw,ci,p,sf,dif index,cat index,rr)中已经声明了*p。
有些地方不明白,想问下:
(1)P_INIT_MASS(p) 在面板中并没设置参数,那P_INIT_MASS(p)的数值是怎么得到的,是根据P_INIT_DIAM(p)与P_INIT_RHO(p)计算的么?
(2)P_MASS0(p)与P_INIT_MASS(p)是什么关系?
4楼2017-03-09 15:58:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

时完君

新虫 (初入文坛)

我目前研究的是pvt空冷系统,下表面冷却,亦即一个长方体空气通道,上表面是pv板,由于要考虑pv板对外界环境的散热和产生的电能两部分热量,所以打算用吸收的太阳辐射热量减去这两部分值得到我要的热流值,所以编程,现改编程如下,大神们有什么问题吗

#include"udf.h"
#define I 677
#define Ta 20
#define η 0.15
real ave_temp=300.0;
DEFINE_PROFILE(heat_flux,t,i)
{
   real NV_VEC(A);
   real sum_T_A=0.0;
   real sum_A=0.0;
   Thread *thread_top;
   face_t f;
   begin_f_loop(f,thread_top)
{
  F_AREA(A,f,thread_top);
  sum_A+=NV_MAG(A);
  sum_T_A+=NV_MAG(A)*F_T(f,thread_top);
}
  end_f_loop(f,thread_top)
  ave_temp=sum_T_A/sum_A;
  F_PROFILE(f,t,i)=0.855*I*sum_A-2.8*(ave_temp-Ta)*sum_A-η*(1-0.0045*(temp-298.15))*I*sum_A;
}
5楼2017-03-09 17:11:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

db0320

铁虫 (初入文坛)

问一下,你在程序里写的时候是分成三个文件写入的,但是上图只有一个文件,是你自己整合的吗?
7楼2017-03-10 09:40:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

13386846246

铜虫 (小有名气)

引用回帖:
7楼: Originally posted by db0320 at 2017-03-10 09:40:01
问一下,你在程序里写的时候是分成三个文件写入的,但是上图只有一个文件,是你自己整合的吗?

后来觉得分成三个文件写入数据,不方便数据的展示,就换成一个文件输出了。
FILE *fpOut1 = fopen("date.txt","a";
fprintf(fpOut1,"%.9f, %.9f, %.9f\n",P_INIT_MASS(p),P_MASS(p),P_T(p));
fclose(fpOut1);
8楼2017-03-10 14:19:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

db0320

铁虫 (初入文坛)

P_MASS0(p)是进入当前CELL时的质量,P_MASS(p)是当前的质量
比如说一个颗粒流入一个正方体,它进入壁面入口时的质量为P_MASS0(p),
从进入正方体到离开正方体的需要一定时间,在这段时间里某一时刻的质量即为P_MASS0(p)。
9楼2017-03-13 16:57:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

db0320

铁虫 (初入文坛)

另外,楼主可以试着把所有DPM数据项全都导出看看。对比设定的参数看看
10楼2017-03-13 16:58:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 13386846246 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 为什么国自然不能直接公布 +5 bjdxyxy 2026-08-26 5/250 2026-09-01 17:54 by 小伟大博士
[基金申请] 学科评审组评审是指会评吗? +4 瞬息宇宙 2026-08-31 4/200 2026-09-01 14:58 by jiaoxg
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 15/750 2026-09-01 12:23 by icm639
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 怎么看青基中了没有啊 +6 叶九微 2026-08-26 6/300 2026-08-31 23:54 by yudaoqian88
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 项目信息和经费信息在系统里都可以看到了 +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
信息提示
请填处理意见