




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章.UDFCC用#define用#include本章介紹了C語言的一些基本信息,這些信息對(duì)處理FLUENT的UDF很有C語言的初級(jí)介紹。本章不會(huì)介紹諸如while-do循環(huán),聯(lián)合,遞歸,結(jié)構(gòu)以及讀寫文件的基礎(chǔ)知識(shí)。如果你對(duì)C語言不熟悉可以參閱C語言的相關(guān)書籍。如:/*ThisishowIputacommentinmyC 定義real為double型。因?yàn)榻忉尯瘮?shù)自動(dòng)作如此分配,所以使用在UDF中所有的floatdouble數(shù)據(jù)變量時(shí)使用real數(shù)據(jù)類型是很好的編程習(xí)慣。C程序中用語句#define來定義。最簡單的常數(shù)是十進(jìn)制整數(shù)(如:0,1,2)e的十進(jìn)制數(shù)IDYMINYMAX如下:#defineWALL_ID5#defineYMIN#defineYMAX值。變量在使用之前必須在C程序中。這樣,計(jì)算機(jī)才會(huì)提前知道應(yīng)該如何分配給相應(yīng)變量的類型。變量的結(jié)構(gòu)如下:首先是數(shù)據(jù)類型,然后是具有相應(yīng)類型的一個(gè)或多個(gè)C所允許的合法字符,變量名字中可以有字母,數(shù)字和下劃線。需要注意的是,在C程序中,字母是區(qū)分大小寫的。下面是變量的例子:int /*變量n為整型inti1, /*變量i1和i2為整型floattmax realaverage_temp )mu_lam和temp是局部變量。)DEFINE_PROPERTY(cell_viscosity,cell,{realrealtemp=C_T(cell,if(temp>288.)mu_lam=5.5e-elseif(temp>mu_lam=143.2135-0.49725*temp;mu_lam=return}全局變量UDF源文件中是對(duì)所有的函數(shù)都起作用(調(diào)用一UDF源方便的處理方法就是在頭文件(.h)中加上extern的定義,然后在所有的.c文如下所示。注意:extern只用于編譯過的UDF。/* externrealvolume;/* #include"udf.h"realvolume;{volume=....}/* #include"udf.h"#include"filea.h"{/*用總數(shù)來計(jì)算每個(gè)單位體積的源項(xiàng)的代碼realtotal_source=...;realreturnsource;}static對(duì)于全局變量和局部變量的影響是不一樣的。靜態(tài)局部變量在函之外對(duì)任何函數(shù)保持不可見。靜態(tài)也可以用于函數(shù),使該函數(shù)只對(duì)定義它的.c源文件保持可見。下面是靜態(tài)全局變量的例子。注意:extern只用于編譯過的UDF。#includestaticrealabs_coeff=1.0; /*吸收系數(shù)*/realsource;DEFINE_SOURCE(energy_source,c,t,dS,{intP1 dS[eqn]=-16.*abs_coeff*SIGMA_SBC*source=-abs_coeff*(4.*SIGMA_SBC*pow(C_T(c,t),4.)-C_UDSI(c,t,P1));returnsource;}DEFINE_SOURCE(p1_source,c,t,dS,{intP1=dS[eqn]=-source=abs_coeff*(4.*SIGMA_SBC*pow(C_T(c,t),4.)-C_UDSI(c,t,P1));returnsource;}注意:typedef只用于編譯過的UDF。typedefstruct{inta;intc;} /*mylist為類型結(jié)構(gòu)列表mylist /*x,y,z為類型結(jié)構(gòu)列表中的類型包括int,float等等,如下例所示:intx=realy=intz=x+((int) /*z=4real,void等,其相應(yīng)的返回值就是該數(shù)據(jù)類型,錄A的列表。!!C函數(shù)不能改變它們的,但是可以改變這些所指向的變量數(shù)組的定義格式為:名字[數(shù)組元素個(gè)數(shù)],C數(shù)組的下標(biāo)是從零開始的。變inta[10],reala[0]=radii[4]=b[10][10]=;/*a為一個(gè)一維數(shù)組/*radii為一個(gè)一維數(shù)組/*b為一個(gè)二維數(shù)組2.10須以*開頭。指針廣泛用于提取結(jié)構(gòu)中的數(shù)據(jù),以及在多個(gè)函數(shù)中通過數(shù)據(jù)例如:intip=*ip=inta=1;int*ip;ip= /*&aa的地址值printf("contentofaddresspointedtobyip=%d\n",*ip= /*a= printf("nowa=%d\n",數(shù)組的起始地址,在C中指針和數(shù)組具有緊密的聯(lián)系。2.10.1CFLUENT中,線程和域指針是UDF常用的自變量。當(dāng)你在UDF中指定這些自變量時(shí),F(xiàn)LUENT解算器會(huì)UDF,從而使你的函數(shù)可以存取解算器的數(shù)據(jù)定(DEFINE_PROFILE宏來定義的)自定義輪UDF的自變量是一個(gè)指向應(yīng)用于邊界條件的線程的指針。DEFINE_PROFILE函數(shù)會(huì)存取線程指針?biāo)赶騣fif語句是條件控制語句的一種。格式為if(邏輯表達(dá)式{語句if(q!={a=0;b=if-elseif(邏輯表達(dá)式{語句if(x<{x=-y=}Y=X/50.X=-Y=forfor(起點(diǎn);終點(diǎn);增量{語句inti,j,n=10;for(i=1;i<=n;{j=printf("%d}N=10DOI=1,10J=I*IC 取++--減 不等Cx(y)的三角函數(shù)值。函數(shù)doubleacos(doubledoubleasin(doubledoubleatan(doubledoubleatan2(doublex,doubledoublecos(doubledoublesin(doubledoubletan(doubledoublecosh(doubledoublesinh(doubledoubletanh(doubledoublesqrt(doublexdoublepow(doublex,doublexdoubleexp(doubledoublelog(doublelnxdoublelog10(doublelog10xdoublefabs(doublexdoubleceil(doubledoublefloor(doubleFILE*fopen(char*filename,charintfclose(FILEintfprintf(FILE*fd,char*format,intprintf(char*format,intfscanf(FILE*fd,char*format,fscanfprintf是一般的輸除了fopen之外所有的函數(shù)都為整數(shù),這是因?yàn)樵摵瘮?shù)所返回的整數(shù)會(huì)告訴在下面的例子中,需要打開的數(shù)據(jù)文件的名字引號(hào)括起來。fopen中的選項(xiàng)r表明該文件是以可讀形式打開的。fscanfd所指向的文件中讀入兩個(gè)浮點(diǎn)數(shù)并將它們?yōu)閒1和f2。關(guān)于C的標(biāo)準(zhǔn)輸入輸出函數(shù)其它的信息,你可FILEfd=fopen("data.txt","r"); opensafilenameddata.txt fscanf(fd,"%f,%f'',&f1,&f2);用#defineUDFC預(yù)處理程序命令。當(dāng)你使用#define宏置換命令,C預(yù)處理程序(如,cpp)執(zhí)行了一個(gè)簡單的置換,并用替換文本替換宏中定義#definemacrorecement-#defineRAD預(yù)處理程UDF中所有的變RAD出現(xiàn)的地方RAD替換1.2345。在#defineAREA_RECTANGLE(X,Y)你的UDF中所有的AREA_RECTANGLE(X,Y)都會(huì)被替換為(X)和(Y)的乘積用#include件時(shí),C前處理程序會(huì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游景區(qū)擴(kuò)建用地居間
- 新能源汽車充電樁上市公司
- 新能源技術(shù)發(fā)展及應(yīng)用練習(xí)題
- 三農(nóng)村電商三農(nóng)村電商與旅游融合方案
- 農(nóng)業(yè)綜合開發(fā)項(xiàng)目可行性研究報(bào)告
- 醫(yī)療器械可行性分析報(bào)告模板
- 磐安縣生活垃圾焚燒發(fā)電項(xiàng)目
- 電影娛樂產(chǎn)業(yè)制作與發(fā)行指南
- 品牌傳播策略實(shí)施方案
- 三農(nóng)創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略作業(yè)指導(dǎo)書
- 《以哪吒精神照亮成長之路》開學(xué)家長會(huì)課件
- 公司休假銷假單模板
- 婦產(chǎn)科介入治療護(hù)理常規(guī)
- 《基于杜邦分析法的企業(yè)財(cái)務(wù)分析國內(nèi)外文獻(xiàn)綜述》
- 統(tǒng)計(jì)學(xué)調(diào)查報(bào)告(共5篇)
- 四川大學(xué)C語言上機(jī)考試題
- 2022年蕪湖職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測試題庫及答案解析
- DBJ∕T 15-134-2018 廣東省地下管線探測技術(shù)規(guī)程
- 人崗匹配分析和總結(jié)
- 幼小銜接拼音課程 課件(共49張PPT)
- 2020新版?zhèn)€人征信報(bào)告模板
評(píng)論
0/150
提交評(píng)論