下面是我的问题。
如图所示。两个通道被一层膜隔开(为了便于计算,这层膜用wall、wall2来表示)。上面通道内走冷水,下层走热水。红色区域表示热水侧靠近 Wall 2 的一层网格,将这部分划分为 cell zone3,而绿色区域表示冷水侧靠近 Wall 的一层网格,将这部分划分为 cell zone4 ,网格划分方式相同。整个过程用fluent模拟。
问题:现在需要在热水侧靠近Wall 2 的那层网格(cell zone3)加载能量源项,而这个能量源项不仅与Cell zone3内网格温度有关,还与其相对应的Cell zone4内网格温度有关.即
Source=f(T1, T0),我将其简化为Source=T1-T0 (如图所示T1为Cell zone3中某个网格的温度、T0为 Cell zone4中与红色网格相对应的绿色网格的温度)
现在问题的难点是如何在Cell zone3中提取到Cell zone4相对应的(必须是相对应的)网格温度。下面是我自己的做法。
DEFINE_ADJUST(filter_adjust, domain)
{
cell_t c0, c1;
Thread*wall2_thread; /*膜下侧,即wall2*/
Thread*t0;
Thread*t1;
face_t wall2 =35;
mem_thread= Lookup_Thread(domain,mem);
begin_f_loop (wall2, wall2_thread)
{
c0= F_C0(wall2,wall2_thread);
c1= F_C1(wall2,wall2_thread);
t0= THREAD_T0(wall2_thread);
t1= THREAD_T1(wall2_thread); /*由fluent默认可知c0为Cell zone3中某个网格,而c1为Cell zone4中与c0对应的绿色网格*/
C_UDMI (c0,t0,0)=C_T(c0, t0) -C_T(c1, t1);
} /*将红色网格及其对应的绿色网格差值存储在红色网格中,也就是Cell zone3的网格中*/
end_f_loop (wall2,wall2_thread)
}
DEFINE_SOURCE(water_source,cell,thread,dS,eqn) /*加载在Cell zone3上*/
{
real source_en;
source_en=C_UDMI(c,t,0); /*感觉这里有问题啊,指针问题?*/
dS=0.;
return source_en;
}
最终可以加载上,不过没有任何的作用,个人感觉是source_en=C_UDMI(c,t,0)与C_UDMI (c0,t0,0)=C_T(c0, t0) -C_T(c1, t1)不能进行数据传递。希望高手能够给予帮助,大家有更好的办法的话,希望能不吝赐教。谢谢!