没做过类似的问题,不过前一段时间见过一个沸腾方面的UDF,看看对你是否有帮助
- #include "udf.h"
- #include "sg_mphase.h"
- #define T_SAT 373 /*定义饱和温度*/
- #define LAT_HT 1.e3 /*定义水蒸汽潜热*/
- DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn) /*定义液相源项*/
- {
- Thread *mix_th, *sec_th; /*混合相、第二相*/
- real m_dot_l; /*蒸发冷凝速率*/
- mix_th = THREAD_SUPER_THREAD(pri_th);
- sec_th = THREAD_SUB_THREAD(mix_th, 1);
- if(C_T(cell, mix_th)>=T_SAT){
- m_dot_l = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
- fabs(C_T(cell, pri_th) - T_SAT)/T_SAT;
- dS[eqn] = -0.1*C_R(cell, pri_th)*
- fabs(C_T(cell, pri_th) - T_SAT)/T_SAT;
- }
- else {
- m_dot_l = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
- fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
- 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;
- mix_th = THREAD_SUPER_THREAD(sec_th);
- pri_th = THREAD_SUB_THREAD(mix_th, 0);
- if(C_T(cell, mix_th)>=T_SAT){
- m_dot_v = 0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
- fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
- dS[eqn] = 0.;
- }
- else {
- m_dot_v = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
- fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
- dS[eqn] = -0.1*C_R(cell, sec_th)*
- fabs(C_T(cell, sec_th) - T_SAT)/T_SAT;
- }
-
- return m_dot_v;
- }
- DEFINE_SOURCE(enrg_src, cell, mix_th, dS, eqn)
- {
- Thread *pri_th, *sec_th;
- real m_dot;
- pri_th = THREAD_SUB_THREAD(mix_th, 0);
- sec_th = THREAD_SUB_THREAD(mix_th, 1);
- if(C_T(cell, mix_th)>=T_SAT){
- m_dot = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
- fabs(C_T(cell, pri_th) - T_SAT)/T_SAT;
- dS[eqn] = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)/T_SAT;
- }
-
- else {
- m_dot = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
- fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
- dS[eqn] = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)/T_SAT;}
- return LAT_HT*m_dot; /*能量大小*/
- }
复制代码 |