24小时热门版块排行榜    

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

llongtan

木虫 (小有名气)

老木虫

[求助] UDF的编译通不过

我从UDF的英文帮助中复制粘贴下面的内容成c程序,通过fluent的udf导入编译,(Define->user-defined->functions->interpreted)弹出下面的错误

cpp -I"C:\Fluent.Inc\fluent6.3.26/src" -I"C:\Fluent.Inc\fluent6.3.26/cortex/src" -I"C:\Fluent.Inc\fluent6.3.26/client/src" -I"C:\Fluent.Inc\fluent6.3.26/multiport/src" -I. -DUDFCONFIG_H="" "E:\计算\冷凝-重试\condensation-2.c"
Error: E:\\274\306\313\343\\300\344\304\375-\326\330\312\324\condensation-2.c: line 9: structure reference not implemented

我看了fluent的“dpm.h”的头文件,在其中存在这个结构,请问大侠,这个是什么原因造成的,怎样才能解决这个问题。

c程序在附件中也有一份。

/***********************************************************************
UDF for defining the heat and mass transport for
multicomponent particle vaporization
***********************************************************************/
#include "udf.h"

DEFINE_DPM_HEAT_MASS(multivap,p,Cp,hgas,hvap,cvap_surf,dydt,dzdt){
        int ns;
        int nc=TP_N_COMPONENTS(p); /* number of particle components */
       
        //以离散相P确定P所在的单元及线,以及单元,从而找到该单元连续相的信息。
        cell_t c0=RP_CELL(&(p->cCell)); /* cell and thread */
        Thread *t0=RP_THREAD(&(p->cCell)); /* where the particle is in */
       
        //离散相和连续相的材料
        Material *gas_mix=THREAD_MATERIAL(t0); /* gas mixture material */
        Material *cond_mix=p->injection->material;/* particle mixture material */

        cphase_state_t *c=&(p->cphase); /* cell info of particle location */

        //连续相的分子量及平均分子量
        real molwt[MAX_SPE_EQNS]; /* molecular weight of gas species */
        real molwt_bulk=0.0; /* average molecular weight in bulk gas */

        //离散相的信息:温度、质量、粒径,表面积,普朗特数Pr,努赛尔德数Nu,表面对流系数,;
        real Tp=P_T(p); /* particle temperature */
        real mp=P_MASS(p); /* particle mass */
        real Dp=DPM_DIAM_FROM_VOL(mp/P_RHO(p)); /* particle diameter */
        real Ap=DPM_AREA(Dp); /* particle surface */
        real Pr=c->sHeat*c->mu/c->tCond; /* Prandtl number */
        real Nu=2.0+0.6*sqrt(p->Re)*pow(Pr,1.0/3.0); /* Nusselt number 可以从《传热传质基本原理》的P270的公式(7.56)*/
        real h=Nu*c->tCond/Dp; /* Heat transfer coefficient */
        real dh_dt=h*(c->temp-Tp)*Ap; /* heat source term */
        dydt[0]+=dh_dt/(mp*Cp);
        dzdt->energy-=dh_dt;
       
        //求1/平均分子量的值,在解释中为平均分子量,实际计算为其倒数,因此在引用时要注意
        {
                Material *sp;
                mixture_species_loop(gas_mix,sp,ns){
                        molwt[ns]=MATERIAL_PROP(sp,PROP_mwi); /* molecular weight of gas species */
                        molwt_bulk+=C_YI(c0,t0,ns)/molwt[ns]; /* average molecular weight */
                }
        }
        /* prevent division by zero */
        molwt_bulk=MAX(molwt_bulk,DPM_SMALL);

        for(ns=0;ns                 /* gas species index of vaporization */
                int gas_index=TP_COMPONENT_INDEX_I(p,ns);
                if(gas_index>=0){
                        /* condensed material */
                        Material *cond_c=MIXTURE_COMPONENT(cond_mix,ns);
                        /* vaporization temperature */
                        real vap_temp=MATERIAL_PROP(cond_c,PROP_vap_temp);
                        /* diffusion coefficient */
                        real D=MATERIAL_PROP_POLYNOMIAL(cond_c,PROP_binary_diffusivity,c->temp);
                        /* Schmidt number */
                        real Sc=c->mu/(c->rho*D);
                        /* mass transfer coefficient */
                        real k=(2.0+0.6*sqrt(p->Re)*pow(Sc,1.0/3.0))*D/Dp;
                        /* bulk gas concentration */
                        real cvap_bulk=c->pressure/UNIVERSAL_GAS_CONSTANT/c->temp*c->yi[gas_index]/molwt_bulk/solver_par.molWeight[gas_index];
                        /* vaporization rate */
                        real vap_rate=k*molwt[gas_index]*Ap*(cvap_surf[ns]-cvap_bulk);
                        /* only condensation below vaporization temperature */
                        if(0.0                                 vap_rate=0.0;
                        dydt[1+ns]-=vap_rate;
                        dzdt->species[gas_index]+=vap_rate;
                        /* dT/dt = dh/dt / (m Cp)*/
                        dydt[0]-=hvap[gas_index]*vap_rate/(mp*Cp);
                        /* gas enthalpy source term */
                        dzdt->energy+=hgas[gas_index]*vap_rate;
                }
        }
}
1.jpg[ Last edited by llongtan on 2012-11-19 at 15:13 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : condensation-2.c
  • 2012-11-19 15:09:25, 3.11 K
  • 附件 2 : 1.cas
  • 2012-11-19 15:13:59, 892.03 K
  • 附件 3 : 1.dat
  • 2012-11-19 15:14:03, 2.54 M

» 收录本帖的淘帖专辑推荐

fluent模拟及问题

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

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

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

ajene

银虫 (小有名气)

★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-05-26 13:58:38
# Generating udf_names.c because of makefile udf.obj
udf_names.c
udf_names.c(7) : error C2059: syntax error : '}'
udf_names.c(8) : warning C4034: sizeof returns 0
我在c里调试已经通过了,但是在fluent编译时出现问题,我该怎么调试呀?
Done.


是源代码中的编写出问题了,得将最开始的define 靠在最前!
7楼2013-05-25 14:52:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

zjspring

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
llongtan: 金币+2 2012-11-19 20:22:43
xiegangmai: 金币+2, 谢谢参与 2012-11-20 21:49:40
cell_t c=RP_CELL(&(p->cCell));
   Thread *t=RP_THREAD(&(p->cCell));
改为
cell_t c=RP_CELL(&p->cCell);
   Thread *t=RP_THREAD(&p->cCell);
p里本身就是存储一个指针,再将这个指针付给cCell
2楼2012-11-19 19:13:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

llongtan

木虫 (小有名气)

老木虫

引用回帖:
2楼: Originally posted by zjspring at 2012-11-19 19:13:37
cell_t c=RP_CELL(&(p->cCell));
   Thread *t=RP_THREAD(&(p->cCell));
改为
cell_t c=RP_CELL(&p->cCell);
   Thread *t=RP_THREAD(&p->cCell);
p里本身就是存储一个指针,

可能上面的也是一个错误。

但是我从fluent中找的是对这一句错误?
int nc=TP_N_COMPONENTS(p); /* number of particle components */
3楼2012-11-19 20:16:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

llongtan

木虫 (小有名气)

老木虫

引用回帖:
2楼: Originally posted by zjspring at 2012-11-19 19:13:37
cell_t c=RP_CELL(&(p->cCell));
   Thread *t=RP_THREAD(&(p->cCell));
改为
cell_t c=RP_CELL(&p->cCell);
   Thread *t=RP_THREAD(&p->cCell);
p里本身就是存储一个指针,

我将红字删除后,你写的这两句也说是:
structure reference not implemented

按照你的方法修改后错误没有消失。

我觉得应该是没有引入DEFINE_DPM_HEAT_MASS中“P”的结构进入UDF中,才导致的编译不通过。
4楼2012-11-19 20:22:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上意见出来了 +6 黄鸟于飞Chao 2026-08-29 10/500 2026-08-29 15:50 by 微不足道士
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +5 gdd2018 2026-08-28 10/500 2026-08-29 14:10 by Jacob678
[论文投稿] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ASdOkHsho7FD 2026-08-28 4/200 2026-08-29 13:51 by jCd0dEvKHShX
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +14 晴天加油 2026-08-26 15/750 2026-08-29 11:06 by biily
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 9/450 2026-08-29 09:59 by jklily
[基金申请] 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
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +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
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
信息提示
请填处理意见