找回密码
 注册
Simdroid-非首页
查看: 472|回复: 5

[分析实例] vof+相变

[复制链接]
发表于 2011-11-15 14:13:01 | 显示全部楼层 |阅读模式 来自 甘肃兰州
附件就不传了 今天在网上找了个 vof +相变的 udf 大家可以看看 案例就是 搜索就能发现 我只上传 UDF 吧
因为大家应该也关心udf 对吧

#include "udf.h"
#include "sg.h"
#include "sg_mphase.h"
#include "flow.h"
#include "mem.h"



/******************************************/
/* UDF for specifying an interfacail area density             */
/******************************************/


DEFINE_ADJUST(area_density, domain)
{
  Thread *t;
  Thread **pt;
  cell_t c;
  Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE);
  real voidx, voidy, voidz=0;
  
   
  {
  Alloc_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
  Scalar_Reconstruction(pDomain, SV_VOF,-1,SV_VOF_RG,NULL);
  Scalar_Derivatives(pDomain,SV_VOF,-1,SV_VOF_G,SV_VOF_RG,
             Vof_Deriv_Accumulate);
   }
               
   {
      Alloc_Storage_Vars(domain, SV_T_RG, SV_T_G,  SV_NULL);
      T_derivatives(domain);
      Free_Storage_Vars(domain, SV_T_RG, SV_NULL);
    }
            
      mp_thread_loop_c (t,domain,pt)
    if (FLUID_THREAD_P(t))
      {
        Thread *tp = pt[P_PHASE];

        begin_c_loop (c,t)
          {

#if RP_3D
    C_UDMI(c,t,0) = (C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+
    C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]+C_VOF_G(c,tp)[2]*C_T_G(c,t)[2]);
#endif

#if RP_2D
    C_UDMI(c,t,0) = (C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+
    C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]);
#endif

          }
          end_c_loop (c,t)
         }
         
Free_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
Free_Storage_Vars(domain, SV_T_G, SV_NULL);
}

DEFINE_SOURCE(gas, cell, thread, dS, eqn)
{

  real x[ND_ND];
  real source;
  Thread *tm = THREAD_SUPER_THREAD(thread);
  Thread **pt = THREAD_SUB_THREADS(tm);
   
  real Kl = C_K_L(cell, pt[1])*C_VOF(cell, pt[1]),
  Kg = C_K_L(cell, pt[0])*C_VOF(cell, pt[0]);
  real L = 1e5;

  source = (Kl+Kg)*C_UDMI(cell,tm,0) / L;
  

  
  C_UDMI(cell, tm, 1) = source;
  

  C_UDMI(cell, tm, 2) = -source*L;

  
  
  dS[eqn] =0;
  
  return source;
}

DEFINE_SOURCE(liquid, cell, thread, dS, eqn)
{
  real x[ND_ND];
  real source;
  Thread *tm = THREAD_SUPER_THREAD(thread);
  Thread **pt = THREAD_SUB_THREADS(tm);

  source = -C_UDMI(cell, tm, 1);
  
  dS[eqn] = 0;
  
  return source;
}

DEFINE_SOURCE(energy, cell, thread, dS, eqn)
{
  real x[ND_ND];
  real source;
  Thread *tm = thread;
  
  

  source = C_UDMI(cell, tm, 2);
  dS[eqn] = 0;
  
  return source;
}

/************************************************/
/* UDF for initializing flow field variables                           */
/************************************************/


DEFINE_INIT(my_init_function, domain)
{
  Thread *t;
  Thread **pt;
  Thread **st;
  cell_t c;
  Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE);
  Domain *sDomain = DOMAIN_SUB_DOMAIN(domain,S_PHASE);
  
  real xc[ND_ND], y, x;

      mp_thread_loop_c (t,domain,pt)
    if (FLUID_THREAD_P(t))
      {
        Thread *tp = pt[P_PHASE];

        begin_c_loop (c,t)
          {
     C_CENTROID(xc,c,t);
     x=xc[0];
     y=xc[1];
     
      if ( y < 0.00292 + 0.0006*cos(6.283*x/0.0778) )
      C_VOF(c,tp) = 1;
      else
      C_VOF(c,tp) = 0;

          }
          end_c_loop (c,t)
         }
         
               mp_thread_loop_c (t,domain,st)
    if (FLUID_THREAD_P(t))
      {
        Thread *sp = st[S_PHASE];

        begin_c_loop (c,t)
          {
     C_CENTROID(xc,c,t);
     x=xc[0];
     y=xc[1];
     
      if ( y < 0.00292 + 0.0006*cos(6.283*x/0.0778) )
      C_VOF(c,sp) = 0;
      else
      C_VOF(c,sp) = 1;

          }
          end_c_loop (c,t)
         }

}


发表于 2011-11-24 19:43:58 | 显示全部楼层 来自 北京
Simdroid开发平台
感谢楼主的无私
回复 不支持

使用道具 举报

发表于 2014-8-4 22:40:20 | 显示全部楼层 来自 黑龙江哈尔滨
好好研究一下。。。xiexielz
回复 不支持

使用道具 举报

发表于 2014-9-13 16:57:56 | 显示全部楼层 来自 陕西西安
多谢楼主的分享
回复 不支持

使用道具 举报

发表于 2014-10-28 08:57:59 | 显示全部楼层 来自 辽宁葫芦岛
太棒了,谢谢啊!
回复 不支持

使用道具 举报

发表于 2016-12-16 16:15:04 | 显示全部楼层 来自 江苏镇江
感谢楼主分享
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-8 08:35 , Processed in 0.033901 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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