最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Fluent UDF為所欲為的后門

2023-05-26 21:40 作者:Dearanwen  | 我要投稿

大家都知道,F(xiàn)luent UDF是基于C語言進(jìn)行編程的。


C語言數(shù)據(jù)類型主要有整型int、浮點(diǎn)型float、指針*、數(shù)組array[]、結(jié)構(gòu)體struct等。正常來說,既然UDF是以C語言進(jìn)行編程的,那么UDF中的數(shù)據(jù)類型也應(yīng)該是這幾種才對,而不能無中生有搞出其他數(shù)據(jù)類型來。



UDF常用的數(shù)據(jù)類型如下:



1. 實(shí)數(shù)(real):

實(shí)數(shù)是Fluent UDF中最常用的數(shù)據(jù)類型之一,用于存儲浮點(diǎn)數(shù)值。實(shí)數(shù)通常用于定義物理量,如速度、壓力、溫度等。具體是單精度還是雙精度,取決于Fluent軟件打開界面有沒有勾選雙精度。


2. cell_t:

cell_t是一個代表單元的整數(shù)據(jù)類型。在Fluent中,單元通常指的是三維空間中的體單元。cell_t類型用于訪問單元的幾何和物理特性。



#include "udf.h"


DEFINE_ON_DEMAND(cell_volume)

{

? ? Domain *domain;

? ? Thread *thread;

? ? cell_t c;


? ? domain = Get_Domain(1); /* 獲取計算域 */

? ? thread = Lookup_Thread(domain, 1); /* 獲取Thread */


? ? /* 遍歷單元并計算體積 */

? ? begin_c_loop(c, thread)

? ? ? ? real volume = C_VOLUME(c, thread);

? ? ? ? Message0("單元體積為: %lf ", volume);

? ? end_c_loop(c, thread)

}




3. face_t:

face_t是一個代表面的整數(shù)據(jù)類型。在Fluent中,面通常指的是單元的表面,也就是單元之間的接口。face_t類型用于訪問面的幾何和物理特性。



4. Thread:

Thread是ANSYS Fluent中的一個非常重要的結(jié)構(gòu)體數(shù)據(jù)類型。在Fluent UDF中,Thread經(jīng)常用于訪問單元和面,以及定義物理量和邊界條件等。


5. Domain:

Domain是一個代表整個計算域的結(jié)構(gòu)體數(shù)據(jù)類型。它包含了所有的Thread,每個Thread又包含了一組單元和面。在Fluent UDF中,Domain經(jīng)常用于定義物理量、邊界條件和求解器選項(xiàng)等。例如,可以使用Domain中的函數(shù)來定義流體的初始條件和邊界條件。





盡管UDF使用如cell_t等特殊字符來聲明變量,但是其本質(zhì)還是C語言常用的數(shù)據(jù)類型。


比如上面提到的Thread和Domain都是結(jié)構(gòu)體類型,其中可能包含很多數(shù)據(jù)變量,如cell,face等


而比較有意思的是cell_t和face_t數(shù)據(jù)類型,cell_t可以用來聲明網(wǎng)格cell,face_t用來聲明face,但是他們竟然是整型變量!?。?!


這引出來很多有意思的問題:


1. 既然cell_t聲明的是整型變量,那聲明語句cell_t c中的c就是一個整數(shù),根本不是什么特別神秘的網(wǎng)格,其實(shí)就是一個整型變量。


?2. begin_c_loop(c, thread)這個語句什么意思??循環(huán)遍歷網(wǎng)格,如果c是一個整型變量,那么其實(shí)這個語句就類似于for循環(huán),而其中的c只是循環(huán)變量。



begin_c_loop_int(c, t)

{

????Message("?c=%d??", ?c);

????C_UDMI(c, t, 0) =c;

}

end_c_loop_int_ext(c, t)


上面的代碼會輸出什么??c會從小到大輸出0,1,2,3······



3. UDF遍歷網(wǎng)格順序是什么??

之前測試過UDF遍歷網(wǎng)格的順序,也得出來了結(jié)論,現(xiàn)在看來是錯誤的。UDF遍歷網(wǎng)格的順序很簡單,就是c從小到大遍歷,既不按照x軸坐標(biāo),也不按照y軸坐標(biāo)




4. 每個網(wǎng)格都有一個編號,既然這樣,只要知道了特定網(wǎng)格的編號,使用UDF似乎可以違背任何物理規(guī)律,為所欲為????






公眾號:Fluent學(xué)習(xí)筆記。為了方便大家學(xué)習(xí)交流,我創(chuàng)建了QQ群:466988009,大家可以在其中討論相關(guān)的問題,同時我會將所有文章的源文件都放到QQ群中,還會放一些其它的學(xué)習(xí)文件。歡迎大家加入。




Fluent UDF為所欲為的后門的評論 (共 條)

分享到微博請遵守國家法律
南平市| 麦盖提县| 章丘市| 凌源市| 龙州县| 贡觉县| 铜山县| 重庆市| 岚皋县| 大洼县| 隆林| 武乡县| 磐石市| 安丘市| 上思县| 宜宾市| 宜良县| 秦皇岛市| 荃湾区| 泾阳县| 锦屏县| 益阳市| 常山县| 三门县| 沭阳县| 兴城市| 方山县| 深圳市| 上林县| 临澧县| 东丰县| 丹东市| 甘谷县| 和龙市| 雅江县| 西乌| 兴国县| 靖边县| 乌兰浩特市| 应用必备| 泉州市|