CyRhmU.jpeg
查看: 3884  |  回复: 11

尘积

银虫 (小有名气)

[交流] 【求助】fluent计算中,udf编译通过,初始化出错已有2人参与

麻烦达人老兄们救急,这个程序是用来定义出口处的压力的,编译成功,但是在边界条件里选中此UDF后,在初始化时报错,不知是何缘故,请各位不吝赐教,拜谢!
程序为:#include "udf.h"
DEFINE_PROFILE(pressure_outlet,thread,position)
{
  real x[ND_ND];
  real y;
  real a;
  face_t f;
  cell_t c;

  
  begin_f_loop(f,thread)
    {
       F_CENTROID(x,f,thread);
       y=x[1];
       a=F_U(f,thread);
       F_PROFILE(f,thread,position)=1000*9.81*(1-y/1000)-0.5*1000*a*a;
     }
   end_f_loop(f,thread)
}

错误提示为:
Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: ()
回复此楼

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

多相流UDF

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

onwardupward

金虫 (正式写手)

Dr.


小木虫: 金币+0.5, 给个红包,谢谢回帖
看看你们编译的UDF不难发现,粘度都是温度的函数,那么你们在进行计算的时候有没有打开能量方程?如果没打开那就打开试试,应该可以初始化成功。
onwardandupward
11楼2014-12-04 17:54:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

sghudng

铜虫 (小有名气)


robert2020(金币+1):多谢应助! 2010-07-16 18:39:29
尘积(金币+1): 2010-11-16 15:59:50
引用回帖:
Originally posted by 尘积 at 2010-07-16 14:41:36:
麻烦达人老兄们救急,这个程序是用来定义出口处的压力的,编译成功,但是在边界条件里选中此UDF后,在初始化时报错,不知是何缘故,请各位不吝赐教,拜谢!
程序为:#include "udf.h"
DEFINE_PROFILE ...

乍一看没啥问题啊……只知道cell_t c;这一行是多余的,根本没用到,你是面循环,又没用到相邻网格,要它干嘛
2楼2010-07-16 16:35:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

尘积

银虫 (小有名气)

引用回帖:
Originally posted by sghudng at 2010-07-16 16:35:36:

乍一看没啥问题啊……只知道cell_t c;这一行是多余的,根本没用到,你是面循环,又没用到相邻网格,要它干嘛

编译能通过 表明语法没错  就是在初始化是出错
3楼2010-07-16 22:48:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangj25

金虫 (正式写手)


robert2020(金币+1):多谢虫友应助!鼓励继续解答! 2010-09-06 18:56:51
尘积(金币+1): 2010-11-16 15:59:37
试了一下编辑可以通过:程序应该为
#include "udf.h"
DEFINE_PROFILE(pressure_outlet,thread,position)
{
  real x[ND_ND];
  real y;
  real a;
  face_t f;

  
  begin_f_loop(f,thread)
    {
       F_CENTROID(x,f,thread);
       y=x[1];
       a=F_U(f,thread);
       F_PROFILE(f,thread,position)=1000.*9.81*(1-y/1000.)-0.5*1000.*a*a;
     }
   end_f_loop(f,thread)
}
4楼2010-09-06 16:41:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingwuyan

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
我也遇到了这情况啊!lz大哥你就绝了没有,我是自定义的密度和粘度,编译没问题,初始化通不过,附上我的程序,求指导~
#include "udf.h"
#define TC 305.25
#define PC 7380000
#define W 0.225
#define R 8.314
#define tc 305.25
#define pc 7375000
#define w 0.225
#define r 8.314
#define pc1 73.75
#define dc 468
#define m 44.01
#define v0 150

DEFINE_PROPERTY(cell_density, cell, thread)
{
  real dd;
  real temp = C_T(cell, thread);
  real pres = C_P(cell, thread);
  real tr,k,a1,a2,a,b,a3,a4,a5,a6,b1,b2,b3,y1,y2,y3,x;
  tr = temp/TC;
  k = 0.37464+1.54226*W-0.26992*W*W;
  a1 = (1+k*(1-sqrt(tr)))*(1+k*(1-sqrt(tr)));
  a2 = 0.45724*R*R*TC*TC/PC;
  a = a1*a2;
  b=0.0778*R*TC/PC;
  a3=pres;
  a4=pres*b-R*temp;
  a5=a-3*pres*b*b-2*R*temp*b;
  a6=pres*b*b*b+R*temp*b*b-a*b;
  b1 = a4*a4-3*a3*a5;
  b2 = a4*a5-9*a3*a6;
  b3 = a5*a5-3*a4*a6;
  y1 = b1*a4+3*a3*(-b2+sqrt(b2*b2-4*b1*b3))/2;
  y2 = b1*a4+3*a3*(-b2-sqrt(b2*b2-4*b1*b3))/2;
  if (y1<0)
         {y3=-y1;}
           else
           {y3=y1;}
  x = (-a4-(pow(y3,0.33333)-pow(-y2,0.33333)))/(3*a3);
  dd =44/(1000*x);
  
  return dd;
}

