![]()
如圖:
(1).初始時(shí)刻,矩形區(qū)域內(nèi)上半部分(區(qū)域1+2)為質(zhì)量分?jǐn)?shù)為5%的甲醛+95%的空氣的混合氣體。下半部分(區(qū)域3+4)為0%的甲醛+100%的水。
(2). 空氣中的甲醛會(huì)在氣液交界面處發(fā)生溶解,即區(qū)域2中的甲醛因溶解而進(jìn)入?yún)^(qū)域3中(設(shè)溶解過程瞬間即可完成),于是水區(qū)域的上部(區(qū)域3)有了甲醛,而水區(qū)域4還沒有甲醛,于是由于濃度差甲醛會(huì)從水區(qū)域的上部(區(qū)域3)往下部(區(qū)域4)擴(kuò)散。
同時(shí)空氣區(qū)域的下部(區(qū)域2)由于甲醛溶解到水中而濃度降低,也引起空氣區(qū)域中甲醛從上部(區(qū)域1)往下部(區(qū)域2)擴(kuò)散。
(3). 甲醛的溶解過程由平衡分配關(guān)系決定。假設(shè)甲醛在空氣和水中的平衡分配系數(shù)為0.1(即,上述溶解與擴(kuò)散過程經(jīng)過足夠長(zhǎng)時(shí)間后總會(huì)穩(wěn)定,設(shè)穩(wěn)定后 [甲醛在空氣中的濃度a0):(甲醛在水中的濃度b0)=0.1] 這是一個(gè)物理定律。穩(wěn)定后的濃度比是定值,與初始狀態(tài)無關(guān)。
(4). 選用VOF兩相流模型(主相設(shè)為甲醛(占5%)+空氣(占95%)的混合氣,第二相設(shè)為甲醛(占0%)和水(占100%)的混和物)
+species transport模型。
氣液交界面為邊界條件設(shè)為wall,其它邊界也為wall
兩相交互作用Phase interacion中設(shè)置一個(gè)mass transfer mechnism
(5).編程想法:
找到氣液交界面,然后提取出交界面上方單元(區(qū)域2)甲醛的濃度,設(shè)其為a;
再提取出交界面下方單元(區(qū)域3)甲醛的濃度,設(shè)為b;
再根據(jù)甲醛在氣相和液相中的平衡分配系數(shù)0.1
由 a+b=a0+b0 (分配前后質(zhì)量守恒)
a0/b0=0.1 (分配穩(wěn)定后滿足平衡分配系數(shù)關(guān)系)
解上面方程組得a0=(0.1/(0.1+1) )* (a+b) ,b0=(1/(0.1+1)) * (a+b)
并把a(bǔ)更新為a0,b更新為b0。
即a=(0.1/(0.1+1)) * (a+b)
b=(1/(0.1+1) )* (a+b)
(6).溶解平衡分配關(guān)系完成后,根據(jù)上面物理原理第(2)條,由于擴(kuò)散原因會(huì)打破這個(gè)平衡。于是新的平衡分配又開始了。過通過循環(huán)完成。
If (b/a<0.1) 溶解平衡分配就會(huì)發(fā)生。
比如最開始甲醛在氣相的濃度為a=5%,甲醛在水中的濃度為b=0,
顯然b/a<0.1,所以按平衡分配關(guān)系把a(bǔ),b更新為
a=0.1/(0.1+1) * 5%
b=1/(0.1+1) *5%
這樣氣液兩相中便出現(xiàn)濃度差了,兩相中各自又會(huì)發(fā)生擴(kuò)散,擴(kuò)散又會(huì)打破平衡分配關(guān)系......
就是這個(gè)過程。
下面為根據(jù) HELP 中UDF寫的程序,但編譯有錯(cuò)。也不知道能不能正確描述我的問題。望各個(gè)高手幫忙看看。萬分感謝。
DEFINE_MASS_TRANSFER(liq_gas_transfer, cell, mix_thread, from_index, from_species_index, to_index, to_species_index)
{
real a,b,c;
cell_t c0,c1;
Thread *tc0,*tc1;
Domain *domain=Get_Domain(1);
face_t f;
int ID=9; /* 交界處wall邊界的ID*/
Thread *zhong_thread=Lookup_Thread(domain,ID); /* 獲取交界面處wall的指針*/
begin_f_loop(f,zhong_thread) /* 循環(huán)于交界面中的所有face*/
{
c0=F_CO(f,zhong_thread); /*左邊的cell標(biāo)為c0*/
tc0=THREAD_T0(zhong_thread); /*左邊的cell的指針tc0*/
c1=F_C1(f,zhong_thread); /*右邊的cell標(biāo)為c1*/
tc1=THREAD_T1(zhong_thread); /*右邊的cell的指針tc1*/
a=C_YI(c0,tc0,from_species_index); /*獲取co的質(zhì)量分?jǐn)?shù)*/
b=C_YI(c1,tc1,to_species_index); /*獲取c1的質(zhì)量分?jǐn)?shù)*/
if(a>(10.0/11.0)*(a+b))
c=(10.0/11.0)*(a+b)-a; /*按分配關(guān)系,如果a>分配后的a0,則記錄應(yīng)返回值c=a0-a*/
if(b<(1.0/11.0)*(a+b))
c=(1.0/11.0)*(a+b)-b; /*按分配關(guān)系,如果b<分配后的b0,則記錄應(yīng)返回值c=b0-b*/
}
return(c); /*返回c*/
end_f_loop(f,zhong_thread)
}
[ Last edited by kylafree on 2011-1-5 at 16:37 ] |