24小时热门版块排行榜    

查看: 2978  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

pancard

铁虫 (小有名气)

[求助] VOF体积分数的梯度为什么为0呢??

分别使用如下两个UDF计算VOF中体积分数的梯度,两只情况下梯度值都是0?
请高手指教,UDF是否有什么问题?
cas文件及UDF在附件中。
UDF2:

#include "udf.h"  

DEFINE_ON_DEMAND(on_demand_calc)
{
   Domain *subdomain;
   /* declare domain pointer since it is not passed as an argument to the DEFINE macro  */
   Thread *cell_thread;
   cell_t cell;
   float a1,a2,x[2];
   subdomain=Get_Domain(2);   /* returns phase with ID=2 domain pointer£¬meanning primary phase*/
   /* Loop over all cell threads in the domain */
   thread_loop_c(cell_thread,subdomain)
   {
     /* Loop over all cells  */
     begin_c_loop(cell,cell_thread)
       {
        C_UDSI(cell,cell_thread,0)=C_VOF(cell,cell_thread);
                }
     end_c_loop(cell,cell_thread)
         begin_c_loop(cell,cell_thread)
       {
        C_CENTROID(x,cell,cell_thread);
                C_UDMI(cell,cell_thread,0)=NV_MAG(C_UDSI_G(cell,cell_thread,0));
                a1=C_VOF(cell,cell_thread);
                a2=C_UDMI(cell,cell_thread,0);
                printf("location:%f,%f,vof:%f,gradient:%f\n",x[0],x[1],a1,a2);      
       }
     end_c_loop(cell,cell_thread)
    }
}

      
UDF3:
#include "udf.h"
DEFINE_ON_DEMAND(grad)
{
  Domain *mixture_domain, *sub_domain;
  Thread *cell_thread;
  cell_t cell;
  int phase_domain_index;
  float a1,a2,x[2];
  mixture_domain=Get_Domain(1);
  
   sub_domain_loop(sub_domain,mixture_domain,phase_domain_index)
  {
     /* loop if primary phase  */
    /* if (DOMAIN_ID(sub_domain) == 2)     */  

     /* loop over all cell threads in the primary phase domain  */
     thread_loop_c(cell_thread,sub_domain)
     {
         /* loop over all cells in primary phase cell threads  */
         begin_c_loop_all(cell,cell_thread)
         {
          C_CENTROID(x,cell,cell_thread);
                  C_UDSI(cell,cell_thread,0)=C_VOF(cell,cell_thread);
                  C_UDMI(cell,cell_thread,0)=NV_MAG(C_UDSI_G(cell,cell_thread,0));
                  a1=C_VOF(cell,cell_thread);
                  a2=C_UDMI(cell,cell_thread,0);
                  printf("location:%f,%f,vof:%f,gradient:%f\n",x[0],x[1],a1,a2);            
         }
         end_c_loop_all(cell,cell_thread)
     }

   }
}
水-空气相分布
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : FLUENTWORK.rar
  • 2012-06-06 21:35:30, 35.79 K

» 收录本帖的淘帖专辑推荐

udf相关 传热传质

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

欢迎电磁仿真、焊接、快速成型的朋友们来交流
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pancard

铁虫 (小有名气)

发错地了,
欢迎电磁仿真、焊接、快速成型的朋友们来交流
6楼2012-06-07 16:20:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

gyctju

金虫 (正式写手)


臭水沟: 金币+1, 谢谢交流~~ 2012-06-07 19:22:06
看得出楼主的意图是用C_UDSI_G来求vof的梯度,用define_on_demand是用来做后处理吧,如果是,建议用tec来做
2楼2012-06-07 10:05:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pancard

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by gyctju at 2012-06-07 10:05:06
看得出楼主的意图是用C_UDSI_G来求vof的梯度,用define_on_demand是用来做后处理吧,如果是,建议用tec来做

并不是用来作后处理,主要是define_on_demand调用方便,用来调试啊。
欢迎电磁仿真、焊接、快速成型的朋友们来交流
4楼2012-06-07 14:56:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pancard

铁虫 (小有名气)

再顶起:
读了两年博,发现中国学术不行的最重要一点就是:导师不搞学术。
理由有:
1 学术不能全靠博士,学生是流水的兵,不会形成有效的积累;
2 没有积累,新来的博士都是从0开始,没有“巨人的肩膀”可站;
3 导师不搞学术,导师学术水平下降,从而导致外行(导师)领导内行(博士),瞎指挥。
欢迎电磁仿真、焊接、快速成型的朋友们来交流
5楼2012-06-07 16:19:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见