huashan520 发表于 2012-3-15 13:30:07

波浪模拟

基于边界造波法模拟波浪,二维流场,坐标系为x(0到20),y(-5到5),VOF模型,初始水位x=0处,左边界UDF定义入口速度,上边界压力入口,右边界压力出口,下边界WALL,可是一直模拟不出波浪,请大家指点,UDF如下
#include "udf.h"
real AA=1.0;
real TT=2.0;
real LL=6.2;

real kk=2.0*3.1415925/6.2;
real ww=2.0*3.1415925/2.0;
real h=5.0;




DEFINE_PROFILE(x_velocity,thread,index)
{
real x;
real xx;               
real y;
face_t f;
real u = 0;
realt = RP_Get_Real("flow-time");



begin_f_loop(f,thread)
    {
      F_CENTROID(x,f,thread);

      xx = x;

      y = x;
      if(y<(AA*cos(kk*xx-ww*t)))


      u=3.14*2.0*AA*cosh(kk*(y+h))*cos(kk*xx-ww*t)/TT/sin(kk*h);
   else u = 0.0;
F_PROFILE(f,thread,index) = u;


    }

end_f_loop(f,thread)
}

DEFINE_PROFILE(y_velocity,thread,index)
{
real x;            
real xx;
real y;
face_t f;
realv = 0;
realt = RP_Get_Real("flow-time");



begin_f_loop(f,thread)
    {
      F_CENTROID(x,f,thread);
      xx = x;

      y = x;
if(y<(AA*cos(kk*xx-ww*t)))

      v=3.14*2.0*AA*sinh(kk*(y+h))*sin(kk*xx-ww*t)/TT/sinh(kk*h);
else v = 0.0;
F_PROFILE(f,thread,index) = v;

    }

end_f_loop(f,thread)
}
DEFINE_PROFILE(voffactor,thread,index)

{
real x;
real xx;               
real y;
face_t f;
realt = RP_Get_Real("flow-time");


begin_f_loop(f,thread)
    {
      F_CENTROID(x,f,thread);
      xx=x;
      y = x;

      if(y<(AA*cos(kk*xx-ww*t)))

      F_PROFILE(f,thread,index) = 1.0;

      else F_PROFILE(f,thread,index) = 0.0;

    }

end_f_loop(f,thread)
}

huashan520 发表于 2012-3-15 15:10:19

波浪模拟

自己顶,求指点啊,着急~~~
页: [1]
查看完整版本: 波浪模拟