|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我在做空化的模拟,编写的UDF如下
DEFINE_CAVITATION_RATE(user_cav_rate, c, t, p, rhov, rhol, mafv, p_v, h_gas, f_gas, m_dot) {
Thread **pt=THREAD_SUB_THREADS(t);
real vofv=C_VOF(c,pt[1]);
real vofl=1-vofv;
real hl=C_H(c,pt[0]);
real hv=C_H(c,pt[1]);
real p_vapor=*p_v;
real T=C_T(c,t);
real Cp=C_CP(c,t);
real P=C_P(c,t);
real rho_L= *rhol;
real rho_V= *rhov;
real p_operating, dp;
p_operating=RP_Get_Real("operating-pressure");
dp=P+p_operating;
if(dp>p_vapor)
*m_dot = 1000*3*0.597*vofv*sqrt(2*(dp-p_vapor)/(3*958.345))*(2-(sqrt(3/PI)*(rho_L*Cp*fabs(373-T)/((hv-hl)*rho_V)*sqrt(C_UDSI(c,t,0)/0.009)))/(sqrt(2*(dp-p_vapor)/(3*958.345))));
else
*m_dot = -5.0*3*5.0*100*0.597*vofl*sqrt(2*(p_vapor-dp)/(3*958.345))*(2+(sqrt(3/PI)*(rho_L*Cp*fabs(T-373)/((hv-hl)*rho_V)*sqrt(C_UDSI(c,t,0)/0.009)))/(sqrt(2*(p_vapor-dp)/(3*958.345))));
}
该函数便已没有错误,但是计算的话就会出现错误提示
Error:wrong return type:float udf fucntion expected
如果我直接赋值
*m_dot = 0.1也还是同样的错误
另外,函数名中已经包括很多变量,例如液体密度
如果我想取出液体密度 是应该怎么取啊?
real rho_L= *rhol;
还是
real rho_L= C_R(c,t);
求指教啊 |
|