24小时热门版块排行榜    

查看: 515  |  回复: 0

18428346586

铁虫 (初入文坛)

[求助] 动网格UDF出错

FLUENT并行运算导入udf之后,动网格预览就出现如下错误提示:received a fatal signal (Segmentation fault),请问为什么?
#include"udf.h"
#include"dynamesh_tools.h"
#define R 90.01
#define r 82
#define e 8
#define w 22.96
static real F(real time,real x,real y)
{
real alpha,a,b,c;
alpha=w*time;
a=1+pow(y/x,2);
b=-2*e*(cos(alpha)+sin(alpha)*y/x);
c=e*e-r*r;
if(x>0)
  {
   return sqrt(pow((-b+sqrt(b*b-4*a*c))/(2*a),2)+pow((-b+sqrt(b*b-4*a*c))/(2*a)*(y/x),2));
   }
  else if(x=0)
  { return sqrt(r*r-e*sin(alpha)*e*sin(alpha))-e*sin(alpha);  }
  else
  {
   return sqrt(pow((-b-sqrt(b*b-4*a*c))/(2*a),2)+pow((-b-sqrt(b*b-4*a*c))/(2*a)*(y/x),2));
   }
}
DEFINE_GRID_MOTION(motion,domain,dt,time,dtime)
{
Thread *tf=DT_THREAD((Dynamic_Thread*)dt);
face_t f;
Node *v;
real x,y,z;
int n;
SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));
begin_f_loop(f,tf)
{
  f_node_loop(f,tf,n);
  {
   v=F_NODE(f,tf,n);
   x=NODE_X(v);
   y=NODE_Y(v);
   z=NODE_Z(v);
   if(NODE_POS_NEED_UPDATE(v))
   {
    NODE_POS_NEED_UPDATE(v);
    NODE_X(v)=(R-(R-F(time+dtime,x,y))/(R-F(time,x,y))*(R-sqrt(x*x+y*y)))*x/sqrt(x*x+y*y);
    NODE_X(v)=(R-(R-F(time+dtime,x,y))/(R-F(time,x,y))*(R-sqrt(x*x+y*y)))*y/sqrt(x*x+y*y);
    NODE_Z(v)=z;
    }
   }
  }
end_f_loop(f,tf);
}
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 18428346586 的主题更新
信息提示
请填处理意见