DEFINE_DELTAT宏

01— 概述


DEFINE_DELTAT是一個通用的宏,它可以用來控制瞬態計算中時間步長的大小。注意,只有在ANSYS FLUENT的Run Calculation task頁面的Time Stepping Method下拉列表中選擇了Adaptive,才可以使用這個宏。


02— 用法


DEFINE_DELTAT (name,d)

DEFINE_DELTAT有兩個參數: name和d。name是UDF的名字,domain通過ANSYS FLUENT求解器傳遞到UDF,而UDF將需要計算物理時間步長的實際值并將其返回到求解程序。

函數返回值:real。

03— 示例


下面這個名為mydeltat的UDF是一個簡單的函數,它展示了如何使用DEFINE_DELTAT來更改模擬中時間步長的值。首先,CURRENT_TIME用于獲取當前模擬時間的值(賦給變量flow_time)。然后,對于計算的前0.5秒,設置時間步長0.1。對于模擬的其余部分,將時間步長設置為0.2。然后將時間步長變量返回到求解器。源代碼如下:

/*********************************************************************

UDF that changes the time step value for a time-dependent solution

**********************************************************************/

#include "udf.h"

DEFINE_DELTAT(mydeltat,d)

{

  real time_step;

  real flow_time = CURRENT_TIME;

  if (flow_time < 0.5)

    time_step = 0.1;

  else

    time_step = 0.2;

  return time_step;

}


04— 計算結果


DEFINE_DELTAT宏的圖1

DEFINE_DELTAT宏的圖2

DEFINE_DELTAT宏的圖3

可以看到我總共設置了10時間步,前5步計算用了0.5s,后5步用了1s,說明前5步每步是0.1秒,后5步每部用了0.2秒。

案例文件關注微信公眾號:“CFD流”獲取。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

6