UDF 提取指定線上隨時間變化的物理量

2022-07-01 13:45:09 字數 2335 閱讀 8709

fluent

版本:fluent 19.0

visual studio

版本:visual studio 2013

有時候我們想要實現一些功能,比如:我們在使用

fluent

進行瞬態計算的時候,想要獲取某條線上的物理量隨時間的變化,如果我們直接用

udf去輸出當然是可以的,但是實現起來難度比較大,而

cfd-post

實現這些功能相對比較容易,難道要我們保留所有的結果,最後再在

cfd-post

裡面慢慢處理?當然有其他的解決辦法,我們可以使用

python

編寫乙個模組,用來呼叫

cfd-post

獲取該條線段上的物理量並且匯出為檔案,最後刪除

cas和

dat檔案以節省儲存空間。我們從

udf當中指定每個時間步調用該

python

模組一次,從而實現指定功能。

python

模組的**如下

(存為名為:「

data.py

」檔案)

需在vs

當中編譯該

udf,可參考我前面的:

《在visual studio

中直接編譯

fluent

的udf

的總結(序列)

》《在visual studio

中直接編譯

fluent

的udf

的總結(並行)

》在vs當中需要新增

python

的庫和包含

python

的標頭檔案

首先需要安裝

python

,我安裝的是

然後我們在

ansys19_3ddp_host

專案當(

檔案:源

.cpp)

中編寫如下**:

在ansys19_3ddp_node

專案當(

檔案:源

.cpp)

中編寫如下**:

至於cfd-post

的session

檔案,自己在

cfd-post

當中事先錄製乙個即可,這裡就不多講了。

算例**於:

我們每次取管道中心軸線的速度,取

10個點

時間步長:

0.001

,時間步:10步

注意:需要設定自動儲存,務必按照下圖設定

最後結果:

至於為什麼我設定的

10個時間步資料卻只儲存了

9個?是因為最後儲存結果以後計算終止,沒有再呼叫

define_execute_at_end

巨集了,我們可以在

define_on_demand

再呼叫一次前面的

python

模組從手動完成全部的資料。

完整vs

專案檔案和

fluent

算例檔案:

鏈結:

提取碼: kmxw

linux提取指定行至指定位置

bin csh f if f errorlog.rpt then rm rf errorlog.rpt endif ls log loglst.lst 將log檔案寫到指定檔案 loop execute set n wc l loglst.lst 得到log檔案個數 行數 echo n set i ...

linux 提取指定的列

提取name.txt 檔案中的最後一列中以 分割的第二列 awk 符擷取命令 awk f t name.txt awk f res.txt其中 f 表示分割符,nf表示最後一列,nf 1 表示倒數第二列 2表示第二列 0表示全部,1表示第一列 把上一步的資料和name.txt檔案合併生成乙個新的檔案...

C WPF 實現滑鼠固定在指定範圍內運動

原文 c wpf 實現滑鼠固定在指定範圍內運動 需要實現帶有三個螢幕,三個螢幕分別顯示窗體,但滑鼠只能在主窗體中運動,不能移動到其他的兩個附屏中。具體實現使用的是user32.dll下的getwindowrect int hwnd,ref rect lprect 函式。clipcursor,函式名。...