24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1321  |  回复: 4

b07988

金虫 (正式写手)

星期六可以休息

[求助] 瞬态只需要每个时间步长计算一次,用什么宏

目前,需要对网格的一些数据进行处理,如果采用DEFINE_ADJUST处理的话,则是每个迭代都运行一次,而每次迭代后,从网格中得到的数据结果都是一样的,浪费了大量的时间。请问,用什么宏或者方法可以让一个时间步长内只计算一次?

[ 来自科研家族 流体数值模拟 ]
回复此楼
先做最重要的事情,再做次重要的事情
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

★ ★
xiegangmai: 金币+2, 鼓励分享解决经验 2012-11-18 19:08:46
搞定了,help中刚好有一个例子。
CODE:
/********************************************************************** Example UDF that uses N_TIME ***********************************************************************/ static int last_ts = -1; /* Global variable. Time step is never <0 */ DEFINE_ADJUST(first_iter_only, domain) { int curr_ts; curr_ts = N_TIME; if (last_ts != curr_ts) { last_ts = curr_ts; /* things to be done only on first iteration of each time step can be put here */ } }

先做最重要的事情,再做次重要的事情
2楼2012-11-18 09:37:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

suichunjie

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by b07988 at 2012-11-18 09:37:23
搞定了,help中刚好有一个例子。
/********************************************************************** Example UDF that uses N_TIME ****************************************************************** ...

学习了~~~~~
3楼2012-11-18 10:49:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
b07988: 金币+2, 有帮助, 感谢参与 2012-11-18 16:33:01
xiegangmai: 金币+1, 谢谢参与 2012-11-20 21:54:12
如果是每步运算之后,可以
DEFINE_EXECUTE_AT_END
4楼2012-11-18 14:28:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

慕容凌馨

铁杆木虫 (小有名气)

使用DEFINE_EXECUTE_AT_END啊,这个是在每个时间步结束后进行计算的
5楼2012-11-20 18:14:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 b07988 的主题更新
信息提示
请填处理意见