| 查看: 3289 | 回复: 5 | |||
[求助]
FLUENT UDF求助已有1人参与
|
|
模拟的目标:使用了fluent14.5的dpm模型中的multicomponent颗粒,模拟尿素水溶液的喷雾干燥过程,想自定义颗粒表面的传质面积 使用的方法:使用宏DEFINE_DPM_HEAT_MASS,将fluent udf manual中DEFINE_DPM_HEAT_MASS的example复制过来修改 出现的问题:直接复制DEFINE_DPM_HEAT_MASS的example导入fluent编译,提示出现语法错误,于是我把75行的 if (P_total c->pressure && dydt[0] > 0.) 改为if (P_total > c->pressure && dydt[0] > 0.) ,根据物理意义当气体的饱和蒸汽压大于外界压力时液体沸腾,所以加了一个大于号。编译挂载没问题了,计算的时候就出错,显示如下 DPM Iteration .... MPI Application rank 1 exited before MPI_Finalize() with status -1073741819 999999 (..\src\mpsystem.c@1172): mpt_read: failed: errno = 10054 999999: mpt_read: error: read failed trying to read 4 bytes: No such file or directory The fl process could not be started. PS:编译环境应该没问题,因为编译挂载过另一个udf是没问题的。udf如下,也可以参见fluent14.5 udf manual 2.5.4 177页或者附件的pdf。 /*********************************************************************** 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,Z,dydt,dzdt) { int ns; Material *sp; real dens_total = 0.0; /* total vapor density*/ real P_total = 0.0; /* vapor pressure */ int nc = TP_N_COMPONENTS(p); /* number of particle components */ Thread *t0 = P_CELL_THREAD(p); /* thread where the particle is in*/ Material *gas_mix = THREAD_MATERIAL(DPM_THREAD(t0, p)); /* gas mixture material */ Material *cond_mix = P_MATERIAL(p); /* particle mixture material*/ cphase_state_t *c = &(p->cphase); /* cell information of particle location*/ real molwt[MAX_SPE_EQNS]; /* molecular weight of gas species */ real Tp = P_T(p); /* particle temperature */ real mp = P_MASS(p); /* particle mass */ real molwt_bulk = 0.; /* average molecular weight in bulk gas */ 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./3.); /* Nusselt number */ 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; mixture_species_loop(gas_mix,sp,ns) { molwt[ns] = MATERIAL_PROP(sp,PROP_mwi); /* molecular weight of gas species */ molwt_bulk += c->yi[ns] / molwt[ns]; /* average molecular weight */ } /* prevent division by zero */ molwt_bulk = MAX(molwt_bulk,DPM_SMALL); for (ns = 0; ns < nc; ns++) { int gas_index = TP_COMPONENT_INDEX_I(p,ns); /* gas species index of vaporization */ 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.6 * sqrt(p->Re) * pow(Sc, 1./3.)) * D / Dp; /* bulk gas concentration (ideal gas) */ 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); /* no vaporization below vaporization temperature, no condensation */ if (Tp < vap_temp || vap_rate < 0.0) vap_rate = 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; P_total += cvap_surf[ns]; dens_total += cvap_surf[ns] * molwt[gas_index]; } } /* multicomponent boiling */ P_total *= Z * UNIVERSAL_GAS_CONSTANT * Tp; if (P_total > c->pressure && dydt[0] > 0.) { real h_boil = dydt[0] * mp * Cp; /* keep particle temperature constant */ dydt[0] = 0.; for (ns = 0; ns < nc; ns++) { int gas_index = TP_COMPONENT_INDEX_I(p,ns); if (gas_index >= 0) { real boil_rate = h_boil / hvap[gas_index] * cvap_surf[ns] * molwt[gas_index] / dens_total; /* particle component mass source term */ dydt[1+ns] -= boil_rate; /* fluid species source */ dzdt->species[gas_index] += boil_rate; /* fluid energy source */ dzdt->energy += hgas[gas_index] * boil_rate; } } } } |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : MASS_AND_HEAT.pdf
2015-04-30 09:45:22, 68.14 K
» 猜你喜欢
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有9人回复
心脉受损
已经有6人回复
博士申请都是内定的吗?
已经有8人回复
博士读完未来一定会好吗
已经有32人回复
读博
已经有5人回复
投稿精细化工
已经有4人回复
高职单位投计算机相关的北核或SCI四区期刊推荐,求支招!
已经有4人回复
导师想让我从独立一作变成了共一第一
已经有9人回复
Springer期刊投稿求助
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
有关fluent UDF的问题
已经有15人回复
Ansys Fluent 编译UDF及加载UDF出现错误
已经有14人回复
fluent中udf如何编写内部压力变化
已经有7人回复
急,在FLUENT中如何同时调用两个UDF?
已经有11人回复
FLUENT-UDF中保存变量
已经有5人回复
fluent中UDF编译的问题!
已经有11人回复
{求助,关于一个速度入口的udf}
已经有12人回复
fluent中UDF编译的问题!
已经有6人回复
fluent 加载udf出现这样错误 怎么办
已经有14人回复
fluent14编译UDF时总是出错,求高手啊!!!难道没人遇到过吗???
已经有11人回复
学习fluent udf
已经有5人回复
fluent udf请教
已经有16人回复
fluent udf的应用
已经有20人回复
fluent中通过UDF获得系统时间
已经有15人回复
求助udf的输入输出
已经有16人回复
【求助】FLUENT UDF 气液两相流 汽蚀 汽化潜热(问题详见内容)
已经有21人回复
求助!!!我想要在fluent中针对一个面进行积分,那么UDF应该用什么宏函数?怎么用?
已经有5人回复
【求助】单机多核UDF怎么并行计算
已经有15人回复
【求助】linux版fluent使用udf并行问题请教
已经有4人回复
2楼2015-04-30 15:02:50
【答案】应助回帖
感谢参与,应助指数 +1
|
1. 首先,你得确定是你UDF的问题,unload 你的udf,改用常规的计算模型或者方法,会不会出现同上的问题,有时不一定UDF的问题,是你其他方面的设置出现问题。 2. 如果是UDF的问题,那么就要好好检查你的UDF了,用UDF时,最好严格按照UDF指导内的宏 进行编写,不要以常规C编写习惯来写。 3. UDF 中必须明确你声明 的或者用过的每一个变量,保证不除0,变量最好先声明,不出现没有赋值的情况,同时你的值得确保在合理的范围内。 4. 数据类型要合理,采用双精度求解器。 4. 以上你出现的错误,个人认为可能在读取数据 时出现了问题,不过你首先的排除是不是其他地方出现了问题 |
» 本帖已获得的红花(最新10朵)

3楼2015-04-30 21:45:14
4楼2015-05-04 08:58:23
5楼2016-11-29 11:01:58
6楼2017-09-17 10:21:31













回复此楼
ichabod