24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2929  |  回复: 13

xuxia8495

银虫 (小有名气)


[交流] 使用DEFINE_INIT宏初始化两相体积

使用DEFINE_INIT宏初始化两相体积, 出现了问题:

如图所示:
我的模型是一个长方体,沿z轴方向将模型分成两部分,z向坐标范围为(-0.1,0.3)
0 初始化后,检查相分布,看第二相体积分数与定义的一致(图2),而查看第一相体积分布,发现整个区域全为第一相(图1)


UDF如下:
#include "udf.h"

DEFINE_INIT(my_init,d)
{
cell_t c;
Thread *t;
real xc[ND_ND];
Thread *pri_th,*sec_th;

thread_loop_c(t,d)
{
pri_th = THREAD_SUB_THREAD(t,0);
sec_th = THREAD_SUB_THREAD(t,1);
begin_c_loop_all (c,t)
{
C_CENTROID(xc,c,t);
if(xc[2]>=0&&xc[2]<=0.3)
{
C_VOF(c,sec_th)=1;
C_T(c,t)=1820;}
else
{
C_VOF(c,sec_th)=0;
C_T(c,t)=300;
}

}
end_c_loop_all(c,t)
}
}


请高手帮忙看看是哪出现问题了,谢谢!

图片1.png



图片2.png
回复此楼

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

fluent点滴学习 fluent软件学习

» 猜你喜欢

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

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

fangdian

木虫 (正式写手)


★ ★
xuxia8495(金币+1): 谢谢参与
xiegangmai: 金币+1, 谢谢参与 2012-11-12 19:36:57
实在不行的话,对基本相也初始化吧。
2楼2012-11-06 20:06:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

转石千仞

金虫 (正式写手)


★ ★ ★
xuxia8495(金币+1): 谢谢参与
xiegangmai: 金币+2, 谢谢参与 2012-11-07 20:19:01
这是我写的,你看看罢。
CODE:
#include "udf.h"   /*初始化体积分数与温度*/
DEFINE_INIT(my_init_function,domain)
{
Domain *d=Get_Domain(1);
Domain *sd=Get_Domain(2);
Domain *th=Get_Domain(3);
Thread *t;
cell_t c;
real xc[ND_ND];
thread_loop_c(t,d)
        {
                begin_c_loop(c,t)
                {
                        C_CENTROID(xc,c,t);
                        if(xc[1]<0.5)
                        C_T(c,t)=400.;
                        else
                        C_T(c,t)=300.;
                }
                end_c_loop(c,thread)
        }
thread_loop_c(t,sd)
        {
                begin_c_loop(c,t)
                {
                        C_CENTROID(xc,c,t);
                        if(xc[1]<1.5)
                        C_VOF(c,t)=0.;
                        else
                        C_VOF(c,t)=1.;
                }
                end_c_loop(c,thread)
        }
}

» 本帖已获得的红花(最新10朵)

3楼2012-11-07 08:39:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

转石千仞

金虫 (正式写手)


★ ★
xiegangmai: 金币+2, 辛苦了! 2012-11-07 20:19:10
你的问题好像是:在混合域中循环多相线的问题,这个要用到特殊的宏,好像是:
mp_thread_loop_c
具体的你要自己去看了。
你可以画网格时定义区域,再patch值,也非常方便,后处理也好做些。
4楼2012-11-07 08:44:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuxia8495

银虫 (小有名气)


