找回密码
 注册
查看: 1870|回复: 0

求助:interior面上的UDS值~(请高手帮忙看看,在线等)

[复制链接]
发表于 2012-3-25 18:47:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一.几何描述:左中右三个区域(ID 17,19,18),中间夹两个interior。

二. 问题:想取两个interior面上的UDS。后来查看帮助,得知UDS在边界上没有存储值,于是想获得临近节点上的UDS值。

三. 思路:1.找到interior 的thread (Get_Domain,Look_Thread)
                 2. 确定临近网格的thread (THREAD_T)
                3.取网格上的UDS值   (C_UDSI)

四.遇到问题:并没能按要求取得网格上的值。

五. 疑点:1.寻找interior的thread,需要先确定domain,可是interior两侧有两个domain,选哪个都可以吗?
          2. 选择一个domain之后,由面thread找cell thread的过程中,C0/C1两个cell thread是否都存在,还是只存在选定domain这一侧的?


请高手帮忙看看,谢谢~

/*UDF*/



DEFINE_DIFFUSIVITY(myuds_diffusivity,c,t,i)  
{
   Thread *sr,*rl,*src,*rlc;
   int a;
   real dif;
   cell_t c0;
   face_t f;
   real tall,tavesr,taverl;
   Domain *domain0,*domain1;
   domain0=Get_Domain(17);
   domain1=Get_Domain(18);
   sr=Lookup_Thread(domain0,29);    /*29为interior的ID*/
   rl=Lookup_Thread(domain1,30);    /*30为interior的ID*/
   src=THREAD_T0(sr);    /*cell thread*/
   rlc=THREAD_T0(rl);      /*cell thread*/
         a=0;
        tall=0.0;
        begin_c_loop(c0,src)      /*循环取小孔侧cell的UDS平均值*/
          {
                 a=a+1;
                 tall=tall+C_UDSI(c0,src,0);
                 C_UDMI(c0,src,2)=C_UDSI(c0,src,0);
          }
        end_c_loop(c0,src)
        tavesr=tall/a;
        tall=0.0;
        a=0;
        begin_c_loop(c0,rlc)       /*循环取大孔侧的UDS平均值*/
          {
                 a=a+1;
                 tall=tall+C_UDSI(c0,rlc,0);
            C_UDMI(c0,rlc,3)=C_UDSI(c0,rlc,0);
          }
        end_c_loop(c0,rlc)
        taverl=tall/a;
        dif=5.67*(pow(taverl/100,4)-pow(tavesr/100,4))*emissivity*sample_length/1000/(taverl-tavesr);  /*有效导热*/
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表