| 查看: 1307 | 回复: 7 | |||
[求助]
关于UDF时间项问题求助
|
| 例如求解非稳态导热问题,其中热源项是温度+时间函数(即热源项是温度的分段函数,且与温度大于分段温度后经历的时间t有关)。问题为:由Q=F(T)*F(t),非稳态求解怎样记录单元格温度大于分段温度后所经历的时间t |
» 猜你喜欢
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
带资进组求博导收留
已经有10人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
需要合成515-64-0,50g,能接单的留言
已经有3人回复
中科院杭州医学所招收博士生一名(生物分析化学、药物递送)
已经有3人回复
临港实验室与上科大联培博士招生1名
已经有8人回复
想换工作。大多数高校都是 评职称时 认可5年内在原单位取得的成果吗?
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Fluent关于DPM模型UDF编程的求助
已经有4人回复
求助udf的输入输出
已经有16人回复
【求助】FLUENT UDF 气液两相流 汽蚀 汽化潜热(问题详见内容)
已经有21人回复
边界条件UDF求助
已经有4人回复
UDF添加动能源项,发现温度没什么变化
已经有20人回复
求助!!!我想要在fluent中针对一个面进行积分,那么UDF应该用什么宏函数?怎么用?
已经有5人回复
FLUENT源项UDF非稳态迭代的一个疑问请教
已经有8人回复
UDF源项的一个疑问
已经有14人回复
求助:UDF模型的编译问题
已经有15人回复
【求助】udf读取混合物密度失败、及平均流速读取?
已经有8人回复
【求助】求UDF高手帮忙看看我的问题
已经有18人回复
【求助】单机多核UDF怎么并行计算
已经有15人回复
【求助】Warning: incorrect cg motion UDF value on zone 35
已经有5人回复
【求助】fluent计算中,udf编译通过,初始化出错
已经有11人回复
【求助】物料属性可以用UDF修改吗
已经有8人回复
achilFes1990
木虫 (著名写手)
- 应助: 363 (硕士)
- 金币: 5307.5
- 红花: 21
- 帖子: 1400
- 在线: 197.1小时
- 虫号: 1115537
- 注册: 2010-10-07
- 性别: GG
- 专业: 海洋工程
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
ereklin: 金币+5, ★有帮助 2013-07-22 18:01:37
xiegangmai: 金币+2, 鼓励讨论交流! 2013-07-24 22:17:07
感谢参与,应助指数 +1
ereklin: 金币+5, ★有帮助 2013-07-22 18:01:37
xiegangmai: 金币+2, 鼓励讨论交流! 2013-07-24 22:17:07
|
我只知道当前时间的求解是用宏t=CURRENT_TIME,如果你在模拟之前能确定单元格温度等于分段温度所经历时间的话,大于分段温度后所经历的时间只需用当前时间减去等于时间就好了。如果不能确定,是不是可以先模拟到两个温度相等的情形,然后记录下这个时间,后面就可以直接相减了。 我不太懂你这个问题,仅供参考。 [ 发自手机版 http://muchong.com/3g ] |

2楼2013-07-22 10:55:39
3楼2013-07-22 12:01:32
wildwolf00
金虫 (小有名气)
- 应助: 6 (幼儿园)
- 金币: 923.9
- 红花: 5
- 帖子: 180
- 在线: 57.7小时
- 虫号: 1897440
- 注册: 2012-07-17
- 专业: 工程热物理与能源利用
4楼2013-07-22 12:23:07
wudeshou
铁杆木虫 (正式写手)
- 应助: 8 (幼儿园)
- 金币: 8990.6
- 散金: 1100
- 红花: 5
- 帖子: 599
- 在线: 220.5小时
- 虫号: 900698
- 注册: 2009-11-11
- 性别: GG
- 专业: 工程热物理相关交叉领域
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
ereklin: 金币+20, ★有帮助 2013-07-22 18:01:57
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 22:17:25
感谢参与,应助指数 +1
ereklin: 金币+20, ★有帮助 2013-07-22 18:01:57
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 22:17:25
|
#include "udf.h" #define T0 0 #define T1 100 #define T2 200 #define T3 300 #define T4 400 real time DEFINE_SOURCE(xmom_source,c,t,dS,eqn) { real writetime[4]; int count[4] = {0}; if(C_T(c,t)>=T0 && count[0] == 0) { writetime[0] = CURRENT_TIME; count[0] = 1; } if(C_T(c,t)>T1 && C_T(c,t)<=T2 && count[1] == 0) { writetime[1] = CURRENT_TIME; count[1] = 1; } if(C_T(c,t)>T2 && C_T(c,t)<=T3 && count[2] == 0) { writetime[2] = CURRENT_TIME; count[2] = 1; } if(C_T(c,t)>T3 && C_T(c,t)<=T4 && count[3] == 0) { writetime[3] = CURRENT_TIME; count[3] = 1; } source = F(T)*F(t); dS[eqn] = 0.0; return source; } 这个结构可否? |

5楼2013-07-22 16:32:52
6楼2013-07-22 17:59:43
7楼2013-07-22 19:53:12
wudeshou
铁杆木虫 (正式写手)
- 应助: 8 (幼儿园)
- 金币: 8990.6
- 散金: 1100
- 红花: 5
- 帖子: 599
- 在线: 220.5小时
- 虫号: 900698
- 注册: 2009-11-11
- 性别: GG
- 专业: 工程热物理相关交叉领域
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
ereklin: 金币+370, ★★★★★最佳答案, 谢谢解答! 2013-07-23 10:27:32
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 20:46:58
ereklin: 金币+370, ★★★★★最佳答案, 谢谢解答! 2013-07-23 10:27:32
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 20:46:58
|
#include "udf.h" #define T0 0 #define T1 100 #define T2 200 #define T3 300 #define T4 400 #define CellNum 10000 //fluent 网格(cell)的个数 //fluent cell的结构体 typedef struct FLUENT_CELL_struct { int count[4]; real writetime[4]; }FLUENT_CELL; //定义fluent_cell FLUENT_CELL fluent_cell[CellNum]; fluent cell时间记录器初始化 void FLUENT_CELL_Initialize(void) { int i, n; cell_t c; Thread *t; Domain *d; d = Get_Domain(1); thread_loop_c(t,d) { begin_c_loop(c,t) { for(i=0; i<4; i++) { fluent_cell[c].count = 0; fluent_cell[c].writetime = 0.0; } } end_c_loop(c, t) } } //数据初始化 DEFINE_INIT(reck_time_init,d) { FLUENT_CELL_Initialize(); } //源项添加 DEFINE_SOURCE(heat_generate_source,c,t,dS,eqn) { if(C_T(c,t)>=T0 && count[0] == 0) { fluent_cell[c].writetime[0] = CURRENT_TIME; count[0] = 1; } if(C_T(c,t)>T1 && C_T(c,t)<=T2 && count[1] == 0) { fluent_cell[c].writetime[1] = CURRENT_TIME; count[1] = 1; } if(C_T(c,t)>T2 && C_T(c,t)<=T3 && count[2] == 0) { fluent_cell[c].writetime[2] = CURRENT_TIME; count[2] = 1; } if(C_T(c,t)>T3 && C_T(c,t)<=T4 && count[3] == 0) { fluent_cell[c].writetime[3] = CURRENT_TIME; count[3] = 1; } source = F(T)*F(t); dS[eqn] = 0.0; return source; } DEFINE_SOURCE(heat_generate_source,c,t,dS,eqn)里面有c,t(cell, thread)表示每次只计算一个单元的。 |

8楼2013-07-23 08:52:57







回复此楼