版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2021/3/101 用戶自定義函數(shù) UDF 2021/3/102 用戶自定義函數(shù) 用戶自定義函數(shù)或UDF 是用戶自編的程 序它可以被動態(tài)的連接到Fluent 求解器上 來提高求解器性能用戶自定義函數(shù)用C 語言編寫使用DEFINE 宏來定義UDFs 中 可使用標(biāo)準(zhǔn)C 語言的庫函數(shù)也可使用預(yù) 定義宏Fluent Inc.提供通過這些預(yù)定義宏 可以獲得Fluent 求解器得到的數(shù)據(jù) 2021/3/103 UDF分類與區(qū)別 UDFs 使用時(shí)可以被當(dāng)作解釋函數(shù)解釋函數(shù)或編譯函數(shù)編譯函數(shù) 解釋函數(shù)解釋函數(shù)在運(yùn)行時(shí)讀入并解釋 編譯編譯UDFs 則在編譯時(shí)被嵌入共享庫中并與 Fluent 連接 解釋解釋UD
2、Fs 用起來簡單但是有源代碼和速度方 面的限制不足。編譯型編譯型UDFs 執(zhí)行起來較快也 沒有源代碼限制但設(shè)置和使用較為麻煩 2021/3/104 UDF的用途滿足用戶個(gè)性化需求 邊界條件 材料性質(zhì) 表面與體積反應(yīng)速率 輸運(yùn)方程源項(xiàng) 用戶標(biāo)量輸運(yùn)方程(UDS) 調(diào)節(jié)每次迭代值 初始化流場 異步執(zhí)行 后處理改善 模型改進(jìn)(離散項(xiàng)模型,多相混合物模型,輻 射模型等) 2021/3/105 UDF舉例 上壁面溫度 300K 絕熱壁面 絕熱壁面 溫度: 315K 溫度分布 2021/3/106 Profile處理 (Temp point 26) (x 0.00E-03 2.00E-03 4.00E-0
3、3 6.00E-03 8.00E-03 1.00E-02 1.20E-02 1.40E-02 1.60E-02 1.80E-02 2.00E-02 2.20E-02 2.40E-02 2.60E-02 2.80E-02 3.00E-02 3.20E-02 3.40E-02 3.60E-02 3.80E-02 4.00E-02 4.20E-02 4.40E-02 4.60E-02 4.80E-02 5.00E-02 ) (y 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E
4、+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 0.00E+00 ) (t 3.49E+02 3.50E+02 3.50E+02 3.47E+02 3.46E+02 3.44E+02 3.41E+02 3.39E+02 3.36E+02 3.33E+02 3.31E+02 3.28E+02 3.26E+02 3.24E+02 3.22E+02 3.20E+02 3.1
5、9E+02 3.18E+02 3.17E+02 3.16E+02 3.16E+02 3.16E+02 3.15E+02 3.15E+02 3.15E+02 3.15E+02 ) 2021/3/107 Profile處理要點(diǎn) (和一般計(jì)算一樣設(shè)置求解器,模型等) DefineProfileRead (數(shù)據(jù)) DefineBoundaryCondition所需設(shè)置的 面ThermalTemperatureTemp t (和一般計(jì)算一樣,設(shè)置其它邊值條件、 初值條件及求解與結(jié)果檢查等) 2021/3/108 UDF處理溫度 #include udf.h DEFINE_PROFILE(bottom_t
6、emperature, thread, position) real xND_ND;/* this will hold the position vector */ real y; face_t f; begin_f_loop(f, thread) F_CENTROID(x,f,thread); y = x0; F_PROFILE(f,thread,position) = 315. + (y-.044)*(y-.044)/.044/.044*35.; end_f_loop(f, thread) 2021/3/109 UDF設(shè)置邊界溫度處理要點(diǎn) (和一般計(jì)算一樣設(shè)置求解器,模型等) Define
7、User definedFunctions (Interpreted Or Compiled)編譯 DefineBoundaryCondition所需設(shè)置的 面ThermalTemperatureBottom Temperature (和一般計(jì)算一樣,設(shè)置其它邊值條件、 初值條件及求解與結(jié)果檢查等) 2021/3/1010 側(cè)面與地面兩處UDF 2021/3/1011 定義一個(gè)以上UDF 上壁面溫度 300K 溫度拋物線分布 絕熱壁面 溫度: 315K 溫度分布 2021/3/1012 UDF編寫 #include udf.h DEFINE_PROFILE(bottom_temperature
8、, thread, position) 程序1 DEFINE_PROFILE(side_temperature, thread, position) 程序2 DEFINE_PROFILE(inlet_velocity,thread,position) 程序3。 2021/3/1013 邊界溫度分布 左側(cè)溫度分布 下面溫度分布 2021/3/1014 場溫度分布 2021/3/1015 UDF編寫用C語言 注釋 /* 這是劉某人講課示范用的程序 */ 數(shù)據(jù)類型數(shù)據(jù)類型 Int:整型 Long:長整型 Real:實(shí)數(shù) Float:浮點(diǎn)型 Double:雙精度 Char:字符型 UDF解釋函數(shù)在單精
9、度算法中定義real類型為float型,在雙精度算法宏定義 real為double型。因?yàn)榻忉尯瘮?shù)自動作如此分配,所以使用在UDF中聲明所有的 float和double數(shù)據(jù)變量時(shí)使用real數(shù)據(jù)類型是很好的編程習(xí)慣。 2021/3/1016 局部變量局部變量 局部變量只用于單一的函數(shù)中。當(dāng)函數(shù) 調(diào)用時(shí),就被創(chuàng)建了,函數(shù)返回之后, 這個(gè)變量就不存在了,局部變量在函數(shù) 內(nèi)部(大括號內(nèi))聲明。在下面的例子 中,mu_lam和temp是局部變量。 2021/3/1017 DEFINE_PROPERTY(cell_viscosity, cell, thread) real mu_lam; real te
10、mp = C_T(cell, thread); if (temp 288.) mu_lam = 5.5e-3; else if (temp 286.) mu_lam = 143.2135 - 0.49725 * temp; else mu_lam = 1.; return mu_lam; 2021/3/1018 FLUENT求解過程中UDFs的先后順序 非 耦 合 求 解 器 2021/3/1019 耦 合 求 解 器 2021/3/1020 FLUENT 網(wǎng)格拓?fù)?單元(cell) 區(qū)域被分割成的控制容積 單元中心(cell center) FLUENT中場數(shù)據(jù)存儲的地方 面(face) 單
11、元(2D or 3D)的邊界 邊(edge) 面(3D)的邊界 節(jié)點(diǎn)(node) 網(wǎng)格點(diǎn) 單元線索(cell thread) 在其中分配了材料數(shù)據(jù)和源項(xiàng)的單元組 面線索(face thread) 在其中分配了邊界數(shù)據(jù) 的面組 節(jié)點(diǎn)線索(node thread) 節(jié)點(diǎn)組 區(qū)域(domain) 由網(wǎng)格定義的所有節(jié)點(diǎn)、面和單元線索的組 合 2021/3/1021 2021/3/1022 Fluent數(shù)據(jù)類型 cell_t face_t Thread Node Domain cell_t是線索(thread)內(nèi)單元標(biāo)識符的數(shù)據(jù) 類型。它是一個(gè)識別給定線索內(nèi)單元的整數(shù)索 引。face_t是線索內(nèi)面標(biāo)識符
12、的數(shù)據(jù)類型。它 是一個(gè)識別給定線索內(nèi)面的整數(shù)索引。 Thread數(shù)據(jù)類型是FLUENT中的數(shù)據(jù)結(jié)構(gòu)。 它充當(dāng)了一個(gè)與它描述的單元或面的組合相關(guān) 的數(shù)據(jù)容器。 Node數(shù)據(jù)類型也是FLUENT中的數(shù)據(jù)結(jié)構(gòu)。 它充當(dāng)了一個(gè)與單元或面的拐角相關(guān)的數(shù)據(jù)容 器。 Domain數(shù)據(jù)類型代表了FLUENT中最高水平 的數(shù)據(jù)結(jié)構(gòu)。它充當(dāng)了一個(gè)與網(wǎng)格中所有節(jié)點(diǎn)、 面和單元線索組合相關(guān)的數(shù)據(jù)容器。 2021/3/1023 使用DEFINE Macros定義 UDF DEFINE_MACRONAME(udf_name, passed-in variables) 這里括號內(nèi)第一個(gè)自變量是你的UDF的名稱。 名稱自變量
13、是情形敏感的必須用小寫字母小寫字母指定。 一旦函數(shù)被編譯(和連接),你為你的UDF選 擇的名字在FLUENT下拉列表中將變成可見的 和可選的。第二套輸入到DEFINE 宏的自變量 是從FLUENT求解器傳遞到你的函數(shù)的變量。 2021/3/1024 DEFINE_PROFILE(inlet_x_velocity, thread, index) 用兩個(gè)從FLUENT傳遞到函數(shù)的變量thread 和index定義了名字為inlet_x_velocity的分布 函數(shù)。這些passed-in變量是邊界條件區(qū)域的 ID(作為指向thread的指針)而index確定了 被存儲的變量。一旦UDF被編譯,它的
14、名字 (例如,inlet_x_velocity)將在FLUENT適 當(dāng)?shù)倪吔鐥l件面板(例如,Velocity Inlet面 板)的下拉列表中變?yōu)榭梢姷暮涂蛇x的。 2021/3/1025 UDF源文件中包含udf.h文件 #include udf.h 通過在你的UDF源文件中包含udf.h,編譯過 程中所有的DEFINE宏的定義與源代碼一起被 包含進(jìn)來。udf.h文件也為所有的C庫函數(shù)頭文 件包含#include指示,與大部分頭文件是針對 Fluent提供的宏和函數(shù)是一樣的(例如, mem.h)。除非有另外的指示,沒必要在你 的UDF中個(gè)別地包含這些頭文件。 2021/3/1026 DEFINE
15、_PROFILE(inlet_x_velocity, thread, index) 定義在udf.h文件中為 #define DEFINE_PROFILE(name, t, i) void name(Thread *t, int i) 在編譯過程中延伸為 void inlet_x_velocity(Thread *thread, int index) 名字為inlet_x_velocity的函數(shù)不返回值由于它被聲明 為空的數(shù)據(jù)類型。 2021/3/1027 UDF任務(wù) 返回值 修改自變量 返回值和修改自變量 修改FLUENT變量(不能作為自變量傳遞) 寫信息到(或讀取信息從)case或data
16、文 件 2021/3/1028 返回值 DEFINE_PROPERTY返 回一個(gè)udf.h中指定的real 數(shù)據(jù)類型。兩個(gè)real變量 傳入函數(shù):通過函數(shù)計(jì)算 層流粘度mu_lam的值, 其是溫度C_T(cell,thread) 的函數(shù)。根據(jù)單元體溫度, 計(jì)算出mu_lam,在函數(shù) 結(jié)尾,mu_lam值被返回。 DEFINE_PROPERTY(cell_viscosity, cell, thread) real mu_lam; real temp = C_T(cell, thread); if (temp 288.) mu_lam = 5.5e-3; else if (temp 286.) m
17、u_lam = 143.2135 - 0.49725 * temp; else mu_lam = 1.; return mu_lam; 2021/3/1029 Function that Modify an Argument 判斷單元是否在多孔區(qū)域, 給多孔介質(zhì)區(qū)域定義反應(yīng) 速率; real指針變量rr是一個(gè)傳 遞 給 函 數(shù) 的 自 變 量 。 UDF使用廢棄操作符* 分 配反應(yīng)速率值給廢棄指針 *rr。指針rr指向的目標(biāo) 是設(shè)置反應(yīng)速率。通過這 個(gè)操作,存儲在內(nèi)存中這 個(gè)指針上的字符的地址被 改變了,不再是指針地址 本身 #include udf.h #define K1 2.0e-2 #
18、define K2 5. DEFINE_VR_RATE(user_rate, c, t, r, mole_weight, species_mf, rr, rr_t) real s1 = species_mf0; real mw1 = mole_weight0; if (FLUID_THREAD_P(t) else *rr = 0.; 2021/3/1030 返回一個(gè)值和修改一個(gè)自變量的函數(shù) DEFINE_SOURCE返 回一個(gè)在udf.h中指定 的數(shù)據(jù)類型。函數(shù)采 用自變量ds(它是數(shù) 組的名字)并設(shè)置由 eqn指定的元素為關(guān)于 速度(w_vel)導(dǎo)數(shù)的 值。(這是z動量方程 源項(xiàng))。這個(gè)函數(shù)
19、也 計(jì)算了旋轉(zhuǎn)速度源項(xiàng) 的值source,并返回 這個(gè)值到求解器。 #include udf.h #define OMEGA 50. /* rotational speed of swirler */ #define WEIGHT 1.e20 /* weighting coefficients in linearized equation */ DEFINE_SOURCE(user_swirl, cell, thread, dS, eqn) real w_vel, xND_ND, y, source; C_CENTROID(x, cell, thread); y = x1; w_vel = y
20、*OMEGA; /* linear w-velocity at the cell */ s o u r c e = W E I G H T * ( w _ v e l - C_WSWIRL(cell,thread); dSeqn = -WEIGHT; return source; 2021/3/1031 修改FLUENT變量的函數(shù) 函數(shù)由聲明變量f作為 face_t數(shù)據(jù)類型開始。一 維數(shù)組x和變量y是real 數(shù)據(jù)類型。循環(huán)宏用來在 區(qū)域中每個(gè)面上循環(huán)以創(chuàng) 建型線或數(shù)據(jù)數(shù)組。在每 個(gè)循環(huán)內(nèi), F_CENTROID為含有 index f的面輸出面質(zhì)心 的值(數(shù)組x),index f 在由thre
21、ad指向的線索 上。存儲在x1中的y坐 標(biāo)分配給變量y,它用于 計(jì)算x速度。然后這個(gè)值 分配給F_PROFILE, 它 使用整數(shù)index(由求解 器傳遞個(gè)它)來設(shè)置內(nèi)存 中面上的x速度值。 DEFINE_PROFILE(inlet_x_velocity, thread, index) real xND_ND; /* this will hold the position vector */ real y; face_t f; begin_f_loop(f, thread) F_CENTROID(x,f,thread); y = x1; F_PROFILE(f, thread, index)
22、= 20. - y*y/(.0745*.0745)*20.; end_f_loop(f, thread) 2021/3/1032 寫/讀Case或Data文件 在頂部整數(shù)kount被定義為全局的(由 于它被源代碼文件中的所有三個(gè)函數(shù) 使 用 ) 并 初 始 化 為 0 。 名 字 為 demo_calc的第一個(gè)函數(shù),使用 DEFINE_ADJUST 宏來定義。 在demo_calc中,kount的值每次迭 代 后 增 加 因 為 每 次 迭 代 調(diào) 用 DEFINE_ADJUST一次。 名字為writer的第二個(gè)函數(shù),使用 DEFINE_RW_FILE宏來定義。當(dāng)保存 數(shù)據(jù)文件時(shí),它指示FLU
23、ENT寫當(dāng)前 kount值到數(shù)據(jù)文件。 名字為reader的第三個(gè)函數(shù),當(dāng)讀取 數(shù)據(jù)文件時(shí),它指示FLUENT從這個(gè) 數(shù)據(jù)文件中讀取kount的值。 這三個(gè)函數(shù)一起工作如下。如果你運(yùn) 行10次迭代計(jì)算(kount將增加到值 為10)并保存這個(gè)數(shù)據(jù)文件,當(dāng)前 kount(10)的值被寫入你的數(shù)據(jù)文件。 如果你讀這個(gè)數(shù)據(jù)返回到FLUENT并 繼續(xù)計(jì)算,kount將以值10開始隨著 每次迭代繼續(xù)增加。 #include udf.h int kount = 0; /* define global variable kount */ DEFINE_ADJUST(demo_calc, domain) ko
24、unt+; printf(kount = %dn,kount); DEFINE_RW_FILE(writer, fp) printf(Writing UDF data to data file.n); fprintf(fp, %d,kount); /* write out kount to data file */ DEFINE_RW_FILE(reader, fp) printf(Reading UDF data from data file.n); fscanf(fp, %d, /* read kount from data file */ 2021/3/1033 DEFINE_ADJUS
25、T 功能及其使用方法 2021/3/1034 功能 DEFINE_ADJUST是一個(gè)用于調(diào)節(jié)和修改 FLUENT變量的通用宏。 可以用DEFINE_ADJUST來修改流動變量(如: 速度,壓力)并計(jì)算積分。 用來對某一標(biāo)量在整個(gè)流場上積分,然后在該 結(jié)果的基礎(chǔ)上調(diào)節(jié)邊界條件。 在每一步迭代中都可以執(zhí)行用 DEFINE_ADJUST定義的宏,并在解輸運(yùn)方程 之前的每一步迭代中調(diào)用它。 2021/3/1035 DEFINE_ADJUST ( name, d) DEFINE_ADJUST有兩個(gè)參變量:name和d。 name是你所指定的UDF的名字。當(dāng)你的UDF編 譯并連接時(shí),你的FLUENT圖形用
26、戶界面就會 顯示這個(gè)名字,此時(shí)你就可以選擇它了。d是 FLUENT解算器傳給你的UDF的變量。 D是一個(gè)指向區(qū)域的指針,調(diào)節(jié)函數(shù)被應(yīng)用于 這個(gè)區(qū)域上。區(qū)域變量提供了存取網(wǎng)格中所有 單元和表面的線程。對于多相流,由解算器傳 給函數(shù)的區(qū)域指針是混合層區(qū)域指針。 DEFINE_ADJUST函數(shù)不返回任何值給解算器。 2021/3/1036 DEFINE_INIT 用DEFINE_INIT宏來定義一組解的初始值。 DEFINE_INIT 完成和修補(bǔ)一樣的功能,只是它 以另一種方式UDF來完成。 每一次初始化時(shí)DEFINE_INIT函數(shù)都會被執(zhí)行 一次,并在解算器完成默認(rèn)的初始化之后立即 被調(diào)用。因?yàn)樗?/p>
27、是在流場初始化之后被調(diào)用的, 所以它最常用于設(shè)定流動變量的初值。 2021/3/1037 DEFINE_INIT ( name, d) DEFINE_INIT有兩個(gè)參變量:name和d。 name是你所指定的UDF的名字。當(dāng)你的 UDF編譯并連接時(shí),你的FLUENT圖形 用戶界面就會顯示這個(gè)名字,此時(shí)你就 可以選擇它了。 d是FLUENT解算器傳給你的UDF的變量 所作用的計(jì)算區(qū)域 2021/3/1038 DEFINE_INIT舉例舉例 下面的UDF名字是 my_init_func,它 在某一個(gè)解中初始 化了流動變量。在 解過程開始時(shí)它被 執(zhí)行了一次。它可 以作為解釋程序或 者編譯后的UDF在
28、 FLUENT中執(zhí)行。 #include udf.h DEFINE_INIT(my_init_function, domain) cell_t c; Thread *t; real xcND_ND; /* loop over all cell threads in the domain */ thread_loop_c (t,domain) /* loop over all cells */ begin_c_loop_all (c,t) C_CENTROID(xc,c,t); if (sqrt(ND_SUM(pow(xc0 - 0.5,2.), pow(xc1 - 0.5,2.), pow(x
29、c2 - 0.5,2.) 0.25) C_T(c,t) = 400.; else C_T(c,t) = 300.; end_c_loop_all (c,t) 2021/3/1039 DEFINE_ON_DEMAND #include udf.h DEFINE_ON_DEMAND(on_demand_calc) Domain *d; /* declare domain pointer since it is not passed a */ /* argument to DEFINE macro */ real tavg = 0.; real tmax = 0.; real tmin = 0.;
30、real temp,volume,vol_tot; Thread *t; cell_t c; d = Get_Domain(1); /* Get the domain using Fluent utility */ /* Loop over all cell threads in the domain */ thread_loop_c(t,d) /* Compute max, min, volume-averaged temperature */ /* Loop over all cells */ begin_c_loop(c,t) volume = C_VOLUME(c,t); /* get
31、 cell volume */ temp = C_T(c,t); /* get cell temperature */ if (temp tmax | tmax = 0.) tmax = temp; vol_tot += volume; tavg += temp*volume; end_c_loop(c,t) tavg /= vol_tot; printf(n Tmin = %g Tmax = %g Tavg = %gn,tmin,tmax,tavg); /* Compute temperature function and store in user-defined memory*/ /*(
32、location index 0) */ begin_c_loop(c,t) temp = C_T(c,t); C_UDMI(c,t,0) = (temp-tmin)/(tmax-tmin); end_c_loop(c,t) 2021/3/1040 DEFINE DEFINE_DELTAT DEFINE_DIFFUSIVITY DEFINE_HEAT_FLUX DEFINE_NOX_RATE DEFINE_PROFILE DEFINE_PROPERTY DEFINE_SCAT_PHASE_FUNC DEFINE_SOURCE DEFINE_SR_RATE DEFINE_TURB_PREMIX_
33、SOURCE DEFINE_TURBULENT_VISCOSITY DEFINE_UDS_FLUX DEFINE_UDS_UNSTEADY DEFINE_VR_RATE 2021/3/1041 提取Fluent中變量值 C_T(c,t)cell t c, Thread *t 溫度 C_P(c,t)cell t c, Thread *t 壓力 C_U(c,t)cell t c, Thread *t u 方向的速度 C_V(c,t)cell t c, Thread *t v方向的速度 C_W(c,t)cell t c, Thread *t w方向的速度 C_H(c,t)cell t c, Thre
34、ad *t 焓 C_YI(c,t,i) cell t c, Thread *t, int i 物質(zhì)質(zhì)量分?jǐn)?shù) C_K(c,t)cell t c, Thread *t 湍流運(yùn)動能 C_D(c,t)cell t c, Thread *t 耗散率 2021/3/1042 速度導(dǎo)數(shù) 名稱(參數(shù))名稱(參數(shù))參數(shù)類型參數(shù)類型返回值返回值 C DUDX(c,t) cell t c, Thread *tvelocity derivative C DUDY(c,t) cell t c, Thread *tvelocity derivative C DUDZ(c,t) cell t c, Thread *tvel
35、ocity derivative C DVDX(c,t) cell t c, Thread *tvelocity derivative C DVDY(c,t) cell t c, Thread *tvelocity derivative C DVDZ(c,t) cell t c, Thread *tvelocity derivative C DWDX(c,t) cell t c, Thread *tvelocity derivative C DWDY(c,t) cell t c, Thread *tvelocity derivative C DWDZ(c,t) cell t c, Thread
36、 *tvelocity derivative 2021/3/1043 C_R(c,t) cell t c, Thread *t 密度 C_MU L(c,t) cell t c, Thread *t 層流粘性系數(shù) C_MU T(c,t) cell t c, Thread *t 湍流粘性系數(shù) C_MU EFF(c,t) cell t c, Thread *t 有效粘度 C_K_L(c,t) cell t c, Thread *t 層流熱傳導(dǎo)系數(shù) C_K_T(c,t) cell t c, Thread *t 湍流熱傳導(dǎo)系數(shù) C_K_ EFF(c,t) cell t c, Thread *t 有效熱傳
37、導(dǎo)系數(shù) C_CP(c,t) cell t c, Thread *t 比熱 C_RGAS(c,t) cell t c, Thread *t 通用氣體常數(shù) C_DIFF L(c,t,i,j) cell t c, Thread *t, int i, int j 層流擴(kuò)散率 物性參數(shù) 2021/3/1044 循環(huán)宏 6.2.1 Looping over Cell Threads in a Domain ( thread_loop_c) 查詢控制區(qū)的單元線 6.2.2 Looping over Face Threads in a Domain ( thread_loop_f) 查詢控制區(qū)的面 6.2.3
38、 Looping over Cells in a Cell Thread ( begin.end_c_loop) 查詢單元線中的單元 6.2.4 Looping over Faces in a Face Thread ( begin.end_f_loop) 查詢面單元中的面 6.2.5 Looping over Faces on a Cell ( c_face_loop) 查詢單元面 6.2.6 Looping over Nodes of a Cell ( c_node_loop) 查詢單元節(jié)點(diǎn) 2021/3/1045 UDF編譯連接 Interpreted UDFs:解釋的UDF被編譯成與體
39、系 結(jié)構(gòu)無關(guān)的中間代碼或偽碼。這一代碼調(diào)用時(shí) 是在內(nèi)部模擬器或解釋器上運(yùn)行。與體系結(jié)構(gòu) 無關(guān)的代碼犧牲了程序性能,但其UDF可易于 共享在不同的結(jié)構(gòu)體系之間,即操作系統(tǒng)和 FLUENT版本中。 Compiled UDFs :編譯后的UDF由C語言系統(tǒng)的 編譯器編譯成本地目標(biāo)碼。這一過程須在 FLUENT運(yùn)行前完成。在FLUENT運(yùn)行時(shí)會執(zhí)行存 放于共享庫里的目標(biāo)碼,這一過程稱為“動態(tài) 裝載”。 2021/3/1046 Interpreted UDFs 2021/3/1047 Compiled UDFs方法一 在你case所在的目錄下,建立libudf 在libudf下建立兩個(gè)src和ntx86
40、子目錄 源程序(*.c)放進(jìn)src;在ntx86下再建2d、2d_host、2d_node等 (2d)然后在2d文件夾下,把Fluent.Incfluent6. srcmakefile_nt.udf 和Fluent.Inc fluent6. src user_nt.udf拷進(jìn)去,將makefile_nt.udf重命 名為makefile 接著修改user_nt.udf里的內(nèi)容,要改成以下格式: SOURCES = $(SRC)udfexample.c(源程序名字) VERSION = 2d(是二維還是三維) PARALLEL_NODE = none(有沒 有并行) 最后點(diǎn)開始-程序-附件-命令提示符,進(jìn)入DOS界面,訪問 libud
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)激勵合同:股權(quán)獎勵與業(yè)績掛鉤條款3篇
- 2025年度濾袋材料費(fèi)用合同采購與項(xiàng)目進(jìn)度管理合同3篇
- 2025年度網(wǎng)絡(luò)安全防護(hù)設(shè)備采購合同范本與安全等級保護(hù)2篇
- 學(xué)生校園欺凌情況調(diào)查問卷
- 敢于擔(dān)當(dāng)善于化解難題體會
- 護(hù)理人力資源管理1
- 黨史知識競賽題庫及答案-一起學(xué)習(xí)黨史吧
- 八一南昌起義的意義是什么
- 2024版地方特色農(nóng)產(chǎn)品購銷合作合同版
- 2024集體土地租賃協(xié)議書
- 2024年SATACT家教培訓(xùn)合同
- 青桔單車保險(xiǎn)合同條例
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
- 智慧茶園監(jiān)控系統(tǒng)的設(shè)計(jì)
- 2024年宜賓發(fā)展產(chǎn)城投資限公司第三批員工公開招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
- 哈爾濱研學(xué)旅行課程設(shè)計(jì)
- 2024年省宿州市“宿事速辦”12345政務(wù)服務(wù)便民熱線服務(wù)中心招考15名工作人員高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 2024年安徽省行政執(zhí)法人員資格認(rèn)證考試試題含答案
- 中國2型糖尿病運(yùn)動治療指南 (2024版)
- 人教版初中九年級全冊英語單詞表
評論
0/150
提交評論