DEFINE_PROPERTY(cell_viscosity, cell, thread)
{
  real v;
  real temp = C_T(cell, thread);
  real pres = C_P(cell, thread);
  real tr,k,a1,a2,a,b,a3,a4,a5,a6,b1,b2,b3,y1,y2,y3,x,dd,b4,b5,dr;
  tr=temp/tc;
  k=0.37464+1.54226*w-0.26992*w*w;
  a1=(1+k*(1-sqrt(tr)))*(1+k*(1-sqrt(tr)));
  a2=0.45724*r*r*tc*tc/pc;
  a=a1*a2;
  b=0.0778*r*tc/pc;
  a3=pres;
  a4=pres*b-r*temp;
  a5=a-3*pres*b*b-2*r*temp*b;
  a6=pres*b*b*b+r*temp*b*b-a*b;
     b1=a4*a4-3*a3*a5;
     b2=a4*a5-9*a3*a6;
     b3=a5*a5-3*a4*a6;
     y1=b1*a4+3*a3*(-b2+sqrt(b2*b2-4*b1*b3))/2;
     y2=b1*a4+3*a3*(-b2-sqrt(b2*b2-4*b1*b3))/2;
         if (y1<0)
         {y3=-y1;}
           else
           {y3=y1;}
         x=(-a4-(pow(y3,0.333333)-pow(-y2,0.333333)))/(3*a3);
     dd=44/(1000*x);
   b4=pow(tc,0.166666)/(sqrt(m)*pow(pc1,0.666666));
   dr=dd/dc;
   b5=1.0230+0.23364*dr+0.058533*pow(dr,2)-0.40758*(dr,3)+0.093324*pow(dr,4);
   v=(((pow(b5,4)-1)/b4)+v0)*0.000001;
  
  return v;
}
错误提示:
Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: ()
5楼2012-07-18 10:30:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leixiaobo713

银虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by xingwuyan at 2012-07-18 10:30:31
我也遇到了这情况啊!lz大哥你就绝了没有,我是自定义的密度和粘度,编译没问题,初始化通不过,附上我的程序,求指导~
#include "udf.h"
#define TC 305.25
#define PC 7380000
#define W 0.225
#define R 8 ...

顶一个,我也遇到这种问题啊,编译能通过,但是一运行就出现上面显示的这种错误,小白,遇到这种棘手问题,茫然!
天道酬勤!
6楼2013-09-04 11:23:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gengxiaowei

金虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by xingwuyan at 2012-07-18 10:30:31
我也遇到了这情况啊!lz大哥你就绝了没有,我是自定义的密度和粘度,编译没问题,初始化通不过,附上我的程序,求指导~
#include "udf.h"
#define TC 305.25
#define PC 7380000
#define W 0.225
#define R 8 ...

请问你的问题解决了吗?(设置密度随温度变化的udf连接没错,初始化出错)
7楼2013-09-08 14:51:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gengxiaowei

金虫 (初入文坛)

引用回帖:
6楼: Originally posted by leixiaobo713 at 2013-09-04 11:23:26
顶一个,我也遇到这种问题啊,编译能通过,但是一运行就出现上面显示的这种错误,小白,遇到这种棘手问题,茫然!...

你好你的问题解决了吗?我也遇到了同样的问题。。。。(改变物理参数,编译没错,初始化出错)
8楼2013-09-08 14:53:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

死天

专家顾问 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
先face_t f;

然后在real 定义
9楼2013-09-09 16:14:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pan1987cy

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
我也遇到了一样的问题,我要把回水口的温度加上2℃,然后赋值给入口。程序如下:
#include "udf.h"

DEFINE_PROFILE(inlet_t_1, inlet, index)
{
Domain *d=Get_Domain(1);
Thread *out = Lookup_Thread(d, 18);
face_t face;
real t_out=0.0, area_out=0.0;
real NV_VEC(area);
begin_f_loop(face, out)
    {
    F_AREA(area, face, out);
    t_out += F_T(face, out)*NV_MAG(area);
    area_out += NV_MAG(area);
    }
end_f_loop(face, out)
t_out = t_out/area_out+2.0;
begin_f_loop(face, inlet)
    {
    F_PROFILE(face, inlet, index) = t_out;
    }
end_f_loop(face, inlet)
}
然后设置边界条件的时候选中这个udf,就出现跟楼主一样的error,你是怎么解决的啊
10楼2013-12-12 12:05:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 尘积 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见