| 查看: 1321 | 回复: 7 | ||
[求助]
关于UDF时间项问题求助
|
| 例如求解非稳态导热问题,其中热源项是温度+时间函数(即热源项是温度的分段函数,且与温度大于分段温度后经历的时间t有关)。问题为:由Q=F(T)*F(t),非稳态求解怎样记录单元格温度大于分段温度后所经历的时间t |
» 猜你喜欢
最失望的一年
已经有4人回复
存款400万可以在学校里躺平吗
已经有21人回复
拟解决的关键科学问题还要不要写
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有19人回复
请教限项目规定
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
推荐一本书
已经有13人回复
疑惑?
已经有5人回复
溴的反应液脱色
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
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













回复此楼