動網(wǎng)格流沙版完美整理_第1頁
動網(wǎng)格流沙版完美整理_第2頁
動網(wǎng)格流沙版完美整理_第3頁
動網(wǎng)格流沙版完美整理_第4頁
動網(wǎng)格流沙版完美整理_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

動網(wǎng)格讓網(wǎng)格動起來〔1〕—閑談動網(wǎng)格在固體有限元計(jì)算中,網(wǎng)格運(yùn)動實(shí)非什么稀奇事兒。而且在絕多數(shù)固體計(jì)算的根本物理量是網(wǎng)格的節(jié)點(diǎn)位移,所以,固體計(jì)算中,網(wǎng)格節(jié)點(diǎn)運(yùn)動是對的,沒有運(yùn)動反而不正常了。也可以這么說:正因?yàn)橛?jì)算域部節(jié)點(diǎn)間的相對運(yùn)動,才導(dǎo)致了應(yīng)力的產(chǎn)生。流體計(jì)算與固體完全不同。其根源在于它們使用的網(wǎng)格類型不同。當(dāng)前固體有限元計(jì)算采用的是拉格朗日網(wǎng)格,而流體計(jì)算則大多數(shù)采用的歐拉網(wǎng)格。如果說把拉格朗日網(wǎng)格中的節(jié)點(diǎn)點(diǎn)看作是真實(shí)世界的物質(zhì)原子的話,則歐拉網(wǎng)格的節(jié)點(diǎn)則好比是真實(shí)世界中的一個個傳感器,它們總是呆在一樣的位置,真實(shí)的記錄著各自位置上的物理量。正常情況下,歐拉網(wǎng)格系統(tǒng)是這樣的:計(jì)算域和節(jié)點(diǎn)保持位置不變,發(fā)生變化的是物理量,網(wǎng)格節(jié)點(diǎn)就像一個個布置在計(jì)算域中的傳感器,記錄該位置上的物理量。這其實(shí)是由流體力學(xué)研究方法所決定的。宏觀與微觀的差異決定了固體力學(xué)計(jì)算采用拉格朗日網(wǎng)格,流體計(jì)算采用歐拉網(wǎng)格。關(guān)于這局部的詳細(xì)講解,可以參閱任何一本計(jì)算流體動力學(xué)書籍。世界是公平的。有利必有弊。朗格朗日網(wǎng)格適合計(jì)算節(jié)點(diǎn)位移,然而對于過大的網(wǎng)格變形卻難以處理。歐拉網(wǎng)格生來可以處理大變形〔因?yàn)楣?jié)點(diǎn)不動〕,然而對于對于節(jié)點(diǎn)運(yùn)動的處理,則是其直接軟肋。然而很不幸的是,現(xiàn)實(shí)生活中有太多網(wǎng)格邊界運(yùn)動的實(shí)例。如汽車發(fā)動機(jī)中的氣缸運(yùn)動、閥門開啟與關(guān)閉、機(jī)翼的運(yùn)動、飛機(jī)投彈等等等等舉不勝舉。計(jì)算流體動力學(xué)計(jì)算的根本物理量通常為:速度、溫度、壓力、組分。并不計(jì)算網(wǎng)格節(jié)點(diǎn)位移。因此要讓網(wǎng)格產(chǎn)生運(yùn)動,通常給節(jié)點(diǎn)施加的物理約束是速度。CFD中的動網(wǎng)格大體分為兩類:〔1〕顯式規(guī)定的網(wǎng)格節(jié)點(diǎn)速度。配合瞬態(tài)時間,即可很方便的得出位移。當(dāng)然一些求解器〔如FLUENT〕也支持穩(wěn)態(tài)動網(wǎng)格,這時候可以直接指定節(jié)點(diǎn)位移。〔2〕網(wǎng)格節(jié)點(diǎn)速度是通過求解得到的。如6DOF模型根本上都屬于此類。用戶將力換算成加速度,然后將其積分成速度。對于第一類動網(wǎng)格問題,在fluent常可以使用profile與UDF進(jìn)展網(wǎng)格設(shè)置,通過規(guī)定節(jié)點(diǎn)或區(qū)域的速度、角速度或位移等方式來顯式確定網(wǎng)格的運(yùn)動,通常大局部的動網(wǎng)格問題都?xì)w于此類。而對于第二類問題,通常涉及到力的計(jì)算,力在流體常是對壓力進(jìn)展積分而來。將力轉(zhuǎn)換為速度或位移,一般涉及到加速度、轉(zhuǎn)動慣量等物理量的計(jì)算。在fluent中,可以使用6DOF模型進(jìn)展處理,在CF*中,可以使用剛體模型〔13.0以上版本才有〕。在FLUENT中,動網(wǎng)格涉及的容包括:〔1〕運(yùn)動的定義。主要是PROFILE文件與UDF中的動網(wǎng)格宏?!?〕網(wǎng)格更新。FLUENT中關(guān)于網(wǎng)格更新方法有三種:網(wǎng)格光順、動態(tài)層、網(wǎng)格重構(gòu)。需要詳細(xì)了解這些網(wǎng)格更新方法的運(yùn)作機(jī)理,每個參數(shù)所代表的具體含義及設(shè)置方法,每種方法的適用圍。動網(wǎng)格的最在挑戰(zhàn)來自于網(wǎng)格更新后的質(zhì)量,防止負(fù)體積是動網(wǎng)風(fēng)格試的主要目標(biāo)。在防止負(fù)網(wǎng)格的同時,努力提高運(yùn)動更新后的網(wǎng)格質(zhì)量。讓網(wǎng)格動起來〔2〕—PROFILE文件這里要說的PROFILE文件,只針對利用于網(wǎng)格運(yùn)動定義之用的瞬態(tài)profile文件。其它類型的profile文件,可參閱FLUENT用戶文檔,里頭有詳細(xì)的描述。在ANSYSFLUENT中,有兩種方式用于指定瞬態(tài)網(wǎng)格區(qū)域及邊界條件:〔1〕與標(biāo)準(zhǔn)profile格式一樣的瞬態(tài)profile文件〔2〕表格格式的瞬態(tài)profile文件。對于這兩種方式,網(wǎng)格域及邊界條件的變化均只與時間有關(guān)。然而如果使用了in-cylinder模型,則用戶可以使用crank角代替時間變量。1、標(biāo)準(zhǔn)瞬態(tài)profile文件一個標(biāo)準(zhǔn)瞬態(tài)profile文件格式如下:((profile-nametransientnperiodic")(field_name_1a1a2a3…an)(field_name_2b1b2b3…bn)...(field_name_rr1r2r3…rn))注意:〔1〕profile-name:profile名,必須全部為小寫字母,少于64個字符?!?〕transient為保存關(guān)鍵字,不可隨便更改?!?〕n表示每一個場變量所包含的變量個數(shù)?!?〕periodic"用于標(biāo)識是否使用周期,1為使用時間周期,0表示不使用時間周期。〔5〕通常field_name_1為time,后面的變量值為升序排列?!?〕所有的值,包括坐標(biāo)值,都必須使用SI單位制。fluent讀入profile文件時不進(jìn)展單位轉(zhuǎn)換。一個實(shí)際的例子:((sampleprofiletransient30)(time123)(u102030))解讀:〔1〕profile名為sampleprofile,讀入該profile文件后,適宜的地方出現(xiàn)的變量名為sampleprofile?!?〕在3個時間點(diǎn)上定義了值,分別為1s,2s,3s。其中1s時的*方向速度值為10m/s,2s時刻對應(yīng)的速度值為20m/s,3s時刻對應(yīng)的速度值為30m/s。u,v,w是表示*,y,z三方向的速度,也可以使用v_*,v_y與v_z,旋轉(zhuǎn)速度使用omega_*,omega_y,omega_z變量名。一個使用crankangle替代time的例子:((e*ampletransient31)(angle0180360)(temperature300500300))2、表格瞬態(tài)profile文件表格格式與標(biāo)準(zhǔn)格式有很大的差異。表格格式如下:profile_namen_fieldn_dataperidoic"field_1field_2field_3…field_4v-1-1v-2-1………v-n_field_1v-1-2v-2-2………v-n_field-2...v-1-n_datav-2-n_data………v-n_field-n_data說明:與標(biāo)準(zhǔn)格式類似,profile_name為profile名,表達(dá)在fluent中為運(yùn)動變量名。格式要求與標(biāo)準(zhǔn)格式一致:小寫,少于64個字符。field_1通常為time,表示時間。前方接著的是各個變量名。v-1-1表示field_1的第一個值,依此類推,v-1-2表示第二個值。按升序排列。peridoic"表示是否采用時間周期,1表示采用,0表示不采用。一個例子:sampleprofile230timeu110220330解讀:第一行:sampleprofile表示profile名,fluent讀入此profile后,將會在使用profile的地方顯示該profile名。2表示兩個場變量(time與u)或者說是表的列數(shù),3表示一共有3個數(shù)據(jù)點(diǎn)或者說表有三行。0表示不使用周期。第二行:定義場變量。一共是兩個場變量:time與u,通常time放在第一個。第三行到最后一行:第一個值表示時間值,第二個值表示u的值。定義了1s時的*方向速度值為10m/s,2s時刻對應(yīng)的速度值為20m/s,3s時刻對應(yīng)的速度值為30m/s。假設(shè)使用周期,則必須定義一個周期的時間物理量的變化。簡單來說,就是最后一行的物理量的值與第一行物理量的值一樣。如下一個例子:periodprofile241timeu010120230310也可以使用crankangle代替時間進(jìn)展變量定義:e*aple231angletemperature0300180500360300請注意:使用列表形式的profile,只能使用TUI命令讀入到fluent中:file>read-transient-table讓網(wǎng)格動起來〔3〕—實(shí)例1:Profile定義運(yùn)動 本次實(shí)例采用的場景來自于流體中高速飛行的物體。如子彈、火箭、導(dǎo)彈等。這里只是為了說明profile在動網(wǎng)格運(yùn)動定義中的應(yīng)用,因此為了計(jì)算方便不考慮高速問題。問題描述如下列圖所示:如下圖,1為運(yùn)動剛體,2為計(jì)算域。由于不考慮也沒方法考慮剛體的變形,因此在構(gòu)建面域的時候,將1中的局部通過布爾運(yùn)算去除。計(jì)算域總長度為300mm,其中固體運(yùn)動最大位移為300-40-30-6mm=224mm。為了防止固體邊界與計(jì)算域邊界發(fā)生重疊,我們使運(yùn)動最大距離為200mm。運(yùn)動速度v=0.4t,這樣可能計(jì)算運(yùn)動完200mm需要的時間為1s。采取5個時間數(shù)據(jù)點(diǎn)分別為:0,0.25,0.5,0.75,1s,相對應(yīng)的速度為:0,0.1,0.2,0.3,0.4m/s。profile文件如下:((moveVelocitytransient50)(time00.250.50.751)(v_*00.10.20.30.4))〔1〕將計(jì)算域離散為網(wǎng)格。由于三角形網(wǎng)格非常適合于2D動網(wǎng)格,因此本例使用三角形網(wǎng)格。假設(shè)要使用四邊形網(wǎng)格,則需要進(jìn)展滑移面處理。詳細(xì)的說明將留待以后網(wǎng)格更新的時候進(jìn)展。同樣的,也不進(jìn)展邊界層處理。簡化問題描述,設(shè)定四周為wall壁面,中間區(qū)域?yàn)閞igidwall,在動網(wǎng)格中進(jìn)展設(shè)定。全局網(wǎng)格尺寸為2mm,運(yùn)動邊界網(wǎng)格尺寸1mm,網(wǎng)格單元總數(shù)19671,節(jié)點(diǎn)總數(shù)9832。〔2〕啟動fluent,讀入msh文件選擇2D求解器,勾選雙精度選項(xiàng)。檢查單位,確保使用的單位為mm。選用瞬態(tài)求解器。general中的其它選項(xiàng)采取默認(rèn)。如下列圖所示?!?〕選用標(biāo)準(zhǔn)k-e湍流模型,材料使用水。設(shè)定cellzonecondition將默認(rèn)域介質(zhì)設(shè)定為water。由于本例使用全封閉計(jì)算域,所有邊界類型為wall,所以boundarycondition采用默認(rèn)設(shè)置?!?〕讀入profile文件利用file>profile…菜單讀入已準(zhǔn)備好的profile文件。〔5〕激活動網(wǎng)格選項(xiàng)如下列圖所示。勾選smoothing、layering、remeshing選項(xiàng)。各選項(xiàng)的參數(shù)設(shè)置分別如下列圖所示。〔6〕定義運(yùn)動區(qū)域定義中間剛體壁面為rigidbody,選擇運(yùn)動profile為讀入的profile文件movevelocity,設(shè)置meshingoptions中的cellheight為1mm。該參數(shù)用于網(wǎng)格的分裂與合并。當(dāng)網(wǎng)格高度大于1.4時進(jìn)展分裂,小于0.2時合并。預(yù)覽zone的運(yùn)動與網(wǎng)格運(yùn)動。注意在預(yù)覽網(wǎng)格運(yùn)動之前保存case文件。〔7〕定義其它選項(xiàng)如動畫、節(jié)點(diǎn)物理量監(jiān)測等?!?〕總結(jié)對于類似本例的純外流場問題,通過都不利用動網(wǎng)格進(jìn)展計(jì)算。主要原因在于:〔1〕網(wǎng)格發(fā)生運(yùn)動后的質(zhì)量不好,通常都會低于原始網(wǎng)格質(zhì)量?!?〕動網(wǎng)格計(jì)算開銷比擬大。因?yàn)槊看尉W(wǎng)格運(yùn)動時要計(jì)算網(wǎng)格節(jié)點(diǎn)的位置。要例所示的問題,一般使用相對運(yùn)動的原理:剛體不動,運(yùn)動的是流動介質(zhì)。然而在一些特殊的場合〔比方火箭發(fā)射后的整流罩別離等〕則必須使用到動網(wǎng)格。讓網(wǎng)格動起來〔4〕—動網(wǎng)格UDF宏雖然瞬態(tài)PROFILE文件可以在一定程度上定義網(wǎng)格運(yùn)動,然而其存在著一些缺陷。最主要的一些缺陷存在于以下一些方面:〔1〕PROFILE無法準(zhǔn)確的定義連續(xù)的運(yùn)動。其使用離散的點(diǎn)值進(jìn)展插值。如果想獲得較為準(zhǔn)確的運(yùn)動定義,勢必要定義很多點(diǎn)?!?〕一些情況下無法使用profile。比方穩(wěn)態(tài)動網(wǎng)格。在FLUENT中定義網(wǎng)格運(yùn)動,更多的是采用UDF宏。fluent中與動網(wǎng)格有關(guān)的UDF宏一共有5個,其中四個用于常規(guī)的網(wǎng)格運(yùn)動定義,一個用于6DOF模型。這些宏分別為:DEFINE_CG_MOTION、DEFINE_DYNAMIC_ZONE_PROPERTY、DEFINE_GEOM、DEFINE_GRID_MOTION、DEFINE_SDOF_PROPERTIES注意:動網(wǎng)格宏只能為編譯型UDF。1、DEFINE_CG_MOTION最常用的運(yùn)動網(wǎng)格宏。用戶可以使用該宏定義每一時間步上的線速度或角速度來指定fluent中*一特定區(qū)域的運(yùn)動。DEFINE_CG_MOTION(name,de,vel,omega,time,dtime)參數(shù)說明:name:UDF的名字。表達(dá)在fluent中表現(xiàn)為可選擇的函數(shù)列表。Dynamic_Thread*dt:存儲了用戶所指定的動網(wǎng)格屬性和構(gòu)造指針。realvel[]:線速度。vel[0]為*方向速度,vel[1]為y方向速度,vel[2]為z方向速度realomega[]:角速度。與線速度定義一樣。realtime:當(dāng)前時間。realdtime:時間步長。函數(shù)返回值為:void從函數(shù)的參數(shù)類型,配合c語言的參數(shù)調(diào)用方式可知,vel,omega為數(shù)值類型,屬于傳入類型。因此只需在函數(shù)體中顯式定義vel與omega即可將速度傳入fluent求解器。time與dtime是用于定義速度的。詳細(xì)實(shí)例可參看fluentudf文檔p182。2、DEFINE_DYNAMIC_ZONE_PROPERTY該宏能用于以下一些場合:〔1〕在in-cylinder應(yīng)用中定義旋轉(zhuǎn)中心?!?〕定義變化的網(wǎng)格層高度。第一種用法:DEFINE_DYNAMIC_ZONE_PROPERTY(name,dt,swirl_center)參數(shù)說明:name:UDF名。Dynamic_Thread*t:指向存儲動網(wǎng)格屬性構(gòu)造的指針。假設(shè)沒有動態(tài)區(qū)域位于當(dāng)前計(jì)算的旋轉(zhuǎn)中心,則fluent部將該參數(shù)設(shè)置為NULL.real*swirl_center:swirl_center為一個具有3個元素的數(shù)值,表示旋轉(zhuǎn)中心的*,y,z坐標(biāo)。返回值為:void。具體實(shí)例可參看udf手冊p183。第二種用法:在使用動態(tài)層方法時定義變化的網(wǎng)格高度。參數(shù)與第一種用法略有不同。DEFINE_DYNAMIC_ZONE_PEOPERTY(name,dt,height)參數(shù)說明:name:UDF名Dynamic_Threaddt:指向存儲動網(wǎng)格屬性構(gòu)造的指針real*height:一個實(shí)數(shù)指針,指向動態(tài)層高度為時間或crank角的函數(shù)。返回值:void具體實(shí)例參看fluentudf手冊P1853、DEFINE_GEOM用戶可以使用此宏定義變化區(qū)域的幾何。默認(rèn)情況下,ansysfluent提供了機(jī)制用于定義節(jié)點(diǎn)沿平面或柱面運(yùn)動。當(dāng)ansysfluent更新了變形區(qū)域上的節(jié)點(diǎn)時〔例如通過彈簧光順或局部面重構(gòu)之后〕,會通過調(diào)用DEFINE_GEOM宏重新定位節(jié)點(diǎn)。請注意該宏只能作為編譯型UDF使用。函數(shù)說明:DEFINE_GEOM(name,d,dt,position)參數(shù)說明:name:UDF名Domain*d:指向計(jì)算域的指針Dynamic_Thread*dt:指向存儲用戶指定的動網(wǎng)格參數(shù)的指針real*position:指向存儲位置信息的數(shù)組。此函數(shù)沒有返回值。詳細(xì)實(shí)例可參閱FLUENTUDF手冊P187.4、DEFINE_GRID_MOTION默認(rèn)情況下,ANSYSFLUENT通過使用固體運(yùn)動方程來更新動態(tài)區(qū)域的節(jié)點(diǎn)位置。這意味著動態(tài)區(qū)域的節(jié)點(diǎn)之間沒有相對運(yùn)動。但是如果用戶需要獨(dú)立的控制每一個節(jié)點(diǎn)的運(yùn)動的話,則可以通過使用DEFINE_GRID_MOTION宏來實(shí)現(xiàn)。例如網(wǎng)格運(yùn)動UDF可以更新由于流固耦合所導(dǎo)致的彎曲形成的節(jié)點(diǎn)坐標(biāo)。此UDF宏只能用于編譯型。函數(shù)說明:DEFINE_GRID_MOTION(name,d,dt,time,dtime)參數(shù)說明:name:UDF名Domain*d:計(jì)算域指針Dynamic_Thread*dt:指向存儲了動網(wǎng)格參數(shù)的構(gòu)造的指針realtime:當(dāng)前時間realdtime:時間步返回類型:void。具體實(shí)例可參閱FLUENTUDF手冊P188讓網(wǎng)格動起來〔5〕—配置UDF編譯環(huán)境 FLUENTUDF中關(guān)于動網(wǎng)格的DEFINE宏均要求為編譯型。FLUENT的UDF運(yùn)行環(huán)境有兩種:解釋型與編譯型。雖然兩種方式都是采用編譯,但是編譯方式及編譯后獲得的結(jié)果是不同的。編譯型UDF需要通過plied進(jìn)展編譯,編譯后得到相應(yīng)的dll文件。而解釋型UDF則是通過Interprete進(jìn)展加載,不會生成dll文件。據(jù)我的直覺,編譯型UDF可能利用了鉤子函數(shù)的技術(shù)。一、編譯型UDF與解釋型UDF的差異〔翻譯自UDF手冊〕1、解釋型UDF一個精簡的平臺都能被作為編譯型UDF使用不需要C編譯器〔利用FLUENT自身的編譯器〕比編譯型UDF反響慢在方法方面受到較多的限制無法被到編譯系統(tǒng)或其它庫只能使用預(yù)定義宏訪問存儲于ansysfluent中的數(shù)據(jù)2、編譯型UDF比解釋型UDF反響迅速沒有諸多C語法限制能夠使用其它語言編寫的函數(shù)當(dāng)具有一些解釋型UDF不能處理的功能時,無法作為解釋型UDF使用3、選取原則對于小型的、簡單的功能,使用解釋型UDF復(fù)雜功能使用編譯型UDF?!踩缇哂休^大的CPU開銷、需要訪問公共庫〕二、配置UDF編譯環(huán)境對于編譯型UDF,在fluent中加載時,需要調(diào)用C編譯器將其編譯成DLL文件。這里的C編譯器雖說理論上是沒有任何限制的,但是在windows環(huán)境下還是推薦使用microsoftvisualc++,在linu*環(huán)境下推薦使用GCC。我們這里只說windows環(huán)境下編譯環(huán)境的配置問題。visualc++最高版本是6.0,再往后就是microsoftvisualstudio7.0、8.0、9.0、10.0。其中7.0對應(yīng)microsoftvisualstudio2003,8.0對應(yīng)2005,9.0對應(yīng)2008,10.0對應(yīng)2010。在一些老版的fluent中,通常需要配置環(huán)境變量。配置環(huán)境變量的方法,網(wǎng)絡(luò)上很多,可以搜索。這里講的是通過修改udf.bat文件來配置編譯環(huán)境。在fluent12.0之后的版本中,可以通過修改udf.bat文件的方式進(jìn)展編譯環(huán)境配置。該文件位于**\ANSYSInc\v140\fluent\ntbin\win64目錄下。本人安裝的fluent是64bit的,版本為14.0。不同版本的fluent,該文件所處的位置可能不同。大家可以利用windows的文件搜索功能尋找該文件。注意假設(shè)是安裝了icepak,則會有兩個udf.bat文件,一定要注意我們只針對fluent目錄下的該文件。我們用記事本翻開此文件,由于本機(jī)上安裝的是microsoftvisualstudio2010,因此只需要關(guān)注圖中橙色線框中的局部。現(xiàn)在來分析橙色框中的語句。有過DOS經(jīng)歷的人可能嫌我羅嗦,不過我還是要說一下。因?yàn)楝F(xiàn)在有DOS經(jīng)歷的人越來越少了?!?〕第8行:echo是dos中助于在屏幕上寫出一段文本。這與c語言中的printf,c*中的Console.WriteLine,JAVA中的System.Print的功能是一樣的,只是在屏幕上打出后面一段文字,我們可以忽略了?!?〕第10行:設(shè)定MSVC_DEFAULT的值。其實(shí)是一個賦值語句。容易理解。一會兒需要動它?!?〕第11行:ife*ist是判斷,判斷后面的vcvarsall.bat文件是否存在,假設(shè)存在,則設(shè)置變量MSVC的值?!?〕第12行:判斷MSVC是否為空,假設(shè)不為空,則進(jìn)入msvc_env100標(biāo)記行。找到該標(biāo)記行,其容位于86~89行。該標(biāo)記行的容為:〔1〕設(shè)定msvc_version為100〔2〕調(diào)用vcvarsall.bat文件,利用amd64,因?yàn)槲野惭b的fluent版本是64bit,假設(shè)32bit版本會有所不同?!?〕跳轉(zhuǎn)到ms_c_end行,該行是一個完畢標(biāo)記行??雌饋韽?fù)雜,其實(shí)人們要做的工作很少。用戶所要做的僅僅是修改第10行的容。修改microsoftvisualstudio的安裝路徑。假設(shè)vc是全默認(rèn)安裝,則什么都不需修改,否則改為正確的路徑。如本機(jī)的microsoftstudio安裝在d:\programfiles目錄下,只需將第10行修改為:setMSVC_DEFAULT=D:\ProgramFiles\MicrosoftVisualStudio10.0就可以了。剩下要做的工作是:在fluent啟動面板中勾選Environment標(biāo)簽頁下的setuppilationEnvironmentforUDF選項(xiàng)。該選項(xiàng)默認(rèn)是選中的,且不同的版本該選項(xiàng)所處的位置可能有所不同。三、總結(jié)配置12.0以上fluentUDF編譯環(huán)境,需要進(jìn)展的工作:〔1〕找到fluent安裝目錄下的udf.bat文件〔2〕翻開udf.bat文件,修改對應(yīng)本機(jī)安裝的microsoftvisualstudio版本的路徑OK了!這種方式配置UDF編譯環(huán)境不需要考慮計(jì)算機(jī)的操作系統(tǒng)。讓網(wǎng)格動起來〔6〕—動網(wǎng)格參數(shù)圖解 Fluent的動網(wǎng)格設(shè)置,主要是通過dynamicmesh面板進(jìn)展設(shè)置。動網(wǎng)格面板如下列圖所示。主要包括兩局部容:〔1〕MeshMethods〔2〕DynamicMeshZones。另外還包括網(wǎng)格域運(yùn)動預(yù)覽及網(wǎng)格運(yùn)動預(yù)覽。整個動網(wǎng)格面板通過勾選DynamicMesh選項(xiàng)而激活。1、MeshMethods〔網(wǎng)格更新方法〕該局部主要用于網(wǎng)格或網(wǎng)格域在運(yùn)動過程中,設(shè)置計(jì)算域中網(wǎng)格節(jié)點(diǎn)位置更新方法。fluent中有三種主要網(wǎng)格更新方法:〔1〕網(wǎng)格光順方法〔2〕動態(tài)層方法〔3〕網(wǎng)格重構(gòu)。對于3D模型,還包括in-cylinder、si*-dof、ImplicitUpdate三種選項(xiàng)。其中in-cyliner用于發(fā)動機(jī)氣缸模擬,si*-dof主要用于流體作用于剛體,預(yù)測剛體運(yùn)動。implicitupdate用于設(shè)定網(wǎng)格更新方式。默認(rèn)采用顯式方式,勾選此選項(xiàng)可設(shè)定網(wǎng)格以隱式方式更新。2、動態(tài)網(wǎng)格域用于定義網(wǎng)格運(yùn)動的區(qū)域及運(yùn)動類型。FLUENT中網(wǎng)格運(yùn)動類型主要有:靜止、剛體運(yùn)動、變形區(qū)域、用戶自定義域、耦合域。靜止域在網(wǎng)格運(yùn)動過程中,區(qū)域節(jié)點(diǎn)位置保持不變。雖然說默認(rèn)情況下不設(shè)定區(qū)域運(yùn)動,則該區(qū)域?yàn)殪o止,但是一些情況下還是需要顯式設(shè)定*些區(qū)域?yàn)殪o止域,尤其是在一些與剛體域相連的區(qū)域處理上。剛體運(yùn)動域:這是fluent動網(wǎng)格中最常見的運(yùn)動類型。通過規(guī)定剛體的速度或位移來控制運(yùn)動。變形域:由于邊界運(yùn)動導(dǎo)致節(jié)點(diǎn)變形。變形域通常與剛體域是相連的。自定義域:用戶可以使用UDF定義自己需要的域耦合域:節(jié)點(diǎn)位移由耦合求解器計(jì)算,在流固耦合計(jì)算中,耦合面上通常設(shè)定為耦合域類型。讓網(wǎng)格動起來〔7〕—網(wǎng)格光順 FLUENT中的網(wǎng)格光順〔smoothing〕主要采用兩種方法:彈簧光順與擴(kuò)散光順。其中彈簧光順包含有:彈簧光順、邊界層光順、拉普拉斯光順。擴(kuò)散光順分為:基于壁面距離的擴(kuò)散光順與基于單元體積的擴(kuò)散光順。一、彈簧/拉普拉斯/邊界層光順1、彈簧光順需要設(shè)置的參數(shù)主要有四個參數(shù)需要設(shè)置:SpringConstantFactor〔彈簧常數(shù)因子〕,BoundaryNodeRela*ation〔邊界節(jié)點(diǎn)松弛〕,ConvergenceTolerance〔收斂精度〕,NumberofIterations〔迭代次數(shù)〕。如圖中橙色框選局部。2、各參數(shù)作用彈簧常數(shù)因子:取值圍[0,1]??梢酝ㄟ^該值來調(diào)整彈簧剛度的大小。該值為0表示彈簧間沒有阻尼,邊界運(yùn)動會影響到更多的部節(jié)點(diǎn)。該參數(shù)的默認(rèn)值為1。在實(shí)際應(yīng)用中,假設(shè)發(fā)現(xiàn)運(yùn)動邊界附近網(wǎng)格堆積嚴(yán)重,可適當(dāng)調(diào)小此參數(shù),將位移擴(kuò)散出去。邊界節(jié)點(diǎn)松弛:網(wǎng)格位置更新時使用的參數(shù)。取值圍[0,1]。0表示沒有進(jìn)展網(wǎng)格節(jié)點(diǎn)保持不變,1表示不使用松弛處理。該參數(shù)默認(rèn)為1。調(diào)整該參數(shù)可以控制每次網(wǎng)格更新的節(jié)點(diǎn)位置。通常使用默認(rèn)值即可。迭代精度:網(wǎng)格節(jié)點(diǎn)位移值是通過求解平衡方程得到的。本參數(shù)即控制方程的求解精度。一般保持默認(rèn)值。迭代次數(shù):與迭代精度作用一樣。用于平衡方程的求解控制。迭代方程如下。通常該參數(shù)保持默認(rèn)即可。3、彈簧光順方法的適應(yīng)性〔譯自用戶手冊〕〔1〕適用于任何變形或運(yùn)動的單元或面域。更適用于四面體/三角形網(wǎng)格〔2〕在非四面體/三角形網(wǎng)格域中,建議在以下一些情況下使用彈簧光順方法:〔a〕邊界運(yùn)動在*一方向上具有明顯優(yōu)勢〔b〕運(yùn)動主要沿運(yùn)動邊界的法向方向。其它的非四邊形/非四面體網(wǎng)格域〔尤其是多面體網(wǎng)格域〕,建議使用擴(kuò)散光順方法。注意:默認(rèn)情況下,在非四面體/四邊形網(wǎng)格上,彈簧光順方法是關(guān)閉的。用戶可以使用TUI命令激活:define>dynamic-mesh>controls>smoothing-paramters>spring-on-all-shapes"二、擴(kuò)散光順1、擴(kuò)散光順擴(kuò)散光順是通過求解擴(kuò)散方程來獲得網(wǎng)格節(jié)點(diǎn)的位移的。只有一個參數(shù)需要設(shè)置:擴(kuò)散參數(shù)α。擴(kuò)散系數(shù)是通過擴(kuò)散參數(shù)得到的。如下兩公式求得擴(kuò)散系數(shù)γ。與,式中的d為壁面正則距離,v為正則體積。用戶可以通過TUI命令設(shè)置迭代次數(shù)與收斂精度。通常很少進(jìn)展設(shè)置。define>dynamic-mesh>controls>smoothing-parameters>ma*-iterdefine>dynamic-mesh>controls>smoothing-parameters>relative-convergence-tolerance2、基于壁面距離的網(wǎng)格擴(kuò)散光順基于壁面距離的擴(kuò)散光順允許用戶將邊界網(wǎng)格運(yùn)動擴(kuò)散至部節(jié)點(diǎn)的規(guī)律定義為壁面距離的函數(shù)。減少遠(yuǎn)離運(yùn)動邊界的擴(kuò)散能夠使這些區(qū)域吸收更多的網(wǎng)格運(yùn)動,同時更好的保持運(yùn)動壁面附近的網(wǎng)格質(zhì)量。用戶可以通過調(diào)整diffusionparameter來控制網(wǎng)格擴(kuò)散,該參數(shù)的取值圍[0,2]。該參數(shù)默認(rèn)為0,意味著擴(kuò)散參數(shù)為1,也即整個計(jì)算域采用一樣程度的擴(kuò)散。擴(kuò)散參數(shù)越大,則更多的保持近壁面網(wǎng)格,遠(yuǎn)離運(yùn)動邊界的位置將吸收更多的網(wǎng)格運(yùn)動。對于邊界旋轉(zhuǎn)運(yùn)動,通常將擴(kuò)散參數(shù)設(shè)置為1.5默認(rèn)情況下,fluent使用標(biāo)準(zhǔn)壁面距離。該方法使用最近的壁面邊界進(jìn)展正則化。請注意此方法是不包括其它邊界類型〔如inlet,outlet,symmetry,周期邊界等〕,只使用wall壁面邊界。用戶可以使用"generalized“壁面距離,該方法使用一切未聲明為變形的邊界,而不管邊界的類型。兩種方法均使用所有變形網(wǎng)格區(qū)域中發(fā)現(xiàn)的最大距離進(jìn)展正則化。用戶可以使用TUI命令設(shè)置fluent使用廣義邊界:define>dynamic-mesh>controls>smoothing-parameters>boundary-distance-method3、基于單元體積的網(wǎng)格擴(kuò)散光順允許用戶將邊界運(yùn)動擴(kuò)散至部區(qū)域定義為單元尺寸的函數(shù)。在大網(wǎng)格上減小擴(kuò)散助于使這些網(wǎng)格吸收更多的網(wǎng)格變形,能更好的保持小體積單元的網(wǎng)格質(zhì)量。與基于壁面距離的網(wǎng)格擴(kuò)散一樣,用戶也可通過調(diào)整擴(kuò)散參數(shù)來控制擴(kuò)散系數(shù)。默認(rèn)擴(kuò)散參數(shù)為0表示采用統(tǒng)一的擴(kuò)散。更大的擴(kuò)散參數(shù)將會使更大的體積的網(wǎng)格吸收更多的變形。擴(kuò)散參數(shù)取值圍:[0,2]4、擴(kuò)散光順方法的適應(yīng)性能夠應(yīng)用于任何類型的運(yùn)動或變形網(wǎng)格。擴(kuò)散光順方法比彈簧光順計(jì)算開銷要大〔隱式求解擴(kuò)散方程。而彈簧光順是顯式計(jì)算節(jié)點(diǎn)位移〕,但是能夠得到較好的網(wǎng)格質(zhì)量〔特別是對于非四面體/非三角形網(wǎng)格及多面體網(wǎng)格〕。更適合于平移運(yùn)動。擴(kuò)散光順方法與邊界層光順方法及面區(qū)域重構(gòu)方法不兼容。讓網(wǎng)格動起來〔8〕—動態(tài)層方法 (2012-01-2720:28:47)▼標(biāo)簽:雜談 分類:FLUENT技巧動態(tài)層方法〔dynamiclayering〕也許是fluent動網(wǎng)格中最容易理解與設(shè)置的方法了。動態(tài)層方法主要用于棱柱網(wǎng)格區(qū)域〔如六面體網(wǎng)格、三棱柱網(wǎng)格等〕或四邊形網(wǎng)格〔2D幾何〕中,用戶可以使用動態(tài)層方法增加或去除與運(yùn)動邊界相鄰的單元網(wǎng)格層數(shù)。在ANSYSFLUENT中,允許用戶為每一個運(yùn)動邊界指定一個理想高度作為網(wǎng)格層增加或去除的標(biāo)準(zhǔn)。ANSYSFLUENT中的動態(tài)層方法一共有兩種:基于高度的動態(tài)層方法與基于比率的動態(tài)層方法。兩種方法需要設(shè)定的參數(shù)都是一樣的,不同的是,網(wǎng)格分裂或收縮后的網(wǎng)格高度有差異。默認(rèn)情況下使用基于高度的動態(tài)層方法。1、參數(shù)設(shè)置動態(tài)層方法需要設(shè)置的參數(shù)只有兩個:分裂因子與收縮因子。如下圖。其中splitfactor為分裂因子,collapsefactor為收縮因子。2、分裂與收縮的判定假設(shè)用戶設(shè)定的理想網(wǎng)格高度為hideal,這通常為變形域與運(yùn)動域相交的節(jié)點(diǎn)在變形域上的網(wǎng)格高度。有點(diǎn)拗口呵。hideal參數(shù)是在運(yùn)動域中設(shè)定的cellheight。記分裂因子為alpha,收縮因子為beta。當(dāng)網(wǎng)格被拉伸時,當(dāng)hmin>(1+alpha)*hideal時,網(wǎng)格進(jìn)展分裂。式中hmin為第一層網(wǎng)格高度。假設(shè)為基于高度的動態(tài)層方法,分裂后一層網(wǎng)格高度為hideal,另一層網(wǎng)格高度為h-hideal。假設(shè)為基于比率的動態(tài)層方法,則新生的網(wǎng)格高度為h*alpha。當(dāng)網(wǎng)格壓縮時,當(dāng)hmin<beta*hideal時,網(wǎng)格進(jìn)展合并。兩層網(wǎng)格合并為一層。分裂因子與收縮因子的取值圍均為[0,1]3、動態(tài)層方法的適應(yīng)性〔1〕與運(yùn)動面域相鄰的風(fēng)格必須是楔形或六面體〔2D中四邊形〕,盡管網(wǎng)格域中可能包含有混合網(wǎng)格?!?〕網(wǎng)格層必須完全被單邊面域所包圍,除非使用了滑移交界面?!?〕假設(shè)邊界面區(qū)域是雙側(cè)壁面,則用戶必須分割壁面,并使用滑移交界面?!?〕動態(tài)層方法無法與具有懸掛節(jié)點(diǎn)自適應(yīng)方法聯(lián)合使用。讓網(wǎng)格動起來〔9〕—彈簧光順方法實(shí)例上次講到,光順方法計(jì)算網(wǎng)格節(jié)點(diǎn)位移并不是依賴于網(wǎng)格質(zhì)量。因此,僅使用光順方法,只能處理一些小變形的情況。倘假設(shè)變形量過大,則會造成網(wǎng)格質(zhì)量降低,輕則影響收斂,重則出現(xiàn)負(fù)網(wǎng)格,導(dǎo)致計(jì)算出錯。1、問題描述邊長120mm的正方形空腔,有一個邊長30mm的正方形固體。研究固體以角速度1rad/s旋轉(zhuǎn)時對部流場的擾動。1、網(wǎng)格方案由于四邊形網(wǎng)格在剛體變形時會發(fā)生較大的扭曲,不太適合于使用彈簧光順方法,因此本例中使用三角形網(wǎng)格。使用全局尺寸2mm,生成網(wǎng)格如下列圖所示。2、指定運(yùn)動可以使用profile文件或DEFINE_CG_MOTION宏來定義運(yùn)動。我們這里利用udf宏來定義運(yùn)動。UDF宏文件如下:*include“udf.h〞DEFINE_CG_MOTION(RotationVel,dt,vel,omega,time,dtime){omega[2]=1;}omega[2]表示z方向的角速度。本例中以恒定的角速度旋轉(zhuǎn)。將部四條邊定義為rigidbody。并把賦予運(yùn)動速度。3、動網(wǎng)格參數(shù)勾選DynamicMesh選項(xiàng),激活動網(wǎng)格。本例只考慮網(wǎng)格光順,因此只勾選Smoothing。(說明:通常動網(wǎng)格應(yīng)用中不會只使用一種網(wǎng)格更新方法,此處只是考慮光順,所以才會這樣。正常情況下本例應(yīng)當(dāng)使用到網(wǎng)格重構(gòu)〕。點(diǎn)擊setting…按鍵進(jìn)展smoothing設(shè)置面板。如右下列圖所示。采用彈簧光順需要設(shè)置的參數(shù)一共有四個:彈簧常數(shù)因子、邊界節(jié)點(diǎn)松弛、收斂精度及迭代次數(shù)。通常需要設(shè)置的參數(shù)為彈簧常數(shù)因子及邊界節(jié)點(diǎn)松弛,其它兩個參數(shù)采用默認(rèn)即可?!?〕彈簧常數(shù)因子:該參數(shù)取值圍[0,1],取值越大表示阻尼越大,也表示邊界運(yùn)動對部網(wǎng)格的影響越小?!?〕邊界節(jié)點(diǎn)松弛:取值圍[0,1],1表示無松弛,0表示制止節(jié)點(diǎn)位移。這里先將兩參數(shù)取中間值0.5。3、其它設(shè)置創(chuàng)立運(yùn)動區(qū)域。設(shè)置中間四條邊為rigidbody,設(shè)置運(yùn)動udf〔注意UDF必須為編譯型〕。如下列圖所示。4、預(yù)覽網(wǎng)格運(yùn)動〔1〕觀察0.5s后的網(wǎng)格情況可以看到,四角位置網(wǎng)格已經(jīng)扭曲得很厲害了。其它參數(shù)有興趣的同學(xué)可以自己嘗試。讓網(wǎng)格動起來〔10〕——動態(tài)層實(shí)例 (2012-01-3011:13:37)▼標(biāo)簽:雜談 分類:FLUENT技巧與光順方法類似,動態(tài)層方法同樣不是以網(wǎng)格質(zhì)量作為網(wǎng)格更新判據(jù)的。動態(tài)層方法原理很簡單,且非常適合于構(gòu)造網(wǎng)格在*一方向上具有主導(dǎo)運(yùn)動的情況下。本例即是這么一種情況。1、問題描述如下列圖所示,計(jì)算域空間尺寸160mm*50mm,一個長方形固體塊在大的空間沿*軸勻速運(yùn)動,速度0.05m/s,運(yùn)動時間2s,可計(jì)算出運(yùn)動位移0.1m。注意位移不能使邊界重疊,否則計(jì)算會產(chǎn)生錯誤以致退出。2、動網(wǎng)格解決方案假設(shè)使用四邊形網(wǎng)格,由于本例中網(wǎng)格運(yùn)動具有強(qiáng)烈的方向性,滿足動態(tài)層方法的應(yīng)用需求。假設(shè)使用三角形網(wǎng)格,可使用動態(tài)層方法配合網(wǎng)格重構(gòu)。然而,單純的使用動態(tài)層方法是有諸多限制的,假設(shè)不對本例中的幾何進(jìn)展處理,是不滿足動態(tài)層應(yīng)用要求的。主要問題在于:動態(tài)層方法要求運(yùn)動邊界為單側(cè)邊界,則同一個域中不能既拉伸又壓縮。本例顯然不滿足單一的網(wǎng)格運(yùn)動,因?yàn)楣腆w的運(yùn)動前方網(wǎng)格被壓縮,而前方網(wǎng)格被拉伸。因此可將幾何進(jìn)展切割。如下圖,將計(jì)算域如此切割,分解為四個計(jì)算域。如何在ICEMCFD中對計(jì)算域進(jìn)展處理,以后再說。也可以將區(qū)域切割后分別劃分網(wǎng)格。邊界類型:1,2,7,8:interface對類型,且為變形域,1、2伸長,7、8縮短。3,4:wall類型,且為變形域5,6:

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論