| 查看: 1929 | 回复: 5 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
xuehu_syw银虫 (小有名气)
|
[求助]
UDF中的初始化宏 已有3人参与
|
||
|
目前遇到一个UDF初始化宏,其中的一些含义搞不清楚,希望有大神能帮个忙。 问题如下: 模型是一个二维竖直管道,想要在初始化的时候指定下面一段距离为气相,上面为液相。 代码如下: DEFINE_INIT(my_init_function, domain) { Thread *t; Thread **pt; Thread **st; cell_t c; Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE); Domain *sDomain = DOMAIN_SUB_DOMAIN(domain,S_PHASE); real xc[ND_ND], y, x; mp_thread_loop_c (t,domain,pt) if (FLUID_THREAD_P(t)) { Thread *tp = pt[P_PHASE]; begin_c_loop (c,t) { C_CENTROID(xc,c,t); x=xc[0]; y=xc[1]; if ( y < 0.5) C_VOF(c,tp) = 0; else C_VOF(c,tp) = 1; } end_c_loop (c,t) } mp_thread_loop_c (t,domain,st) if (FLUID_THREAD_P(t)) { Thread *sp = st[S_PHASE]; begin_c_loop (c,t) { C_CENTROID(xc,c,t); x=xc[0]; y=xc[1]; if ( y < 0.5 ) C_VOF(c,sp) = 1; else C_VOF(c,sp) = 0; } end_c_loop (c,t) } } 现在不明白的是: 1.为什么要用两个 Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE); Domain *sDomain = DOMAIN_SUB_DOMAIN(domain,S_PHASE); 2.以及问什么要用两个 mp_thread_loop_c循环 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有11人回复
救命帖
已经有5人回复
限项规定
已经有5人回复
为什么nbs上溴 没有产物点出现呢
已经有9人回复
招博士
已经有3人回复
存款400万可以在学校里躺平吗
已经有35人回复
最失望的一年
已经有18人回复
求推荐博导
已经有4人回复
求推荐英文EI期刊
已经有5人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求助:Fluent中每一步加载随温度变化的热源UDF 该如何编写?
已经有5人回复
如何将一个实时计算得到的值有效作用于一个源项中
已经有1人回复
udf编程通过,但是在FLUENT中运行出错,麻烦udf高手帮忙看看
已经有4人回复
xuehu_syw
银虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1116.8
- 红花: 1
- 帖子: 113
- 在线: 21.2小时
- 虫号: 4258335
- 注册: 2015-12-01
- 专业: 工程热物理与能源利用
4楼2016-10-16 21:26:55
dai26520
专家顾问 (著名写手)
-

专家经验: +219 - 仿真EPI: 1
- 应助: 224 (大学生)
- 金币: 4097
- 散金: 4143
- 红花: 107
- 帖子: 1850
- 在线: 529.6小时
- 虫号: 1619980
- 注册: 2012-02-16
- 专业: 高分子合成化学
- 管辖: 仿真模拟

2楼2016-10-16 16:06:08
xuehu_syw
银虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1116.8
- 红花: 1
- 帖子: 113
- 在线: 21.2小时
- 虫号: 4258335
- 注册: 2015-12-01
- 专业: 工程热物理与能源利用
3楼2016-10-16 16:11:15
【答案】应助回帖
感谢参与,应助指数 +1
|
1、Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE); Domain *sDomain = DOMAIN_SUB_DOMAIN(domain,S_PHASE); 下面的程序没有用到pDomain和 sDomain,看不出有无必要定义主相和次相的domain指针。 2、下面两个mp_thread_loop_c你的理解应该是正确的 我觉得也没有必要写两个,直接合并成一个应该也可以 mp_thread_loop_c (t,domain,pt) if (FLUID_THREAD_P(t)) { Thread *tp = pt[P_PHASE]; Thread *sp = st[S_PHASE]; begin_c_loop (c,t) { 。。。。。 if ( y < 0.5 ) C_VOF(c,sp) = 1; C_VOF(c,tp) = 0; else 。。。。。 } |
5楼2016-10-17 17:08:23













回复此楼