送鲜花一朵
引用回帖:
3楼: Originally posted by 转石千仞 at 2012-11-07 08:39:45
这是我写的,你看看罢。
#include "udf.h"   /*初始化体积分数与温度*/
DEFINE_INIT(my_init_function,domain)
{
Domain *d=Get_Domain(1);
Domain *sd=Get_Domain(2);
Domain *th=Get_Domain(3);
...

非常谢谢!
我运行了一下这种写法,发现问题并没有解决:检查相分布,查看基本相体积分数,与定义的一致,而查看第二相体积分布,发现整个区域全为第二相-------看来需要分别定义基本相和第二项
5楼2012-11-08 09:37:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuxia8495

银虫 (小有名气)


#include "udf.h"

DEFINE_INIT(my_init,d)
{
cell_t c;
Thread *t;
real xc[ND_ND];
Thread *pri_th,*sec_th;

thread_loop_c(t,d)
{
pri_th = THREAD_SUB_THREAD(t,0);
sec_th = THREAD_SUB_THREAD(t,1);
begin_c_loop_all (c,t)
{
C_CENTROID(xc,c,t);
if(xc[2]>=0&&xc[2]<=0.3)
{
C_VOF(c,pri_th)=0;
C_T(c,t)=1820;}
else
{
C_VOF(c,pri_th)=1;
C_T(c,t)=300;
}

}
end_c_loop_all(c,t)
}
}
6楼2012-11-08 09:46:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuxia8495

银虫 (小有名气)


★ ★
xiegangmai: 金币+2, 鼓励讨论交流 2012-11-08 19:39:00
这样修改一下就可以了

#include "udf.h"

DEFINE_INIT(my_init,d)
{
cell_t c;
Thread *t;
real xc[ND_ND];
Thread *pri_th,*sec_th;

thread_loop_c(t,d)
{
pri_th = THREAD_SUB_THREAD(t,0);
sec_th = THREAD_SUB_THREAD(t,1);
begin_c_loop_all (c,t)
{
C_CENTROID(xc,c,t);
if(xc[2]>=0&&xc[2]<=0.3)
{
C_VOF(c,pri_th)=0;
C_T(c,t)=1820;}
else
{
C_VOF(c,pri_th)=1;
C_T(c,t)=300;
}

}
end_c_loop_all(c,t)
}
}
7楼2012-11-08 09:47:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

18662515085

银虫 (正式写手)


★ ★
xuxia8495(金币+1): 谢谢参与
xiegangmai: 金币+1, 谢谢参与 2012-11-12 19:37:26
建议你在划分网格的时候定义好区域
然后再FLUENT里面初始化以后,直接PATCH
没必要使用UDF定义
QQ:1442083080
8楼2012-11-09 07:34:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xuxia8495

银虫 (小有名气)


引用回帖:
8楼: Originally posted by 18662515085 at 2012-11-09 07:34:51
建议你在划分网格的时候定义好区域
然后再FLUENT里面初始化以后,直接PATCH
没必要使用UDF定义
QQ:1442083080

谢谢啊,感觉patch没有用UDF方便。。。
9楼2012-11-09 08:38:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bamboo_621

新虫 (初入文坛)


★ ★
xuxia8495(金币+1): 谢谢参与
xiegangmai: 金币+1, 谢谢参与! 2013-07-10 23:03:12
引用回帖:
9楼: Originally posted by xuxia8495 at 2012-11-09 08:38:12
谢谢啊,感觉patch没有用UDF方便。。。...

patch的话可以写个journal文件,每次计算之前导入journal文件就好了吧
10楼2013-07-10 15:31:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meiguimimi

银虫 (小有名气)



xuxia8495(金币+1): 谢谢参与
引用回帖:
10楼: Originally posted by bamboo_621 at 2013-07-10 15:31:41
patch的话可以写个journal文件,每次计算之前导入journal文件就好了吧...

请问,journal文件需要怎么编写呢?可否提供一个参考方向?
11楼2015-01-16 16:54:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

死天

专家顾问 (著名写手)



xuxia8495(金币+1): 谢谢参与
建议用patch ,不要用init,因为用UDF是和初始化一起工作,而Patch相当于算一步。只初始化的话,体积分数没有算,即各个相的体积分数之和为1,这步没有算。所以建议用patch
12楼2015-01-16 17:09:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

DGE旅行者

新虫 (小有名气)



xuxia8495(金币+1): 谢谢参与
引用回帖:
7楼: Originally posted by xuxia8495 at 2012-11-08 09:47:20
这样修改一下就可以了

#include "udf.h"

DEFINE_INIT(my_init,d)
{
cell_t c;
Thread *t;
real xc;
Thread *pri_th,*sec_th;

thread_loop_c(t,d)
{
pri_th = THREAD_SUB_THREAD(t,0);
s ...

这个还是不行吧
13楼2015-01-21 10:32:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

KEENWANG

新虫 (初入文坛)



xuxia8495(金币+1): 谢谢参与
楼主解决了吗?可以分享一下结果吗?
14楼2018-12-11 17:04:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xuxia8495 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见