24小时热门版块排行榜    

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

yuzhuorong

新虫 (初入文坛)

[求助] Fluent中编写UDF之后无法初始化。。。 已有1人参与

本人有一个txt文件,第一列为位置坐标X(为动坐标X=x-ct),第二列为速度u,首先编写UDF,首先要导入txt,已知c的值,并令x=0(小写的x),得到t  vs   u的两组数,希望用此作为速度入口(时刻t时,速度为u),时间步长为0.01,由于数列t的变化都比0.01要小,所以在内部做了一个循环,得出在计算当时的FLOW_time 与t最接近时,的u的值作为速度。(不知道有没有表述清楚),udf编写如下,导入时没有出现错误,但是初始化的时候就会报错,金币不多,但还想请大神们帮帮忙
j#include "udf.h"
#include <math.h>
#include "mem.h"
#include "dynamesh_tools.h"
#define c 0.2024607   //  c为速度
DEFINE_PROFILE(x_velocity1, t, i)
{
  int n,min;
  real time;
  double x[501],u[501],ts[501],tss[501],b[10000];
  FILE *fd;
  face_t f;
  fd=fopen("x_and_u.txt","r";
  if(!fd)  
  printf("can't open file\n";
  n=0;
  while(!feof(fd))
  {   
   fscanf(fd,"%lf",&x[n++],&u[n++]);   // 读入 大写的X  和  u
  }
   fclose(fd);
  begin_f_loop(f,t)
{
   time=RP_Get_Real("flow-time";
   ts[n]=x[n]/c;                   //这里的ts代表说明中的t   X=x-ct
   for(n=0;500;n++) tss[n]=(ts[n]>time)?ts[n]-time:time-ts[n];  /////找出与time时刻最接近的t时刻,然后取用当时的u
   for(n=0;500;n++)  min=(b[n]<b[min])?i:min;
   F_PROFILE(f,t,i)=u[min];
         
  }
  end_f_loop(f,t)
}     


初始化会报错Error:
Fluent receivd fatal signal (ACCESS_VIOLATIN)
1Note exact events leading to error.
2Save case/date under new name.
3Exit program an restart to continue

ji
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

噬魂爱博博

新虫 (初入文坛)

在导入UDF之前初始化,初始化后再导入UDF试试,看能否计算
4楼2014-03-21 10:30:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yuzhuorong 的主题更新
信息提示
请填处理意见