| 查看: 665 | 回复: 0 | ||||
[求助]
能量源项编程问题
|
![]() 所编写的能量源项程序如下:#include "udf.h" DEFINE_SOURCE(heat_flux,cell,thread,ds,eqn) { real x[ND_ND]; real time,r; real source_heat; int k,u; C_CENTROID(x,cell,thread); time=CURRENT_TIME; k=(int)((int)(time)/6); u=(int)(time)%6; r=0; if(u>=0&&u<2) { r=sqrt(pow(x[0]+0.2-0.2*(time-6*k),2)+pow(x[1]-0.2,2)); if(r<=0.06&&x[2]>=0&&x[2]<=0.001&&x[1]<=0.2) { source_heat=8e11*exp(-3000*pow((r-0.005),2)); ds[eqn] =0; } else if(r<=0.06&&x[2]>=0&&x[2]<=0.001&&x[1]>0.2) { source_heat=4e11*exp(-3000*pow((r-0.005),2)); ds[eqn] =0; } } else { source_heat= ds[eqn] =0; } Message("u=%d,k=%d\n",u,k); Message("source_heat=%f\n",source_heat); return source_heat; } 存在问题:所有输出的能量值source_heat都为0 模型简介:t=0时刻,在xy平面上,热源中心位于(-0.2,0.2);随时间增加,在0-2S内热源沿y=0.2直线运动;热源扫描区域为半径为r=0.06的圆形。在当前时刻,热源中心为(-0.2+0.2*(time-6*k), 0.2),所以有热源的圆形半径r=sqrt(pow(x[0]+0.2-0.2*(time-6*k),2)+pow(x[1]-0.2,2)) 以下方式查看r值: r=sqrt(pow(x[0]+0.2-0.2*(time-6*k),2)+pow(x[1]-0.2,2)); Message("r=%f\n",r); 发现输出的r值没有小于0.1的,不知道是刷屏太快还是确实没有? 如果确实无小于0.1的值,热源输出值为0,也就正常;可问题是r应该有小于0.06的值,因为x[0],x[1]的取值范围为[-0.35,0.35],也就是说r的输出值应该在[0,0.06]内有值!! 仔细检查了下,实在找不出哪出现问题了 ![]() ![]() 高手们帮忙看看吧,谢谢!!! ![]() |
» 收录本帖的淘帖专辑推荐
fluent模拟问题 | 电弧 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
求助一下有机合成大神
已经有3人回复
最失望的一年
已经有13人回复
存款400万可以在学校里躺平吗
已经有30人回复
求推荐英文EI期刊
已经有5人回复
请教限项目规定
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有20人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复

找到一些相关的精华帖子,希望有用哦~
能量源项中有温度对时间的微分,需要用uds吗?
已经有16人回复
Erlang程序设计中文版(带源代码)-云计算和多核时代的编程语言
已经有36人回复
matlab实例编程一百个源程序
已经有107人回复
fluent能量源项中温度T对时间的t的偏导数,即dT/dt如何用udf编写能量源项
已经有6人回复
时间函数的能量方程源项怎么表达
已经有3人回复
能量方程源项udf
已经有4人回复
【求助】求助或讨论一下关于能量传递源项中各个焓值的含义
已经有3人回复
科研从小木虫开始,人人为我,我为人人















回复此楼

点击这里搜索更多相关资源