大家好!我最近在嘗試基于fluent實(shí)現(xiàn)level set方法追蹤自由表面。不利用fluent自帶的coupled level set and vof,而是希望通過uds求解level set方程、重新初始化方程。最后結(jié)合level set函數(shù)值求解物理量的控制方程。目前已利用uds求解level set函數(shù),在求解重新初始化方程時(shí)遇到問題。
首先,在求解level set方程時(shí),uds方程源項(xiàng)為0,擴(kuò)散系數(shù)為0,對(duì)流項(xiàng)選擇mass flow rate. 求解的方程如圖1:
![fluent uds方程對(duì)流項(xiàng)問題 用于求解level set方程及重新初始化方程]()
圖1 利用UDS求解的Level Set方程
重新初始化方程如圖2所示,對(duì)照UDS方程形式,認(rèn)為對(duì)流項(xiàng)為w =sign phi0 *grad phi / |grad phi|
![fluent uds方程對(duì)流項(xiàng)問題 用于求解level set方程及重新初始化方程-1]()
圖2 重新初始化方程
對(duì)流項(xiàng)UDF編寫時(shí),令w0=sign phi0 /|grad phi|; w = w0*grad phi. 如下:
DEFINE_UDS_FLUX(flux_reinil,f,t,i)
{
real w=0.0,w0;
cell_t c0;
Thread *t0;
real NV_VEC(psi_vec),NV_VEC(A);
c0=F_C0(f,t);
t0=F_C0_THREAD(f,t);
F_AREA(A,f,t);
w0 = C_UDSI(c0,t0,0)/sqrt(C_UDSI(c0,t0,0)*C_UDSI(c0,t0,0)+0.01*0.01)/sqrt(C_UDSI_G(c0,t0,1)[0]*C_UDSI_G(c0,t0,1)[0]+C_UDSI_G(c0,t0,1)[1]*C_UDSI_G(c0,t0,1)[1]+C_UDSI_G(c0,t0,1)[2]*C_UDSI_G(c0,t0,1)[2]);
NV_D(psi_vec,=,C_UDSI_G(c0,t0,1)[0],C_UDSI_G(c0,t0,1)[1],C_UDSI_G(c0,t0,1)[2]);
NV_S(psi_vec,*=,w0);
w = NV_DOT(psi_vec,A);
return w;
}
可以編譯,可以計(jì)算,但是結(jié)果不能實(shí)現(xiàn)重新初始化。
問題多多:1)利用UDS解重新初始化方程的可行性;2)如果可行,對(duì)流項(xiàng)形式是否是w;3)DEFINE_UDS_FLUX的編寫。這些都存在一些問題,煩請(qǐng)大家予以指導(dǎo)!或者推薦一些可供學(xué)習(xí)的資料、文獻(xiàn)也行!非常感謝。!  |