|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
求助各位,氯化锂溶液和湿空气的传质过程,我用define_source宏编写了湿空气质量源项,溶液质量源项和能量方程的源项。
湿空气的源项宏里dS这一项我是对湿空气里的水蒸气质量分数求的偏导,溶液源项宏是对溶液的质量分数求偏导,能量方程我不太确定对谁求偏导,所以我写了dS=0.
运行程序后发现dS有值的两排(黄色背景的两排),都提示invalid type conversion: double-> pointer to float。
请问各位这是什么错呢?另外源项里dS这样求导可以吗?程序如下,谢谢各位
#include "udf.h"
#include "sg_mphase.h"
#define LAT_HT 1.e3
DEFINE_SOURCE(air_src,cell,pri_th,dS,eqn) /*主相湿空气质量输运源项*/
{
Thread *mix_th,*sec_th; /*计算区域指针*/
real m_v; /*主相质量输运量*/
real mfv; /*湿空气中水蒸气的质量分数*/
real t_air; /*湿空气的温度*/
real hr; /*湿空气的含湿量*/
real pa; /*湿空气的总压力*/
real pa_v; /*湿空气的水蒸气分压*/
real mfs; /*licl溶液的质量分数*/
real t_sol; /*licl溶液的温度*/
real ps_w; /*licl溶液的水蒸气分压*/
mix_th=THREAD_SUPER_THREAD(pri_th); /*混合区液相指针*/
sec_th=THREAD_SUB_THREAD(mix_th,1); /*单相区气相指针*/
mfv=C_YI(cell,pri_th,0); /*获得湿空气中水蒸气的质量分数,注意species列表中的顺序,水是第一个时序号才是0,dS要对该项求导*/
hr=mfv/(1-mfv); /*由湿空气中水蒸气的质量分数算到湿空气的含湿量*/
pa=ABS_P(C_P(cell,pri_th),op_pres); /*获取湿空气的总压力*/
pa_v=(pa*hr)/(hr+0.622); /*获取湿空气水蒸气分压*/
/* t_air=C_T(cell,pri_th); /*湿空气的温度,单位为摄氏度*/
mfs=C_YI(cell,sec_th,0); /*获得溶液中licl的质量分数,注意species列表中的顺序,licl是第一个时序号才是0,*/
t_sol=C_T(cell,sec_th); /*溶液的温度,单位为摄氏度*/
ps_w=1.1491997+0.11242725*t_sol-0.06183172*mfs+0.0014521543*pow(t_sol,2)+0.0011080673*pow(mfs,2)-0.0035782429*t_sol*mfs; /*溶液水蒸气分压*/
if(pa_v>ps_w) /*如果湿空气的水蒸气分压大于溶液的水蒸气分压,则水蒸气向溶液移动,冷凝放热,属于除湿过程*/
{
m_v=0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier */
dS=0.00165*((pa*(0.378*mfv+0.622)-pa*mfv*0.378)/pow(0.378*mfv+0.622,2)); /*湿空气质量源项对湿空气的质量转移求导,对湿空气中水蒸气质量分数mfv求导*/
}
else if(pa_v<ps_w) /*如果湿空气的水蒸气分压小于溶液的水蒸气分压,则水蒸气向湿空气移动,蒸发吸热,属于再生过程*/
{
m_v=-0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier */
dS=0; /* 水蒸气由溶液向湿空气转移,湿空气质量源项对质量转移的偏导为0*/
}
return m_v;
}
DEFINE_SOURCE(sol_src,cell,sec_th,dS,eqn) /*次相氯化锂溶液质量输运源项*/
{
Thread *mix_th,*pri_th;
real m_s; /*次相溶液相质量输运量*/
real mfv;
real t_air; /*湿空气的温度*/
real hr; /*湿空气的含湿量*/
real pa; /*湿空气的总压力*/
real pa_v; /*湿空气的水蒸气分压*/
real mfs; /*licl溶液的质量分数*/
real t_sol; /*licl溶液的温度*/
real ps_w; /*licl溶液的水蒸气分压*/
mix_th=THREAD_SUPER_THREAD(sec_th); /*混合区液相指针*/
pri_th=THREAD_SUB_THREAD(mix_th,0); /*单相区气相指针*/
mfv=C_YI(cell,pri_th,0); /*获得湿空气中水蒸气的质量分数,注意species列表中的顺序,水是第一个时序号才是0*/
hr=mfv/(1-mfv); /*由湿空气中水蒸气的质量分数算到湿空气的含湿量*/
pa=ABS_P(C_P(cell,pri_th),op_pres); /*获取湿空气的总压力*/
pa_v=(pa*hr)/(hr+0.622); /*获取湿空气水蒸气分压*/
/* t_air=C_T(cell,pri_th); /*湿空气的温度,单位为摄氏度*/
mfs=C_YI(cell,sec_th,0); /*获得溶液中licl的质量分数,注意species列表中的顺序,licl是第一个时序号才是0,dS要对该项求导*/
t_sol=C_T(cell,sec_th); /*溶液的温度,单位为摄氏度*/
ps_w=1.1491997+0.11242725*t_sol-0.06183172*mfs+0.0014521543*pow(t_sol,2)+0.0011080673*pow(mfs,2)-0.0035782429*t_sol*mfs; /*溶液水蒸气分压*/
if(pa_v>ps_w) /*如果湿空气的水蒸气分压大于溶液的水蒸气分压,则水蒸气向溶液移动,冷凝放热,属于除湿过程*/
{
m_s=0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier */
dS=0; /*水蒸气由湿空气转移到溶液,溶液的质量源项对质量转移的偏导为0*/
}
else if(pa_v<ps_w) /*如果湿空气的水蒸气分压小于溶液的水蒸气分压,则水蒸气向湿空气移动,蒸发吸热,属于再生过程*/
{
m_s=-0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier */
dS=-0.00165*(0.06183172-0.0022161346*mfs+0.0035782429*t_sol); /*dS:溶液的质量源项对质量转移求偏导,对溶液中水蒸气质量分数mfs求导*/
}
return m_s;
}
DEFINE_SOURCE(enrg_src,cell,mix_th,dS,eqn) /*混合相能量方程输运源项*/
{
Thread *pri_th,*sec_th;
real m_e; /*相变质量*/
real mfv;
real t_air; /*湿空气的温度*/
real hr; /*湿空气的含湿量*/
real pa; /*湿空气的总压力*/
real pa_v; /*湿空气的水蒸气分压*/
real mfs; /*licl溶液的质量分数*/
real t_sol; /*licl溶液的温度*/
real ps_w; /*licl溶液的水蒸气分压*/
pri_th=THREAD_SUB_THREAD(mix_th,0); /*混合区液相指针*/
sec_th=THREAD_SUB_THREAD(mix_th,1); /*单相区气相指针*/
mfv=C_YI(cell,pri_th,0); /*获得湿空气中水蒸气的质量分数,注意species列表中的顺序,水是第一个时序号才是0*/
hr=mfv/(1-mfv); /*由湿空气中水蒸气的质量分数算到湿空气的含湿量*/
pa=ABS_P(C_P(cell,pri_th),op_pres); /*获取湿空气的总压力*/
pa_v=(pa*hr)/(hr+0.622); /*获取湿空气水蒸气分压*/
/* t_air=C_T(cell,pri_th); /*湿空气的温度,单位为摄氏度*/
mfs=C_YI(cell,sec_th,0); /*获得溶液中licl的质量分数,注意species列表中的顺序,licl是第一个时序号才是0*/
t_sol=C_T(cell,sec_th); /*溶液的温度,单位为摄氏度*/
ps_w=1.1491997+0.11242725*t_sol-0.06183172*mfs+0.0014521543*pow(t_sol,2)+0.0011080673*pow(mfs,2)-0.0035782429*t_sol*mfs; /*溶液水蒸气分压*/
if(pa_v>ps_w) /*如果湿空气的水蒸气分压大于溶液的水蒸气分压,则水蒸气向溶液移动,冷凝放热,属于除湿过程*/
{
m_e=0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier */
dS=0;
}
else if(pa_v<ps_w) /*如果湿空气的水蒸气分压小于溶液的水蒸气分压,则水蒸气向湿空气移动,蒸发吸热,属于再生过程*/
{
m_e=-0.00165*(((pa*mfv/(1-mfv))/(mfv/(1-mfv)+0.622))-ps_w); /* mass transfer rate in dehumidifier*/
dS=0;
}
return LAT_HT*m_e;
}
|
|