用组分输运模型模拟一个三维圆柱内的组分输运问题,圆柱壁面对组分有吸收。圆柱等分为两段,前一段标为huxi ,后一段标为xiu。由于壁面对组分的吸收缘故,必然使圆柱内从前往后浓度依次降低。
从而下面的代码应该huxi2 与xiu2的值不同才是,但我得到的结果是huxi2与xiu2的值完全一样,奇了怪了,
#include "udf.h"
#define Dm 6.9e-5
DEFINE_ON_DEMAND(tongti2)
{
int n;
face_t f;
cell_t cell_gas;
Thread *tf;
real At;
real NV_VEC(A);
real c_mass_volume,flux,source;
Thread *huxi = Lookup_Thread(Get_Domain(1), 11);
Thread *xiu = Lookup_Thread(Get_Domain(1), 12);
real huxi2=0.0 , xiu2=0.0;
begin_c_loop(cell_gas, THREAD_T0(huxi))
{
c_face_loop(cell_gas, THREAD_T0(huxi),n)
{
f = C_FACE(cell_gas, THREAD_T0(huxi),n);
tf = C_FACE_THREAD(cell_gas, THREAD_T0(huxi),n);
if (BOUNDARY_FACE_THREAD_P(tf))
{
F_AREA(A, f, tf);
At = NV_MAG(A);
break;
}
}
c_mass_volume = C_YI(cell_gas, THREAD_T0(huxi), 0)*C_R(cell_gas, THREAD_T0(huxi));
flux = c_mass_volume*Dm ;
source = -flux*At;
huxi2 = huxi2+source;
}
end_c_loop(cell_gas, THREAD_T0(huxi))
Message("\n huxi2 = %g\n", huxi2);
begin_c_loop(cell_gas, THREAD_T0(xiu))
{
c_face_loop(cell_gas, THREAD_T0(xiu),n)
{
f = C_FACE(cell_gas, THREAD_T0(xiu),n);
tf = C_FACE_THREAD(cell_gas, THREAD_T0(xiu),n);
if (BOUNDARY_FACE_THREAD_P(tf))
{
F_AREA(A, f, tf);
At = NV_MAG(A);
break;
}
}
c_mass_volume = C_YI(cell_gas, THREAD_T0(xiu), 0)*C_R(cell_gas, THREAD_T0(xiu));
flux = c_mass_volume*Dm;
source = -flux*At;
xiu2 = xiu2+source;
}
end_c_loop(cell_gas, THREAD_T0(xiu))
Message("\n xiu2 = %g\n", xiu2);
}
[Last edited by kylafree on 2012-1-3 at 22:06]