UDF入門課和UDF并行課
UDF入門課和并行課為收費(fèi)課程。要報(bào)名的同學(xué)請微信聯(lián)系我。沒有我微信的同學(xué)請b站私信聯(lián)系我。
Fluent可以為用戶提供多種流動傳熱計(jì)算模型,包括流固耦合傳熱、多組分流模型、多相流模型、化學(xué)反應(yīng)模型、燃燒模型、顆粒兩相流模型、融化凝固模型、表面反應(yīng)模型、磁流體模型等。這些模型通常都是經(jīng)過大量驗(yàn)證的經(jīng)典模型。
對工程計(jì)算來說,這些經(jīng)過驗(yàn)證的經(jīng)典模型可以保證計(jì)算結(jié)果的合理性和準(zhǔn)確性,具有非常高的實(shí)用價值。但對科學(xué)研究來說,這些經(jīng)典模型常常無法滿足創(chuàng)新性研究的要求,需要發(fā)展新理論和新模型。作為閉源軟件,用戶不可能通過直接修改Fluent源程序的方式來添加自己的新模型。因此,F(xiàn)luent軟件以用戶自定義函數(shù)(UDF)的形式為用戶提供了大量的求解器程序的接口函數(shù),方便用戶自行修改或添加模型。
Fluent的UDF函數(shù)非常豐富,除了不能修改Fluent的迭代算法外,用戶可以通過UDF任意修改Fluent現(xiàn)有的各種方程,也可以隨心所欲的添加新方程和新模型,甚至可以讓Fluent可以和其他程序耦合,以求解更復(fù)雜的問題。
目前Fluent開放出來的UDF DEFINE_xxx函數(shù)有83個,其中包括11個通用函數(shù),41個模型設(shè)置函數(shù),以及各類專用函數(shù),例如兩相流專用函數(shù)、動網(wǎng)格專用函數(shù),DPM專用函數(shù)等。因此,不可能也沒必要在3節(jié)入門課中將全部函數(shù)講完。
UDF入門課為3節(jié)課,主要討論UDF的數(shù)據(jù)結(jié)構(gòu),F(xiàn)luent的迭代求解流程以及不同UDF函數(shù)在Fluent迭代過程中的調(diào)用位置,以及2個最常用的模型設(shè)置函數(shù)(DEFINE_PROFILE和DEFINE_SOURCE)和1個最常用的通用函數(shù)(DEFINE_ADJUST)。通過這些基礎(chǔ)知識,大家可以了解到UDF的運(yùn)行邏輯、調(diào)用方式、典型程序結(jié)構(gòu),以及UDF手冊的使用方法。了解了這些內(nèi)容,大家就有能力讀懂UDF手冊,并在UDF手冊(以及大叔課后答疑)的幫助下,去實(shí)現(xiàn)自己的特殊模型了。
第1講:通過DEFINE_PROFILE函數(shù)算例,講解UDF的基本程序結(jié)構(gòu)、編譯和連接方法,理解UDF的基本流程。介紹現(xiàn)有UDF函數(shù)及分類(6類83個函數(shù))。講解Fluent的內(nèi)存數(shù)據(jù)結(jié)構(gòu),以便更容易學(xué)習(xí)和理解后續(xù)復(fù)雜的UDF函數(shù)。


第2講:講解DEFINE_SOURCE函數(shù)的基本用法和高級用法,并介紹UDF函數(shù)庫(數(shù)據(jù)訪問函數(shù)和循環(huán)函數(shù))。



第3講:介紹Fluent的迭代求解流程以及不同UDF函數(shù)在Fluent迭代過程中的調(diào)用位置,
講解如何通過DEFINE_ADJUST函數(shù)靈活實(shí)現(xiàn)DEFINE_PROFILE和DEFINE_SOURCE無法完成的任務(wù)。


========================
當(dāng)網(wǎng)格數(shù)量較多時,并行計(jì)算是加快計(jì)算速度的有效方法。在并行計(jì)算中,網(wǎng)格被近乎平均地分配到各個計(jì)算節(jié)點(diǎn),每個計(jì)算節(jié)點(diǎn)獨(dú)立運(yùn)算,并定期(每迭代步或每若干迭代步)交換數(shù)據(jù),更新全場變量。
對UDF來說,F(xiàn)luent無法預(yù)知用戶程序功能,更無法預(yù)知為完成這些功能,用戶程序需要在節(jié)點(diǎn)間交換哪些數(shù)據(jù),什么時候交換數(shù)據(jù)。因此,在并行計(jì)算時,用戶必須自行定義節(jié)點(diǎn)間需要交換的數(shù)據(jù)以及交換數(shù)據(jù)的時間。這需要用戶了解并行計(jì)算的基本原理,并對UDF程序做并行化處理,以滿足并行計(jì)算的數(shù)據(jù)交換要求。
UDF并行課為2節(jié)課,主要講解Fluent并行計(jì)算的基本概念,包括主節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)、網(wǎng)格在計(jì)算節(jié)點(diǎn)上的分配形式、節(jié)點(diǎn)間通訊以及UDF的并行編譯指示符。通過并行課的學(xué)習(xí),大家就可以自行判斷自己的UDF程序哪部分需要并行化,哪部分不需要并行化,并對需要并行化的程序段進(jìn)行并行處理。
第1講:解釋Fluent并行計(jì)算中主節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)的概念,以及計(jì)算節(jié)點(diǎn)上的網(wǎng)格分布形式、數(shù)據(jù)交換方式,并通過DEFINE_PROFILE和DEFINE_SOURCE函數(shù)理解UDF如何在并行節(jié)點(diǎn)間如何進(jìn)行協(xié)調(diào)計(jì)算。


第2講:通過DEFINE_ADJUST函數(shù)的并行化,講解UDF如何在不同節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)分發(fā)和匯總,以及如何使用并行編譯指示符精確控制不同節(jié)點(diǎn)的運(yùn)行代碼。


以上課程需要安裝Microsoft Visual Studio。
要報(bào)名的同學(xué)請微信聯(lián)系我。沒有我微信的同學(xué)請b站私信聯(lián)系我。
計(jì)算傳熱學(xué)大叔