24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1238  |  回复: 7

狸猫莹光

新虫 (初入文坛)

[求助] 气液两相流UDF出现fatal error

气液是逆流的,液体向下,气体向上~~~采用欧拉模型~~
在构件内部的几个面上使用UDF,只允许液体通过,不允许气体通过~~
UDF如下:
#include "udf.h"
#include "sg.h"
#include "sg_mphase.h"
#include "flow.h"
#include "mem.h"
#include "metric.h"
DEFINE_SOURCE(degassing_source, cell, thread, dS, eqn)
{
real source;
Thread *tm = THREAD_SUPER_THREAD(thread);
source = -C_R(cell,thread)*C_VOF(cell,thread)/CURRENT_TIMESTEP ;
C_UDMI(cell,tm,0) = source;
dS[eqn] = -C_R(cell,thread)/CURRENT_TIMESTEP;
return source;
}

DEFINE_SOURCE(x_prim_recoil, cell, tp, dS, eqn)
{
real source;
Thread *tm = THREAD_SUPER_THREAD(tp);
Thread *ts;
ts = THREAD_SUB_THREAD(tm,1);
source = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP*C_U(cell,tp) ;
dS[eqn] = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP ;
return source;
}


DEFINE_SOURCE(x_sec_recoil, cell, ts, dS, eqn)
{
real source;
Thread *tm = THREAD_SUPER_THREAD(ts);
source = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP*C_U(cell,ts) ;
dS[eqn] = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP ;
return source;
}

DEFINE_SOURCE(y_prim_recoil, cell, tp, dS, eqn)
{
real source;
Thread *tm = THREAD_SUPER_THREAD(tp);
Thread *ts;
ts = THREAD_SUB_THREAD(tm,1);
source = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP*C_V(cell,tp) ;
dS[eqn] = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP ;
return source;
}


DEFINE_SOURCE(y_sec_recoil, cell, ts, dS, eqn)
{
real source;
Thread *tm = THREAD_SUPER_THREAD(ts);
source = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP*C_V(cell,ts) ;
dS[eqn] = -C_R(cell,ts)*C_VOF(cell,ts)/CURRENT_TIMESTEP ;
return source;
}
编译的时候没问题,但初始化的时候报错了……
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.
请各位高手们帮帮忙,看一下,是哪里的问题~~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

詹水清

金虫 (正式写手)

没有定义多余的内存空间,你在fluent里面设置下看看,就可以了
科研你行的加油
2楼2012-12-10 16:30:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与 2012-12-10 21:12:08
狸猫莹光: 金币+1, ★★★很有帮助 2012-12-11 15:24:25
狸猫莹光: 金币+2, ★★★很有帮助 2012-12-16 16:34:39
C_UDMI(cell,tm,0) = source;   你有这么一句。
   你设置用户自定义内存空间了吗?
3楼2012-12-10 16:57:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狸猫莹光

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by fangdian at 2012-12-10 16:57:25
C_UDMI(cell,tm,0) = source;   你有这么一句。
   你设置用户自定义内存空间了吗?

谢谢哈,还想问一下,我现在有两个UDF,是不是要定义两个内存空间呢?
4楼2012-12-11 15:28:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狸猫莹光

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 詹水清 at 2012-12-10 16:30:15
没有定义多余的内存空间,你在fluent里面设置下看看,就可以了

谢谢了,不过你这不是应助贴没有办法给你评分额~~
还想问下,现在这个UDF是脱气,它可以用作脱水么?
5楼2012-12-11 15:31:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狸猫莹光

新虫 (初入文坛)

定义内存以后,初始化可以了,但运行时又报错了
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: ()
6楼2012-12-11 16:00:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)


xiegangmai: 金币+1, 谢谢参与 2012-12-11 20:36:53
dS[eqn] = -C_R(cell,thread)/CURRENT_TIMESTEP;
  如果刚开始算的话,时间步是不是为0,这样就除0 了?
    -------这个我不是很肯定
7楼2012-12-11 20:26:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狸猫莹光

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by fangdian at 2012-12-11 20:26:08
dS = -C_R(cell,thread)/CURRENT_TIMESTEP;
  如果刚开始算的话,时间步是不是为0,这样就除0 了?
    -------这个我不是很肯定

好的,谢谢哈,我检查一下~~
8楼2012-12-16 16:33:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 狸猫莹光 的主题更新
信息提示
请填处理意见