24小时热门版块排行榜    

查看: 1617  |  回复: 1

ljzzhet

新虫 (初入文坛)

[求助] UDS方程中的对流项

UDS方程中的对流项
现在有一个UDS方程中的对流项如图所示,其中Wf为常数,取0.3,我编辑的UDF代码如下,但是导入FLUENT后计算不收敛,不知道是不是对流项出错了,求各位大神指导!!刚注册,没什么金币,就靠大家帮忙了!
DEFINE_UDS_FLUX(snow_uds_flux,f,t,i)
{
   real U[ND_ND],A[ND_ND],flux;
   cell_t c0,c1;
   Thread *t0,*t1;
   c0=F_C0(f,t);
   t0=F_C0_THREAD(f,t);
   F_AREA(A,f,t);
   flux=0.0;
   c1=-1;
   t1=NULL;
  
   if(BOUNDARY_FACE_THREAD_P(t))
     {          
              U[0]=F_U(f,t);
                  U[1]=F_V(f,t);
                  U[2]=(F_W(f,t)+0.3);
                  flux=U[0]*A[0]+U[1]*A[1]+U[2]*A[2];
     }
   else
   {
              c1=F_C1(f,t);
              t1=F_C1_THREAD(f,t);
              U[0]=(C_U(c0,t0)+C_U(c1,t1))/2.0;
                  U[1]=(C_V(c0,t0)+C_V(c1,t1))/2.0;
                  U[2]=(C_W(c0,t0)+0.3+C_W(c1,t1)+0.3)/2.0;
                  flux=U[0]*A[0]+U[1]*A[1]+U[2]*A[2];
   }   
   return flux;
}

采用NV_宏定义的向量形式编辑如下:
DEFINE_UDS_FLUX(snow_uds_flux,f,t,i)
{
   real NV_VEC(psi_vec),NV_VEC(A),flux;
   real U0,V0,W0,U1,V1,W1;
   cell_t c0,c1;
   Thread *t0,*t1;
   c0=F_C0(f,t);
   t0=F_C0_THREAD(f,t);
   F_AREA(A,f,t);
   flux=0.0;
   c1=-1;
   t1=NULL;
  
   if(BOUNDARY_FACE_THREAD_P(t))
     {
          real dens;
                  if (NNULLP(THREAD_STORAGE(t,SV_DENSITY)))
                          dens=F_R(f,t);
                  else
                          dens=C_R(c0,t0);
          U0=F_U(f,t);
                  V0=F_V(f,t);
                  W0=(F_W(f,t)+0.3);
              NV_DS(psi_vec,=,U0,V0,W0,*,dens);
              flux=NV_DOT(psi_vec,A);
     }
   else
     {
              c1=F_C1(f,t);
              t1=F_C1_THREAD(f,t);
                  U0=C_U(c0,t0);
                  V0=C_V(c0,t0);
                  W0=(C_W(c0,t0)+0.3);
                  U1=C_U(c1,t1);
                  V1=C_V(c1,t1);
                  W1=(C_W(c1,t1)+0.3);
              NV_DS(psi_vec,=,U0,V0,W0,*,C_R(c0,t0));
                  NV_DS(psi_vec,+=,U1,V1,W1,*,C_R(c1,t1));   
          flux=NV_DOT(psi_vec,A)/2.0;
     }
   return flux;
}
这两种方法是不是一样的呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhougaozhao

新虫 (初入文坛)

请问您解决这个问题了么
2楼2017-03-19 16:17:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ljzzhet 的主题更新
信息提示
请填处理意见