
發(fā)布
注冊(cè)
/
登錄ansys用戶函數(shù)定義
關(guān)注創(chuàng)建者:王靖雯 創(chuàng)建時(shí)間:2023-03-07

ansys用戶函數(shù)定義的實(shí)例教程
為了方便用戶的建模操作,COMSOL 軟件中預(yù)置了很多常用的變量、物理常數(shù),以及函數(shù),并提供很多自定義函數(shù)。“使用技巧”系列將介紹這些預(yù)置功能,希望能夠提高大家的建模使用經(jīng)驗(yàn)。
訪問(wèn) COMSOL 官網(wǎng)“產(chǎn)品文檔”頁(yè)面(comsol.com/documentation)或點(diǎn)擊文末“閱讀原文”,可查看本系列全部?jī)?nèi)容。
今天將介紹本系列的第三部分:函數(shù)。
函數(shù)
在“模型開(kāi)發(fā)器”中,有兩種類型的函數(shù):內(nèi)置函數(shù)和用戶定義的函數(shù)。函數(shù)可以是標(biāo)量值或與輸入變?cè)嚓P(guān)的場(chǎng)值。某些函數(shù)的輸入和輸出變?cè)伎梢杂袉挝弧?內(nèi)置數(shù)學(xué)函數(shù)
可以直接使用的數(shù)學(xué)函數(shù),不需要再根據(jù)定義來(lái)編寫復(fù)雜的表達(dá)式。
這些函數(shù)的輸入或輸出變?cè)獩](méi)有單位。
內(nèi)置運(yùn)算符函數(shù)
這些內(nèi)置函數(shù)的行為與內(nèi)置數(shù)學(xué)函數(shù)不同。它們可能不屬于介紹性文本范疇,但在此列出以保證保留名稱列表的完整性。有關(guān)更多信息,請(qǐng)參閱 Reference Manual。
用戶定義的函數(shù)
用戶定義的函數(shù)可以在模型樹(shù)的全局定義節(jié)點(diǎn)下(對(duì)于每個(gè)組件,則在定義節(jié)點(diǎn)下)定義。從函數(shù)菜單中選擇一個(gè)模板并輸入設(shè)置,定義函數(shù)的名稱和詳細(xì)形狀。
展開(kāi) 圖1.UDF用戶手冊(cè)
UDF介紹: 所謂UDF-用戶自定義函數(shù)(User-defined functions),學(xué)習(xí)過(guò)編程語(yǔ)言的同學(xué)對(duì)此應(yīng)該并不陌生,無(wú)論是C語(yǔ)言、JAVA還是Python,自定義函數(shù)被廣泛的應(yīng)用著,它能夠使語(yǔ)言邏輯和代碼的簡(jiǎn)潔性大幅度提高。Fluent的UDF有著同樣的功能,但是又不完全相同。
在Fluent中,UDF使用C語(yǔ)言來(lái)編寫,因此需要大家有一定的C語(yǔ)言基礎(chǔ),但是不必過(guò)于深入,大家只需要了解基本的格式和語(yǔ)法結(jié)構(gòu)即可,同時(shí)需要對(duì)指針有一點(diǎn)了解。建議有其他語(yǔ)言基礎(chǔ)的同學(xué)花一周的時(shí)間學(xué)習(xí)一下C語(yǔ)言---一周的時(shí)間已經(jīng)足夠了。
UDF特殊性: 接下來(lái)我們說(shuō)一下Fluent UDF的特殊性,實(shí)際上即便C語(yǔ)言功底很厲害的高手并不一定能夠?qū)懞肬DF,為什么呢?因?yàn)镕luent UDF和C語(yǔ)言的自定義函數(shù)完全就是兩碼事。它是Fluent封裝好的可以傳遞給求解器的函數(shù),主要由各種宏組成,每個(gè)宏有各自的作用。說(shuō)的通俗易懂一點(diǎn),其實(shí)UDF就是Fluent已經(jīng)給用戶起好了自定義函數(shù)的名字了,用戶達(dá)到什么樣的目的,使用相對(duì)應(yīng)的宏就行。類似于我乘坐地鐵去電影院,為了達(dá)到去電影院的目的,我使用了名叫地鐵的工具,這里的名字“地鐵”就相當(dāng)于Fluent中的宏;如果放到C語(yǔ)言中,你可以給“地鐵”起任意名字如“自行車”,這樣會(huì)帶來(lái)混亂,導(dǎo)致Fluent求解器識(shí)別不了你的目的。比如用戶想讓進(jìn)口流體的速度正弦變化,那么就需要找到能夠修改邊界條件的宏-DEFINE_PROFILE(name, t, i),然后在里面指定速度函數(shù)即可。
圖2.C語(yǔ)言自定義函數(shù)
圖3.Fluent UDF
UDF功能: 對(duì)于Fluent而言,UDF可以顯著增強(qiáng)其功能,使用UDF你可以做如下的事情:
1.
展開(kāi) 簡(jiǎn)介</strong></p><p class="ql-align-center"><br></p><p> 今天我們接著說(shuō)Fluent UDF功能,我們經(jīng)常使用的UDF宏主要有以下幾種:</p><p>DEFINE_PROFILE: 定義模型邊界</p><p>DEFINE_ADJUST: 用于協(xié)調(diào)計(jì)算過(guò)程中物理量</p><p>DEFINE_INIT: 初始化宏,用于自定義初始化</p><p>DEFINE_PROPERTY: 定義材料物性</p><p> 上述的幾種宏基本上無(wú)論使用什么物理模型都會(huì)用到,還有部分宏是在特定的模型下才會(huì)使用,如使用DPM模型時(shí)用DEFINE_DPM_SOURCE宏來(lái)定義DPM源項(xiàng),而普通的物理模型下源項(xiàng)通過(guò)DEFINE_SOURCE宏定義即可。</p><p> </p><p> 今天我們主要了解DEFINE_PROFILE宏的使用,DEFINE_PROFILE宏可以用來(lái)定義邊界條件,當(dāng)邊界條件比較復(fù)雜時(shí),如定義壁面溫度<em>T</em><sub>w</sub>=f(y),即壁面溫度是y的函數(shù)可以使用DEFINE_PROFILE宏進(jìn)行定義。
展開(kāi) 混合模型典型應(yīng)用場(chǎng)景為沉降、旋風(fēng)分離、泡狀流等
必須使用分離式求解器
不能用在沿流動(dòng)方向的周期性流動(dòng)
不能用大渦模擬
不能用無(wú)粘流動(dòng)
不能用二階隱式時(shí)間格式
光滑直管內(nèi)液體蒸發(fā)換熱模型
二維光滑圓管,飽和壓力0.57MPa
管壁熱流密度10kw/m2
進(jìn)口質(zhì)量流量288kg/m2s
使用UDF定義
蒸發(fā)飽和溫度;汽化潛熱;管壁熱流密度;管徑;飽和蒸汽焓
干度沿管程變化規(guī)律
向氣相轉(zhuǎn)移的質(zhì)量
耦合UDF
定義多相流模型為mixture
設(shè)置質(zhì)量和能量源項(xiàng)的UDF
展開(kāi) 附件下載
聯(lián)系工作人員獲取附件
概述
本文使用兩個(gè)示例演示了如何使用 ZPL 創(chuàng)建用戶自定義解。第一個(gè)示例介紹了如何創(chuàng)建 ZPL 解以確保序列文件中像面的曲率半徑等于系統(tǒng)的 Petzval 曲率。第二個(gè)示例介紹了如何在非序列元件編輯器(Non-Sequential Component Editor)中基于其他物體的參數(shù)來(lái)約束的物體位置。
簡(jiǎn)介
求解 ( Solve ) 是可以在諸如鏡頭數(shù)據(jù)編輯器或非序列元件編輯器之類的編輯器中主動(dòng)調(diào)整特定值的功能。例如,可以在曲率半徑,圓錐系數(shù)或 TCE 上指定求解類型,并通過(guò)單擊要放置的求解單元的求解框進(jìn)行設(shè)置。盡管 OpticStudio 提供了許多默認(rèn)的求解類型,但用戶有可能希望自定義求解類型,這可以通過(guò)使用Zemax 編程語(yǔ)言( Zemax Programming Language ,ZPL)來(lái)實(shí)現(xiàn)。
ZPL 宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數(shù),多重結(jié)構(gòu)等)。可以像任何其他求解類型一樣,通過(guò)在編輯器中單擊參數(shù)單元格右側(cè)的小框來(lái)設(shè)置 ZPL 宏求解。
ZPL 宏求解通過(guò)執(zhí)行 ZPL 宏來(lái)確定解的值,并使用 SOLVERETURN 關(guān)鍵字將其返回給編輯器。一旦創(chuàng)建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:
請(qǐng)注意,在求解框中輸入的宏名稱不區(qū)分大小寫,并且不需要其擴(kuò)展名(.ZPL)。為確保宏求解按照預(yù)期的方式工作,需要遵循一些規(guī)則,請(qǐng)參閱“技巧和陷阱”部分以獲取更多信息。
Petzval 曲率求解示例
假設(shè)我們想要能夠自動(dòng)將像面的曲率半徑設(shè)置為等于 Petzval 曲率的解。
展開(kāi) 
ansys用戶函數(shù)定義的相關(guān)專題、標(biāo)簽、搜索
ansys用戶函數(shù)定義的最新內(nèi)容
附件下載
聯(lián)系工作人員獲取附件
概述
本文使用兩個(gè)示例演示了如何使用 ZPL 創(chuàng)建用戶自定義解。第一個(gè)示例介紹了如何創(chuàng)建 ZPL 解以確保序列文件中像面的曲率半徑等于系統(tǒng)的 Petzval 曲率。第二個(gè)示例介紹了如何在非序列元件編輯器(Non-Sequential Component Editor)中基于其他物體的參數(shù)來(lái)約束的物體位置。
簡(jiǎn)介
求解 ( Solve ) 是可以在諸如鏡頭數(shù)據(jù)編輯器或非序列元件編輯器之類的編輯器中主動(dòng)調(diào)整特定值的功能
<p class="ql-align-center"><strong>1. 簡(jiǎn)介</strong></p><p class="ql-align-center"><br></p><p> 今天我們接著說(shuō)Fluent UDF功能,我們經(jīng)常使用的UDF宏主要有以下幾種:</p><p>DEFINE_PROFILE:
前面我們所講述的Fluent的相關(guān)知識(shí)只是很少很少的一部分,但是今天我們還是開(kāi)始一部分新的知識(shí)。之所以這樣做,是因?yàn)榻裉焖v述的知識(shí)在大家以后的學(xué)習(xí)中用途很廣泛,同時(shí)這部分知識(shí)需要大家提前學(xué)習(xí)一些基礎(chǔ)知識(shí)。
圖1.UDF用戶手冊(cè)
UDF介紹: 所謂UDF-用戶自定義函數(shù)(User-defined functions),學(xué)習(xí)過(guò)編程語(yǔ)言的同學(xué)對(duì)此應(yīng)該并不陌生,無(wú)論是C語(yǔ)言、JAVA
本文使用兩個(gè)示例演示了如何使用ZPL創(chuàng)建用戶自定義解。 第一個(gè)示例介紹了如何創(chuàng)建ZPL解以確保序列文件中像面的曲率半徑等于系統(tǒng)的Petzval曲率。第二個(gè)示例介紹了如何在非序列元件編輯器 ( Non-Sequential Component Editor ) 中基于其他物體的參數(shù)來(lái)約束的物體位置。作者 Nam-Hyong Kim, updated by Alessandra Croce下載文章附件簡(jiǎn)介求解
白內(nèi)障手術(shù)是當(dāng)今最常見(jiàn)的外科手術(shù)之一,在該手術(shù)中,患者的晶狀體由于光散射增加而變得渾濁,從而被人工晶狀體(IOL)取代。隨著白內(nèi)障人群越來(lái)趨于越年輕化,對(duì)優(yōu)質(zhì)鏡片的需求不斷增長(zhǎng),以提高可實(shí)現(xiàn)的圖像質(zhì)量并解決無(wú)需眼鏡聚焦的問(wèn)題。衍射IOL通過(guò)同時(shí)創(chuàng)建多個(gè)焦點(diǎn)來(lái)提供近距離和遠(yuǎn)距離的清晰視覺(jué),從而提供了一種可行的解決方案,在本文中我們演示了如何通過(guò)使用用戶自定義表面(UDS)DLL來(lái)擴(kuò)展Zemax
混合模型典型應(yīng)用場(chǎng)景為沉降、旋風(fēng)分離、泡狀流等
必須使用分離式求解器
不能用在沿流動(dòng)方向的周期性流動(dòng)
不能用大渦模擬
不能用無(wú)粘流動(dòng)
不能用二階隱式時(shí)間格式
光滑直管內(nèi)液體蒸發(fā)換熱模型
二維光滑圓管,飽和壓力0.57MPa
管壁熱流密度10kw/m2
進(jìn)口質(zhì)量流量
為了方便用戶的建模操作,COMSOL 軟件中預(yù)置了很多常用的變量、物理常數(shù),以及函數(shù),并提供很多自定義函數(shù)。“使用技巧”系列將介紹這些預(yù)置功能,希望能夠提高大家的建模使用經(jīng)驗(yàn)。
訪問(wèn) COMSOL 官網(wǎng)“產(chǎn)品文檔”頁(yè)面(comsol.com/documentation)或點(diǎn)擊文末“閱讀原文”,可查看本系列全部?jī)?nèi)容。
今天將介紹本系列的第三部分:函數(shù)。
函數(shù)
在“模型開(kāi)發(fā)器”中,有兩種類型的函數(shù)