24小时热门版块排行榜    

查看: 3412  |  回复: 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的回帖
3楼2017-03-09 13:23:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

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的回帖

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 澳大利亚 Murdoch University 全奖博士招生(3个名额)地质化工冶金领域 +61 AI8RaGaPaSCR 2026-08-07 64/3200 2026-08-14 05:45 by yNk0cTSDcreS
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +11 医学老男孩 2026-08-13 29/1450 2026-08-14 00:04 by 大快人心啦
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +4 majunge000 2026-08-11 6/300 2026-08-13 16:50 by 四季常青藤
[基金申请] filecode +14 documentary 2026-08-10 16/800 2026-08-13 16:39 by 润生71
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +22 Lanmanbaby 2026-08-09 36/1800 2026-08-12 22:50 by sdfapple719
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +7 布布和一二 2026-08-10 10/500 2026-08-12 09:12 by 布布和一二
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
信息提示
请填处理意见