|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
#include "udf.h"
#define M 2.942e-3/*由公式中的已知值计算得到的常数*/
#define N 185.371/*由公式中的已知值计算得到的常数*/
#define L 2.26e6/*蒸发潜热*/
DEFINE_PROFILE(hflux,thread,index)/*液滴表面蒸发潜热产生的热流量*/
{
face_t f;
real sumh=0.0;
Thread *threadh;
begin_f_loop(f,thread)
{
real Ti;
Ti=F_T(f,thread);
sumh=M*(611.2*(pow(2.718,(17.62*(Ti-273.15)/
(Ti-30.03))))/sqrt(Ti)-N)*L;/*蒸发质量和潜热的乘积得到热流量,蒸发质量单位为kg/(㎡*s)*/
F_PROFILE(f,thread,index)=sumh;
}
end_f_loop(f,thread)
}
DEFINE_MASS_TRANSFER(liq_gas_source,cell,thread,from_index,from_species_index,to_index,to_species_index) /*液相转移到气相的蒸发质量*/
{
real m_lg;
Thread *liq = THREAD_SUB_THREAD(thread, from_index);
Thread *gas = THREAD_SUB_THREAD(thread, to_index);
if (C_VOF(cell,liq) >0. && C_VOF(cell, liq) <1.)/*将区域固定在气液交界面上*/
{real Ti;
Ti=C_T(cell,liq);
m_lg =-M*(611.2*(pow(2.718,(17.62*(Ti-273.15)/(Ti-30.03))))/sqrt(Ti)-N);
}
else
{m_lg=0.0;
}
return m_lg;
}
DEFINE_PROFILE(velocity,thread,index)/*为维持液滴表面形状不变,液滴底部补液,补液速度根据表面蒸发量计算出*/
{
face_t f;
real sum=0.0;
real A[ND_ND];
int ID=14;/*气液交界面的ID*/
Domain *domain;
Thread *threadv=Lookup_Thread(domain,ID);
begin_f_loop(f,thread)
{
real Ti;
Ti=F_T(f,thread);
F_AREA(A,f,thread);
sum+=M*NV_MAG(A)*(611.2*(pow(2.718,(17.62*(Ti-273.15)/
(Ti-30.03))))/sqrt(Ti)-N);
}
end_f_loop(f,thread)
F_PROFILE(f,thread,index)=sum/0.0196;
}
用的是mixture模型,udf没有报错,但是计算几步之后就不能继续算下去了,错误类型为Error: Floating point error: overflow
求各位指点啊啊啊啊啊啊
|
|