|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我的问题是:解释UDF成功没有任何的问题,可是设置边界条件完以后,初始化(solver—>initialization))有问题,提示如下:
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: ()
中间未画网格的,定义壁面温度T=-0.26
周围为绝热面,
顶部有一部分为罐底面,应用UDF定义热流量
Fluent中的设置步骤
1.
设置单位,温度为摄氏度,选中“能量方程”
2.
设置物性参数,导热系数改为0.1818
3.
设置边界条件
(a)bottom(罐底面)热流量选为UDF (注,我的bottom是在最上面的那个面的一部分,才cas里面可以看出)
(b)fuild中设定fixed value 速度设置为零
(c)周围的wall选为热流量为0
(d)阳极壁面选为temperature=-0.26
5.solution中只选enenry 方程 ,用一阶迎风格式
6.然后初始化,就出现这个问题了。
我在网上找到类似的问题,别人说是因为在UDF中用了F_T()来调用温度,开始的时候没有数据可用。所以出现这个问题,建议先迭代一次以后在设置UDF。可是不知什么原因,问题依旧。后来我就自己编了一个小的UDF来初始化bottom的温度,还是不行。
#include "udf.h"
#include<math.h>
DEFINE_PROFILE(currentdensity,thread,position)
{
double potential,icorr,iL,Ecorr,bc,ba;
double a,a1,a2,a3,ic,ia,iA;
face_t f;
Thread *thread;
icorr=1.53e-5;
Ecorr=-0.55;
bc=0.1;
iL=3.09e-3;
ba=0.1;
begin_f_loop(f,thread)
{
potential=-1*F_T(f,thread);
a1=-1*(potential-Ecorr)/bc;
a2=pow(10,a1);
a=icorr/iL*(1-a2);
ic=icorr*a2/(1-a);
a3=(potential-Ecorr)/ba;
ia=icorr*pow(10,a3);
iA=ic-ia;
F_PROFILE(f,thread,position)=-1*iA;
}
end_f_loop(f,thread)
}
DEFINE_INIT(my_init_function,domain)
{
face_t f;
Thread *f_thread=Lookup_Thread(domain,4);
Thread *cell_threads;
cell_t cell;
begin_f_loop(f,f_thread)
{
F_T(f,f_thread)=0.0;
}
end_f_loop(f,f_thread)
}
各位帮我看看那里出问题了,cas和UDF通过附件上传
|
|