| 查看: 1136 | 回复: 1 | ||
| 【悬赏金币】回答本帖问题,作者taozhenxiang将赠送您 20 个金币 | ||
taozhenxiang新虫 (小有名气)
|
[求助]
flunet 湿空气冷凝UDF浮点数溢出
|
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() 各位好!小弟用网上的资源贴做了湿空气在低温环境下的冷凝,初始化后计算一直抱浮点数溢出的错误。考虑有这几方面的问题1.网格质量差;2.调整松弛因子;3.调整迭代步长4.边界条件不合理。5.UDF代码存在错误。1--4本人已经做了多次修改,还是报同样的错误,因而推断为UDF本身的问题。自己刚接触UDF,并未发现明显错误,还请各位前辈给予指点,具体代码如下: #include "udf.h" /*包括常规宏*/ #include "sg_mphase.h" /*包括体积分数宏*/ #define LAT_HT 2260000 /*定义水蒸汽潜热*/ #define pi 3.1415 /*圆周率常数*/ #define R 8314 /*gas constant 8.314j/mol.K*/ #define moleweight 0.018 /*SI unit water mole weight 0.018kg/mol */ #define A 7.19621 #define B 1730.63 #define C 233.426 DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn) /*定义液相源项*/ { Thread *mix_th, *sec_th; /*混合相、第二相 定义计算区域指针*/ real m_dot_l; /*蒸发冷凝速率 定义液相质量转移*/ real P_SAT ; mix_th = THREAD_SUPER_THREAD(pri_th); /*指向混合区的主相即液相的指针*/ sec_th = THREAD_SUB_THREAD(mix_th, 1); /* 指向单相控制区的气相的指针*/ P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; /*定义饱和蒸汽压与液相温度的关系式,即antoine公式*/ if(C_P(cell, sec_th)< P_SAT) { m_dot_l = -(P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); /*定义液相向气相转移的速率,如果气相的压力小于一定温度下的饱和蒸汽压,液相向气相发生质量转移*/ dS[eqn]= -2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); /*定义源项对质量转移偏导,fabs为取绝对值*/ } else {m_dot_l = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); /*定义液相向气相转移的速率,如果气相压力大于一定温度下的饱和蒸汽压,气相向液相发生质量转移*/ dS[eqn] = 0; /*由于气相向液相转移,所以液相的质量源项对质量转移的偏导为零*/ } return m_dot_l; } DEFINE_SOURCE(vap_src, cell, sec_th, dS, eqn) { Thread *mix_th, *pri_th; real m_dot_v; real P_SAT ; mix_th = THREAD_SUPER_THREAD(sec_th); pri_th = THREAD_SUB_THREAD(mix_th, 0); P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; if(C_P(cell, sec_th)< P_SAT) { m_dot_v = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn] =0; } else {m_dot_v = -(P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=-2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } return m_dot_v; } DEFINE_SOURCE(enrg_src, cell, mix_th, dS, eqn) { Thread *pri_th,*sec_th; real m_dot; real P_SAT; pri_th=THREAD_SUB_THREAD(mix_th,0); sec_th=THREAD_SUB_THREAD(mix_th,1); P_SAT=exp(A-B/(C_T(cell,pri_th)+C-273.15))*1e3; if(C_P(cell, sec_th)< P_SAT) { m_dot =- (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=-2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } else { m_dot = (P_SAT-C_P(cell,sec_th))*sqrt(moleweight)*(2*pi*R*C_T(cell,pri_th)); dS[eqn]=2*pi*R*sqrt(moleweight)*(P_SAT-P_SAT*C_T(cell,pri_th)*B/pow((C_T(cell,pri_th)+C-273.15),2)-C_P(cell, sec_th)); } return LAT_HT*m_dot; } Thanks in advance |
» 猜你喜欢
中国科学院东莞材料科学与技术研究所-2026年博士招生-吴昊研究员-磁学与自旋电子学
已经有0人回复
《电磁学》教材推荐
已经有1人回复
物理学I论文润色/翻译怎么收费?
已经有125人回复
【急招】合肥工大核聚变材料计算方向2026级工程博士生
已经有4人回复
大豆异黄酮分离
已经有0人回复
湖南大学材料学院急招2026年博士生,临时增加一名博士联培指标
已经有10人回复
天津理工大学晶体材料全国重点实验室刘红军教授课题组招收博士生1-2名
已经有1人回复
中国科学院物理研究所谌志国研究员团队招收2027年博士研究生
已经有3人回复
2026年中德博士后交流项目 - 新型量子和磁性材料:材料制备表征和中子散射研究
已经有12人回复
taozhenxiang
新虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 3487.8
- 帖子: 212
- 在线: 208.4小时
- 虫号: 2446091
- 注册: 2013-05-03
- 性别: GG
- 专业: 工程热力学
2楼2020-08-10 17:11:31













回复此楼