找回密码
 注册
查看: 978|回复: 1

源项导入后无法计算的问题

[复制链接]
发表于 2017-7-1 17:00:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位大神,我最近编写了一个关于氯化锂溶液除湿的源项,程序可以导入进去,但是在初始化的时候就出现ACCESS VIOLATION提示语,请问怎么回事呢?我的UDF源项包括气相质量源项,液相质量源项,能量源项,程序如下: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;                                  /*溶液中氯化锂的质量分数*/
real T;                                    /*溶液的温度*/
real ph;                                   /*水的表面蒸汽压*/
real C;                                    /*计算表面蒸汽压需要用到的函数*/
real A;                                    /*计算表面蒸汽压需要用到的函数*/
real B;                                    /*计算表面蒸汽压需要用到的函数*/
real D;                                    /*计算表面蒸汽压需要用到的函数*/
real ps_w;                                 /*氯化锂溶液的表面蒸汽压*/
real hb;                                   /*湿空气含湿量与溶液保持平衡*/
real current_time;
real K;                                    /*除湿过程中的传质系数*/
real F;                                    /*与温度和浓度有关的函数*/
real hmg;                                  /*气相传质系数*/
real hml;                                  /*液相传质系数*/
current_time=RP_Get_Real("flow-time");     /*调用气液接触时间*/
mix_th=THREAD_SUPER_THREAD(pri_th);
sec_th=THREAD_SUB_THREAD(mix_th,1);
mfv=C_YI(cell,pri_th,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);
T=C_T(cell,sec_th);
C=1-T/647.3;
ph=22090000*exp((-7.8582*C+1.8399*pow(C,1.5)-11.7811*pow(C,3.0)+22.6705*pow(C,3.5)-15.9393*pow(C,4.0)+1.7752*pow(C,7.5))/(1-C));
A=2-pow(1+pow(mfs/0.28,4.3),0.6);
B=pow(1+pow(mfs/0.21,5.1),0.49)-1;
D=1-pow(1+pow(mfs/0.362,-4.75),-0.4)-0.03*exp(-pow(mfs-0.1,2)/0.005);
ps_w=D*(A+B*T/647.3)*ph;
hb=0.622*ps_w/(101325-ps_w);
F=-7416.1+90127.0*mfs-397003.0*pow(mfs,2.0)+756527.0*pow(mfs,3.0)-520920.0*pow(mfs,4.0)+(1989.3-24274.0*mfs+108917.0*pow(mfs,2.0)-213395.0*pow(mfs,3.0)+153709.0*pow(mfs,4.0))*(T-273.1)+(-86.8+1059.7*mfs-4766.4*pow(mfs,2.0)+9372.4*pow(mfs,3.0)-6789.3*pow(mfs,4.0))*pow(T-273.1,2.0)+(0.9+11.9*mfs+53.7*pow(mfs,2.0)-105.7*pow(mfs,3.0)+76.7*pow(mfs,4.0))*pow(T-273.1,3.0);
hmg=2*pow(0.000029/(3.14*current_time),0.5);
hml=2*pow(0.0000000013/(3.14*current_time),0.5);
K=F*hmg*hml/(hmg+F*hml);
if(0<C_VOF(cell,pri_th)&&C_VOF(cell,pri_th)<1)
{
m_v=-K*(hr-hb);
dS[eqn]=-K*(hr-hb);
}
else
m_v=dS[eqn]=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;                                  /*溶液中氯化锂的质量分数*/
real T;                                    /*溶液的温度*/
real ph;                                   /*水的表面蒸汽压*/
real C;                                    /*计算表面蒸汽压需要用到的函数*/
real A;                                    /*计算表面蒸汽压需要用到的函数*/
real B;                                    /*计算表面蒸汽压需要用到的函数*/
real D;                                    /*计算表面蒸汽压需要用到的函数*/
real ps_w;                                 /*氯化锂溶液的表面蒸汽压*/
real hb;                                   /*湿空气含湿量与溶液保持平衡*/
real current_time;
real K;                                    /*除湿过程中的传质系数*/
real F;                                    /*与温度和浓度有关的函数*/
real hmg;                                  /*气相传质系数*/
real hml;                                  /*液相传质系数*/
current_time=RP_Get_Real("flow-time");     /*调用气液接触时间*/
mix_th=THREAD_SUPER_THREAD(sec_th);
sec_th=THREAD_SUB_THREAD(mix_th,0);
mfv=C_YI(cell,pri_th,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);
T=C_T(cell,sec_th);
C=1-T/647.3;
ph=22090000*exp((-7.8582*C+1.8399*pow(C,1.5)-11.7811*pow(C,3.0)+22.6705*pow(C,3.5)-15.9393*pow(C,4.0)+1.7752*pow(C,7.5))/(1-C));
A=2-pow(1+pow(mfs/0.28,4.3),0.6);
B=pow(1+pow(mfs/0.21,5.1),0.49)-1;
D=1-pow(1+pow(mfs/0.362,-4.75),-0.4)-0.03*exp(-pow(mfs-0.1,2)/0.005);
ps_w=D*(A+B*T/647.3)*ph;
hb=0.622*ps_w/(101325-ps_w);
F=-7416.1+90127.0*mfs-397003.0*pow(mfs,2.0)+756527.0*pow(mfs,3.0)-520920.0*pow(mfs,4.0)+(1989.3-24274.0*mfs+108917.0*pow(mfs,2.0)-213395.0*pow(mfs,3.0)+153709.0*pow(mfs,4.0))*(T-273.1)+(-86.8+1059.7*mfs-4766.4*pow(mfs,2.0)+9372.4*pow(mfs,3.0)-6789.3*pow(mfs,4.0))*pow(T-273.1,2.0)+(0.9+11.9*mfs+53.7*pow(mfs,2.0)-105.7*pow(mfs,3.0)+76.7*pow(mfs,4.0))*pow(T-273.1,3.0);
hmg=2*pow(0.000029/(3.14*current_time),0.5);
hml=2*pow(0.0000000013/(3.14*current_time),0.5);
K=F*hmg*hml/(hmg+F*hml);
if(0<C_VOF(cell,sec_th)&&C_VOF(cell,sec_th)<1)
{
m_s=-K*(hr-hb);
dS[eqn]=-K*(hr-hb);
}
else
m_s=dS[eqn]=0;
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;                                  /*溶液中氯化锂的质量分数*/
real T;                                    /*溶液的温度*/
real ph;                                   /*水的表面蒸汽压*/
real C;                                    /*计算表面蒸汽压需要用到的函数*/
real A;                                    /*计算表面蒸汽压需要用到的函数*/
real B;                                    /*计算表面蒸汽压需要用到的函数*/
real D;                                    /*计算表面蒸汽压需要用到的函数*/
real ps_w;                                 /*氯化锂溶液的表面蒸汽压*/
real hb;                                   /*湿空气含湿量与溶液保持平衡*/
real current_time;
real K;                                    /*除湿过程中的传质系数*/
real F;                                    /*与温度和浓度有关的函数*/
real hmg;                                  /*气相传质系数*/
real hml;                                  /*液相传质系数*/
current_time=RP_Get_Real("flow-time");     /*调用气液接触时间*/
pri_th=THREAD_SUPER_THREAD(mix_th,0);
sec_th=THREAD_SUB_THREAD(mix_th,1);
mfv=C_YI(cell,pri_th,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);
T=C_T(cell,sec_th);
C=1-T/647.3;
ph=22090000*exp((-7.8582*C+1.8399*pow(C,1.5)-11.7811*pow(C,3.0)+22.6705*pow(C,3.5)-15.9393*pow(C,4.0)+1.7752*pow(C,7.5))/(1-C));
A=2-pow(1+pow(mfs/0.28,4.3),0.6);
B=pow(1+pow(mfs/0.21,5.1),0.49)-1;
D=1-pow(1+pow(mfs/0.362,-4.75),-0.4)-0.03*exp(-pow(mfs-0.1,2)/0.005);
ps_w=D*(A+B*T/647.3)*ph;
hb=0.622*ps_w/(101325-ps_w);
F=-7416.1+90127.0*mfs-397003.0*pow(mfs,2.0)+756527.0*pow(mfs,3.0)-520920.0*pow(mfs,4.0)+(1989.3-24274.0*mfs+108917.0*pow(mfs,2.0)-213395.0*pow(mfs,3.0)+153709.0*pow(mfs,4.0))*(T-273.1)+(-86.8+1059.7*mfs-4766.4*pow(mfs,2.0)+9372.4*pow(mfs,3.0)-6789.3*pow(mfs,4.0))*pow(T-273.1,2.0)+(0.9+11.9*mfs+53.7*pow(mfs,2.0)-105.7*pow(mfs,3.0)+76.7*pow(mfs,4.0))*pow(T-273.1,3.0);
hmg=2*pow(0.000029/(3.14*current_time),0.5);
hml=2*pow(0.0000000013/(3.14*current_time),0.5);
K=F*hmg*hml/(hmg+F*hml);
if(0<C_VOF(cell,sec_th)&&C_VOF(cell,sec_th)<1)
{
m_e=K*(hr-hb);
dS[eqn]=K*(hr-hb);
}
else
m_e=dS[eqn]=0;
return LAT_HT*m_e;
}
有大婶能指出我的问题吗?感激不尽
 楼主| 发表于 2017-7-3 09:31:29 | 显示全部楼层
有知道的可不可以告诉我一下呢?感激不尽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表