【轉(zhuǎn)載】FLUENT中文幫助——多重網(wǎng)格(趙玉新)
2017-02-19 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
非結(jié)構(gòu)多重網(wǎng)格
在非結(jié)構(gòu)網(wǎng)格中使用多重網(wǎng)格的主要困難在于粗化網(wǎng)格的創(chuàng)建和使用。在結(jié)構(gòu)網(wǎng)格中,可以通過簡單的從精細(xì)網(wǎng)格中移去每隔一個(gè)的網(wǎng)格線來得到粗化網(wǎng)格而且限制和延拓算子很容易用公式表示出來(如:注入和雙線性插值)。
FLUENT中使用兩種多重網(wǎng)格方法分開的方式克服了在非結(jié)構(gòu)網(wǎng)格上應(yīng)用多重網(wǎng)格的困難。迄今為止所討論的基本原則和多重網(wǎng)格循環(huán)一節(jié)中討論的循環(huán)策略是相同的,限制、延拓和粗化網(wǎng)格算子的建構(gòu)技巧是不同的,具體在代數(shù)多重網(wǎng)格(AMG)和全近似存儲(chǔ)(FAS)多重網(wǎng)格兩節(jié)中分別討論了AMG和FAS方法。
譯者注:
多重網(wǎng)格法基本原理
微分方程的誤差分量可以分為兩大類,一類是頻率變化較緩慢的低頻分量;另一類是頻率高,擺動(dòng)快的高頻分量。一般的迭代方法可以迅速地將擺動(dòng)誤差衰減,但對那些低頻分量,迭代法的效果不是很顯著。高頻分量和低頻分量是相對的,與網(wǎng)格尺度有關(guān),在細(xì)網(wǎng)格上被視為低頻的分量,在粗網(wǎng)格上可能為高頻分量。
多重網(wǎng)格方法作為一種快速計(jì)算方法,迭代求解由偏微分方程組離散以后組成的代數(shù)方程組,其基本原理在于一定的網(wǎng)格最容易消除波長與網(wǎng)格步長相對應(yīng)的誤差分量。該方法采用不同尺度的網(wǎng)格,不同疏密的網(wǎng)格消除不同波長的誤差分量,首先在細(xì)網(wǎng)格上采用迭代法,當(dāng)收斂速度變緩慢時(shí)暗示誤差已經(jīng)光滑,則轉(zhuǎn)移到較粗的網(wǎng)格上消除與該層網(wǎng)格上相對應(yīng)的較易消除的那些誤差分量,這樣逐層進(jìn)行下去直到消除各種誤差分量,再逐層返回到細(xì)網(wǎng)格上。
目前兩層網(wǎng)格方法從理論上已證明是收斂的,并且其收斂速度與網(wǎng)格尺度無關(guān)[哈克布思,1988]。 多重網(wǎng)格法是迭代法與粗網(wǎng)格修正的組合,經(jīng)過證明,迭代法可迅速地將那些高頻分量去掉,粗網(wǎng)格修正則可以幫助消除那些光滑了的低頻分量,而對那些高頻分量基本不起作用。
在多重網(wǎng)格計(jì)算中,需要一些媒介把細(xì)網(wǎng)格上的信息傳遞到粗網(wǎng)格上去,同時(shí)還需要一些媒介把粗網(wǎng)格上的信息傳遞到細(xì)網(wǎng)格上去。限制算子Iih(i-1)h是把細(xì)網(wǎng)格i-1層上的殘余限制到粗網(wǎng)格i層上的算子,最簡單的算子是平凡單射,另外還有特殊加權(quán)限制;插值算子Iih(i-1)h是把粗網(wǎng)格i層上的結(jié)果插值到細(xì)網(wǎng)格i-1層上的算子,一般采用線性插值或完全加權(quán)限制算子。
需要說明的是在多重網(wǎng)格迭代方法中,粗網(wǎng)格修正之前,細(xì)網(wǎng)格必須進(jìn)行光滑迭代,以消除高頻誤差,使粗網(wǎng)格修正最有效地發(fā)揮其作用;在粗網(wǎng)格修正之后,不可避免的引入高頻誤差,所以也必須進(jìn)行光滑迭代,不過高頻誤差能很快的通過光滑迭代消除。
Multigrid Cycles
多重網(wǎng)格循環(huán)可以定義為在每一個(gè)網(wǎng)格層面通過網(wǎng)格層次時(shí)在網(wǎng)格層面內(nèi)應(yīng)用的遞歸程序。FLUENT中有四種多重網(wǎng)格循環(huán):V,W,F以及靈活("flex")循環(huán)。V和W循環(huán)可以用在AMG和FAS中,F和靈活循環(huán)只限用于AMG方法。(W和靈活AMG循環(huán)由于要花費(fèi)大量的計(jì)算而不可用于解耦合方程組。)
The V and W Cycles
下面兩個(gè)圖分別是V和W多重網(wǎng)格循環(huán)(定義如下)。在每一個(gè)圖中,多重網(wǎng)格循環(huán)被描述為正方形,然后被擴(kuò)展來表示循環(huán)內(nèi)執(zhí)行的個(gè)別步驟。當(dāng)你讀下面的步驟時(shí),你可能想要遵循圖中所描述的步驟。
Figure 1: V循環(huán)多重網(wǎng)格
Figure 2: W循環(huán)多重網(wǎng)格
對于V和W循環(huán),各個(gè)層面的轉(zhuǎn)換由三個(gè)參數(shù)控制:b_1,b_2和b_3:
1. b_1“濾波”(有時(shí)稱為預(yù)松弛掃描),在當(dāng)前網(wǎng)格層面進(jìn)行濾波減少誤差(當(dāng)?shù)卣`差)的高頻部分。
在圖1和2中,這一步被描述為一個(gè)循環(huán),并標(biāo)記了多重網(wǎng)格循環(huán)的起點(diǎn)。誤差的高頻分量必須減小直至所剩下的誤差在下一個(gè)較粗糙的網(wǎng)格中沒有明顯的混淆現(xiàn)象。
如果這是最粗糙的網(wǎng)格層面,在這個(gè)層面的多重網(wǎng)格循環(huán)就結(jié)束了(在圖1和2中有3個(gè)粗糙網(wǎng)格層,所以描述層面3多重網(wǎng)格循環(huán)的四邊形等價(jià)于每一個(gè)圖中最后一個(gè)圖表的循環(huán))
注意:在AMG方法中b_1的默認(rèn)值是0(即:沒有預(yù)松弛)。
2. 接著就是用適當(dāng)?shù)南拗扑阕訉栴}限制映射到下一個(gè)粗糙網(wǎng)格層面。
在圖1和2中,從精細(xì)網(wǎng)格限制映射到較粗糙網(wǎng)格層面用向下的斜線來表示。
3. 通過執(zhí)行b_2多重網(wǎng)格循環(huán)可以減少粗化網(wǎng)格的誤差(在圖1和2中用四邊形表示)。通常說來,對于固定的多重網(wǎng)格策略,b_2是1或者2,分別對應(yīng)V循環(huán)和W循環(huán)多重網(wǎng)格。
4. 然后,使用適當(dāng)?shù)难油厮阕?在粗化網(wǎng)格上積累的校正用內(nèi)插替換返回到精細(xì)網(wǎng)格并加到精細(xì)網(wǎng)格解中。
在圖1和2中,延拓算子用斜向上的線來表示。
現(xiàn)在在精細(xì)網(wǎng)格層面上出現(xiàn)了高頻誤差,這個(gè)誤差是由于延拓程序使用傳遞矯正而造成的。
5. 在最后一步,執(zhí)行b_3光滑(后松弛)來去掉b_2網(wǎng)格循環(huán)在粗糙網(wǎng)格中引進(jìn)的高頻誤差。
在圖1和2中,松弛程序用一個(gè)三角形表示。
注意:在FAS方法中,在這一步中使用顯式格式中的拉普拉斯光滑算子,校正又會(huì)被進(jìn)行光滑處理,b_3的默認(rèn)值是零(也就是說,不進(jìn)行這種光滑處理);在最精細(xì)的網(wǎng)格層面的循環(huán)結(jié)束處從來不進(jìn)行b_3光滑。
代數(shù)多重網(wǎng)格(AMG)
我們將會(huì)看到,這一算法之所以被稱為代數(shù)多重網(wǎng)格格式,主要是因?yàn)榇植趯用娣匠痰纳刹恍枰诖植趯邮褂萌魏螏缀螆D形或者重新離散;這一功能使得在使用非結(jié)構(gòu)網(wǎng)格時(shí)AMG尤其有用。優(yōu)點(diǎn)在于:不必創(chuàng)建或者存儲(chǔ)粗糙網(wǎng)格,而且不需要在粗糙層面估計(jì)任何流量或者源項(xiàng)。這一方法和FAS (有時(shí)被稱為幾何學(xué)的)多重網(wǎng)格方法形成鮮明對比,在FAS方法中需要網(wǎng)格的層級,和每一個(gè)層面的離散方程。。從理論上說,FAS優(yōu)于AMG方法的地方在于,對于非線性問題前者可以做得更好,這是因?yàn)橄到y(tǒng)的非線性可以通過重新離散傳到粗糙層面;當(dāng)使用AMG時(shí),一旦系統(tǒng)被線化,直到細(xì)化層面算子被更新,求解器才會(huì)“感覺到”非線性。
AMG限制和延拓算子
這里所使用的限制和延拓算子是基于附加校正(AC)策略的,結(jié)構(gòu)網(wǎng)格的附加校正是由Hutchinson和Raithby[68]描述的。層間的傳遞是用分段線性插值和延拓完成的。任何粗化層面單元的缺點(diǎn)由細(xì)化層面包含的缺點(diǎn)的總和給出的,通過注入粗化層面的值來獲取細(xì)化層面的校正。在這種方式中,延拓算子由限制算子的轉(zhuǎn)置給出。
限制算子是用細(xì)化層面單元粗化或者分組到粗化層面單元來定義。在這個(gè)過程中,每一個(gè)細(xì)化層面的單元用一個(gè)或者更多的最強(qiáng)相鄰網(wǎng)格來分組,對當(dāng)前未分組的相鄰網(wǎng)格優(yōu)先選擇。這個(gè)算法嘗試將單元集中到成組的固定尺寸中,一般是二或者四組,但是可以指定任何數(shù)。在分組的前后關(guān)系中,最強(qiáng)是指當(dāng)前單元i的相鄰單元j的系數(shù)A_ij是最大的。對于成組的耦合方程,A_ij是一個(gè)塊矩陣,它的大小的度量被簡單的看成第一個(gè)單元的大小。除此之外,對于給定單元的一組耦合方程被一起處理,而且在不同的粗糙單元中不再劃分。這樣,就對系統(tǒng)中的每一個(gè)方程產(chǎn)生了相同的粗化。
AMG粗糙層面算子
使用Galerkin方法來建構(gòu)粗化層面算子A^H。在這里,當(dāng)轉(zhuǎn)移到粗化層面時(shí),與細(xì)化層面解有關(guān)的缺陷必須消除。因此我們可以寫出:
在雙重時(shí)間步中的方程5和限制和延拓中的方程3的基礎(chǔ)上替換d^new 和f^new可以得到:
現(xiàn)在重新整理和使用雙重時(shí)間步一節(jié)中的方程5有:
比較限制和延拓一節(jié)中的方程1和方程5可以得到下面的粗化層面算子的表達(dá)式:
因此,粗化層面算子的建構(gòu)減少到所有精細(xì)層面單元的對角線與組中的相應(yīng)對角線下面的塊之和來形成該組粗化單元的對角線塊。
F循環(huán)
多重網(wǎng)格F循環(huán)本質(zhì)上是V和W循環(huán)的結(jié)合。
多重網(wǎng)格循環(huán)是一個(gè)遞歸程序,該程序通過在當(dāng)前層面完成單一網(wǎng)格循環(huán)來擴(kuò)展到下一個(gè)粗糙網(wǎng)格層面。參閱V和W循環(huán)一節(jié)中的圖1中的V和W循環(huán)以及圖2中的V和W循環(huán)我們可以看出,F循環(huán)就是用0-1層循環(huán)(每一個(gè)圖中的第二個(gè)圖表)程序來替換當(dāng)前層(描述單一循環(huán))的方塊。可以看出,V循環(huán)包括:
W循環(huán)包括:
F循環(huán)則是用W循環(huán)之后進(jìn)行V循環(huán)來構(gòu)成:
正如預(yù)料的那樣,F循環(huán)比V循環(huán)需要更多的計(jì)算,但是比W循環(huán)花費(fèi)要少一些。但是它的收斂性比V循環(huán)要好,大致和W循環(huán)的收斂性差不多。對于耦合求解器設(shè)置來說,F循環(huán)是默認(rèn)的AMG循環(huán)類型。
靈活循環(huán)
對于靈活循環(huán),使用粗化網(wǎng)格的計(jì)算由下圖中所示的邏輯控制多重網(wǎng)格程序來實(shí)現(xiàn)。這一邏輯控制可以保證當(dāng)前層面的網(wǎng)格的殘差減小速度足夠慢時(shí)就會(huì)調(diào)用較粗糙網(wǎng)格的計(jì)算。除此之外,當(dāng)當(dāng)前粗糙網(wǎng)格層上的校正迭代解充分收斂而且因此應(yīng)該轉(zhuǎn)到下一層精細(xì)網(wǎng)格時(shí),多重網(wǎng)格控制會(huì)做出適當(dāng)?shù)奶幚?。這兩個(gè)判斷由下圖中所示的兩個(gè)參數(shù)a和b來控制。詳細(xì)請參閱下面內(nèi)容。注意多重網(wǎng)格程序的邏輯是這樣的:在某一方程上的單一全局迭代過程中,可能會(huì)重復(fù)處理網(wǎng)格層面。例如:對于4層多重網(wǎng)格,其中包括0,1,2,3四層,解給定輸運(yùn)方程的靈活多重網(wǎng)格程序可能會(huì)按這樣的順序處理網(wǎng)格層面:0-1-2-3-2-3-2-1-0-1-2-1-0:
Figure 1靈活多重網(wǎng)格的邏輯控制
靈活循環(huán)和V,W循環(huán)之間的主要區(qū)別是:靈活循環(huán)會(huì)通過殘差減小的公差和終止判據(jù)的滿足情況來確定什么時(shí)候,按什么樣的頻率來處理每一層網(wǎng)格,而V和W循環(huán)則明確定義了各個(gè)層面之間的轉(zhuǎn)換模式。
當(dāng)當(dāng)前層面的誤差減小速度不夠快時(shí),多重網(wǎng)格程序就會(huì)調(diào)用下一個(gè)網(wǎng)格層面的計(jì)算,具體判斷公式如下:
其中,R_i是在當(dāng)前層面經(jīng)過第i步迭代之后從當(dāng)前網(wǎng)格層面計(jì)算出的殘差和的絕對值。上面的公式表明,如果經(jīng)過i步迭代后迭代解的殘差比某一分?jǐn)?shù)b(在0和1之間)大,就需要處理下一個(gè)粗化網(wǎng)格層面了。因此b被稱為殘差減小公差,用于確定什么時(shí)候放棄當(dāng)前網(wǎng)格層面的迭代解,并轉(zhuǎn)移到下一個(gè)更粗糙的網(wǎng)格上解校正方程。B的值控制了處理的粗化網(wǎng)格層面的頻率。默認(rèn)值是0.7。如果b的值較大,就會(huì)處理較小的頻率,反之亦然。
假定殘差減小速度足夠塊,校正方程會(huì)在當(dāng)前網(wǎng)格層收斂,這樣就可以轉(zhuǎn)到下一個(gè)更精細(xì)的網(wǎng)格層面計(jì)算。
當(dāng)校正解的誤差減小到該網(wǎng)格層初始誤差的某一分?jǐn)?shù)a(在0和1之間)時(shí),當(dāng)前網(wǎng)格層上的校正方程就可以被認(rèn)為是充分收斂了。
其中,R_i是在當(dāng)前層面經(jīng)過第i步迭代之后從當(dāng)前網(wǎng)格層面計(jì)算出的殘差。R_0時(shí)在當(dāng)前全局計(jì)算中該網(wǎng)格層面最初獲得的殘差。參數(shù)a被稱為終止判據(jù),默認(rèn)值是0.1。注意,上面的方程也用于多重網(wǎng)格程序中最低(最精細(xì))網(wǎng)格層面的終止計(jì)算。因此,繼續(xù)在每一個(gè)網(wǎng)格層面(包括最精細(xì)的網(wǎng)格層面)進(jìn)行松弛,直到滿足該方程的判據(jù)(或者直到完成最大的迭代步,而所指定的判據(jù)還沒有實(shí)現(xiàn))。
全近似格式(FAS)多重網(wǎng)格
FLUENT中FAS形成多重網(wǎng)格層級的方法是將精細(xì)網(wǎng)格的成組單元結(jié)合起來形成粗化網(wǎng)格單元。如下圖所示,粗化網(wǎng)格單元是用節(jié)點(diǎn)周圍的單元聚束形成的。根據(jù)網(wǎng)格的拓?fù)浣Y(jié)構(gòu)的不同,這一方法可以形成不規(guī)則網(wǎng)格和不定的表面數(shù)。但是,網(wǎng)格層面的簡單創(chuàng)建和植入也就對應(yīng)了簡單的延拓和松弛算子。
Figure 1: 節(jié)點(diǎn)聚束形成粗化網(wǎng)格單元
有趣的是,雖然粗化網(wǎng)格單元看起來很不規(guī)則,但是在單元表面上還是看不到鋸齒狀的結(jié)構(gòu)。離散只使用單元表面的區(qū)域映射,因此將兩個(gè)不規(guī)則外形單元分開的每組鋸齒狀單元表面,在二維問題中等價(jià)于連接鋸齒單元終點(diǎn)的一條直線,在三維問題中等價(jià)于從不規(guī)則但連續(xù)的幾何形狀映射而來的區(qū)域。這種優(yōu)化方法減少了所需的內(nèi)存和計(jì)算時(shí)間。
FAS限制和延拓算子
FAS既需要精細(xì)網(wǎng)格解f的限制又需要其殘差d(誤差)的限制。這個(gè)用于將解傳到下一個(gè)較粗糙的網(wǎng)格層面的算子是用全近似格式構(gòu)成的[22]。也就是說,取精細(xì)網(wǎng)格單元上解的體積平均值來得到粗糙單元的解。粗糙網(wǎng)格上的殘差等于植入的精細(xì)網(wǎng)格單元內(nèi)的殘差之和。
通過簡單的設(shè)定精細(xì)網(wǎng)格校正為與其相關(guān)的粗糙網(wǎng)格的值,我們構(gòu)建了用于將校正傳到細(xì)化層面的延拓算子P。
粗糙網(wǎng)格校正y^H是從粗糙層面f^H計(jì)算得到的解和限制到粗糙層面Rf的初始解之間的差值計(jì)算得到的,它產(chǎn)生于粗糙層面并被應(yīng)用于精細(xì)層面解。因此精細(xì)層面解的校正變成:
FAS粗化層面算子
FAS粗化網(wǎng)格算子是很簡單的,它源于粗糙層面網(wǎng)格上控制方程的再離散。因?yàn)樵陔x散一節(jié)中出現(xiàn)的離散方程和耦合求解器對組成單元的很多表面不加限制,所以在由不規(guī)則外形單元組成的粗糙網(wǎng)格上進(jìn)行的再離散不存在問題。
當(dāng)在不規(guī)則粗糙網(wǎng)格單元上使用有限體積格式時(shí)會(huì)丟失一些精度,但是因?yàn)槎嘀鼐W(wǎng)格解的精度主要有最精細(xì)的網(wǎng)格決定,所以解的精度不會(huì)受到粗糙網(wǎng)格離散的影響。
為了保持精細(xì)網(wǎng)格解的精度,我們修改了粗糙層面方程來包括源項(xiàng)[72],這就保證了如果精細(xì)網(wǎng)格d^h上的殘差為零,那么在粗糙網(wǎng)格f^H上計(jì)算得到的校正也會(huì)是零。因此,粗糙網(wǎng)格方程用公式表示為:
其中,d^H是從當(dāng)前粗糙網(wǎng)格解f^H中計(jì)算得到的粗糙網(wǎng)格殘差,d^H(R f)是從限制的精細(xì)層面解R f計(jì)算得到的粗糙網(wǎng)格殘差。起初,這兩項(xiàng)是相同的(因?yàn)樵诔跏紩r(shí)我們有f^H = R f),刪除這兩項(xiàng)化簡上面的方程可得:
所以當(dāng)細(xì)化網(wǎng)格殘差d^h為零時(shí)就不會(huì)有粗化層面校正了。
打開FAS多重網(wǎng)格
如雙重時(shí)間步進(jìn)一節(jié)中所討論的,FAS多重網(wǎng)格選項(xiàng)是耦合顯式求解器的可選組件(默認(rèn)情況下,AMG多重網(wǎng)格總是打開的)。因?yàn)樵趲缀跛械鸟詈巷@式計(jì)算中,如果使用FAS多重網(wǎng)格收斂加速器都會(huì)很有用的,因此在開始計(jì)算之前通常你都應(yīng)該設(shè)定粗化網(wǎng)格層面是一個(gè)非零值。對于大多數(shù)問題,你只需要設(shè)定FAS多重網(wǎng)格參數(shù)。如果遇到收斂性困難,你可以考慮應(yīng)用一下設(shè)定FAS多重網(wǎng)格參數(shù)一節(jié)所討論的方法。
注意:對于顯式時(shí)間步進(jìn),你不能使用FAS多重網(wǎng)格,這是因?yàn)榇植诰W(wǎng)格校正會(huì)破壞精細(xì)網(wǎng)格解的時(shí)間精度。
設(shè)定粗糙網(wǎng)格層
如全近似存儲(chǔ)(FAS)多重網(wǎng)格一節(jié)所述,FAS多重網(wǎng)格在較粗糙的網(wǎng)格層面較好的解決問題,然后將校正解傳回到原始的精細(xì)網(wǎng)格,因此增加了解的傳播速度,并加速收斂。控制多重網(wǎng)格求解器最為基本的方法就是指定所使用的粗糙網(wǎng)格層數(shù)。
如全近似存儲(chǔ)多重網(wǎng)格一節(jié)中所解釋的那樣,粗糙網(wǎng)格是通過將一組相鄰的精細(xì)單元聚束成一個(gè)粗糙單元形成的。最優(yōu)的網(wǎng)格層數(shù)是和問題相關(guān)的。對于大多數(shù)問題,你可以以4或5層開始計(jì)算。對于大的三維問題,因?yàn)榇植诰W(wǎng)格層需要附加的內(nèi)存,所以雖然內(nèi)存限制可能不讓你使用更多的層面,你可能還是要加上更多的層面。如果你確信多重網(wǎng)格會(huì)導(dǎo)致收斂性困難,你可以減少層數(shù)。
如果FLUENT在達(dá)到你所要求的網(wǎng)格層面之前已經(jīng)到了只有一個(gè)單元的粗糙網(wǎng)格,它就會(huì)在這里結(jié)束。也就是說,如果你設(shè)定了5個(gè)網(wǎng)格層面,但是第四層就只有一個(gè)單元了,那么FLUENT就只創(chuàng)建4層,因?yàn)榈?/span>4層和第5層一樣。
要指定你所要的網(wǎng)格層數(shù),在解控制面板(用戶輸入的圖1)的解參數(shù)下設(shè)定多重網(wǎng)格層數(shù)。菜單:Solve/Controls/Solution...。
你可以在多重網(wǎng)格控制面板的FAS多重網(wǎng)格控制中設(shè)定最大粗化層。菜單:Solve/Controls/Multigrid...。
在某一個(gè)面板中改變粗糙網(wǎng)格層數(shù)會(huì)自動(dòng)更新其它面板中網(wǎng)格層數(shù)的顯示。
當(dāng)你第一次開始迭代時(shí),粗糙網(wǎng)格層就被創(chuàng)建了。如果你想要檢查每一層內(nèi)有多少個(gè)單元,請求一個(gè)迭代,然后使用菜單Grid/Info/Size(在網(wǎng)格尺寸一節(jié)介紹)列出每一個(gè)網(wǎng)格層面的尺寸。如果你覺得滿意,可以繼續(xù)計(jì)算,如果不滿意你可以改變粗糙網(wǎng)格層面的數(shù)量然后再檢查。
對于大多數(shù)問題,一旦你設(shè)定了適當(dāng)?shù)拇植诰W(wǎng)格層數(shù),你不需要修改任何附加的多重網(wǎng)格參數(shù)。你可以簡單的繼續(xù)你的計(jì)算直至收斂。
修改代數(shù)多重網(wǎng)格參數(shù)
對于大多數(shù)問題來說,默認(rèn)的代數(shù)多重網(wǎng)格設(shè)定已經(jīng)足夠了,但是有極小一部分問題需要對其作較小的修改。本節(jié)就是介紹如何分析多重網(wǎng)格求解器的行為來確定需要修改哪些參數(shù)。對于幾個(gè)特定的問題還提供了推薦設(shè)定并解釋如何設(shè)定多重網(wǎng)格參數(shù)。
分析代數(shù)多重網(wǎng)格求解器
如前所述,在大多數(shù)情況下,你不需要對多重網(wǎng)格求解器給予太多的注意。但是,如果你有收斂性的困難,或者你希望使用更為精確的設(shè)定來減少整個(gè)解算的時(shí)間,你就可以監(jiān)視多重網(wǎng)格求解器并修改參數(shù)來提高性能。(下面所介紹的都是假定你已經(jīng)開始計(jì)算,如果不存在上面提到的兩種情況,你就不需要監(jiān)視求解器。)
要確定修改多重網(wǎng)格設(shè)定是否有利于解決收斂性困難,你可以檢查在每一個(gè)網(wǎng)格層面所要求的殘差是否減小了。要最小化解算的時(shí)間,你就需要檢查是否轉(zhuǎn)到更強(qiáng)大的循環(huán)會(huì)減少整個(gè)工作量
監(jiān)視代數(shù)多重網(wǎng)格求解器
監(jiān)視求解器的步驟如下:
1. 在多重網(wǎng)格控制面板設(shè)定多重網(wǎng)格Verbosity為1或者2。菜單:Solve/Controls/Multigrid。
2. 用迭代面板請求一步迭代。菜單:Solve/Iterate...。
如果你設(shè)定verbosity為2,在控制臺(tái)窗口為每一個(gè)方程打印出的信息都包括:
l 方程名字
l 方程公差(求解器用源矢量的標(biāo)準(zhǔn)化計(jì)算出來的)。
l 每一個(gè)固定的多重網(wǎng)格循環(huán)或者靈活循環(huán)的精細(xì)松弛之后的殘差值。
l 每一個(gè)多重網(wǎng)格層面中方程的數(shù)目,零層原始的(最精細(xì)層面的)方程系統(tǒng)。
注意在循環(huán)或者松弛0處打印的殘差是任何多重網(wǎng)格循環(huán)執(zhí)行之前的初始?xì)埐睢?/span>
如果verbosity被設(shè)為1,只打印方程名字、公差和殘差。
下面是一個(gè)打印出來的例子的一部分:
pressure correction equation:
tol. 1.2668e-05
0 2.5336e+00
1 4.9778e-01
2 2.5863e-01
3 1.9387e-01
multigrid levels:
0 918
1 426
2 205
3 97
4 45
5 21
6 10
7 4
在默認(rèn)的情況下,除了壓力校正方程使用V循環(huán)之外,所有方程都使用靈活循環(huán)。最典型地,在最精細(xì)的層面靈活循環(huán)只有很少的(5-10)松弛,而且沒有粗糙層面會(huì)被用到。在有些情況下,可能會(huì)有一到兩個(gè)粗糙層面會(huì)被用到。如果精細(xì)層面松弛的最大數(shù)不夠,你可能需要增加最大數(shù)(具體參閱改變松弛的最大數(shù)一節(jié))或者轉(zhuǎn)到V循環(huán)(參閱指定多重網(wǎng)格循環(huán)一節(jié))。
對于壓力校正來說,默認(rèn)使用V循環(huán)。如果最大的循環(huán)數(shù)不夠(默認(rèn)是30),你可以使用多重網(wǎng)格控制面板來轉(zhuǎn)到W循環(huán)(具體請參閱指定多重網(wǎng)格循環(huán)類型一節(jié))。注意:對于并行求解器,W循環(huán)可能會(huì)降低效率。如果你使用并行求解器,你可以在多重網(wǎng)格控制面板的固定循環(huán)參數(shù)下面增加最大循環(huán)的數(shù)值來增加最大循環(huán)數(shù)。菜單:Solve/Controls/Multigrid...。
改變松弛的最大循環(huán)數(shù)
要改變松弛的最大數(shù),請?jiān)诙嘀鼐W(wǎng)格控制面板(下圖)的靈活循環(huán)參數(shù)下增加或者減少最大精細(xì)松弛或者最大粗糙松弛的數(shù)值。菜單:Solve/Controls/Multigrid...。
Figure 1: 多重網(wǎng)格控制面板
指定多重網(wǎng)格循環(huán)類型
在默認(rèn)的情況下,除了壓力校正方程使用V循環(huán)之外,所有方程都使用靈活循環(huán)。要改變某一方程的循環(huán)類型,你就可以用多重網(wǎng)格控制面板(上圖)上面的部分來設(shè)定。
對于每一個(gè)方程你都可以在下拉列表中選V循環(huán)、W循環(huán)或者F循環(huán)。
設(shè)定終止和殘差減少參數(shù)
當(dāng)你對一個(gè)方程使用靈活循環(huán)時(shí),你可以通過在多重網(wǎng)格控制面板的頂部修改該方程的終止和/或限制判據(jù)來控制多重網(wǎng)格的的行為(改變松弛的最大數(shù)一節(jié)中的圖1)。菜單:Solve/Controls/Multigrid...。
限制判據(jù)就是靈活循環(huán)一節(jié)中的方程1的殘差減少公差b。這個(gè)參數(shù)規(guī)定了什么時(shí)候必須使用粗糙網(wǎng)格層面(由于當(dāng)前層面解的改善不明顯)。對應(yīng)的b值越大,粗糙層面進(jìn)行的運(yùn)算就越少(反之亦然)。靈活循環(huán)一節(jié)中的方程3就是終止判據(jù),它控制了什么時(shí)候求解器應(yīng)該返回到較精細(xì)的網(wǎng)格層面(即:在當(dāng)前層面什么時(shí)候殘差已經(jīng)充分的改善了)。
對于V,W或者F循環(huán),終止判據(jù)確定了是否應(yīng)該在最精細(xì)的(初始的)網(wǎng)格層面執(zhí)行另一個(gè)循環(huán)。如果最精細(xì)的層面上當(dāng)前的殘差不滿足靈活循環(huán)一節(jié)中的方程3,而且還沒有執(zhí)行到最大的循環(huán)數(shù),FLUENT將會(huì)執(zhí)行另一個(gè)多重網(wǎng)格循環(huán)(V,W和F循環(huán)不使用限制參數(shù))。
附加的代數(shù)網(wǎng)格參數(shù)
有幾種附加的參數(shù)可以控制代數(shù)多重網(wǎng)格求解器,但是通常不需要修改它們。這些附加的參數(shù)都包含在多重網(wǎng)格控制面板中(改變松弛的最大數(shù)一節(jié)中的圖1)。菜單:Solve/Controls/Multigrid...。
對于所有的多重網(wǎng)格循環(huán)類型,你可以控制粗糙層面的最大數(shù)(粗糙參數(shù)的下面的最大粗糙層),它會(huì)被多重網(wǎng)格求解器構(gòu)建出來。直到層面的最大數(shù)被創(chuàng)建或者罪粗糙的層面只有3個(gè)方程了,較粗糙的聯(lián)立方程組才停止構(gòu)建。每一個(gè)層面大約具有前一層面的一半未知量,所以粗糙過程要一直進(jìn)行到只剩幾個(gè)較少的單元,這個(gè)粗糙過程需要和精細(xì)網(wǎng)格所需要的一樣多的總粗糙層面系數(shù)存儲(chǔ)。減少粗糙層面就會(huì)減少所需要的內(nèi)存,但是就需要更多的迭代才能得到收斂解。如果將最大粗糙層面設(shè)為0就關(guān)閉了代數(shù)多重網(wǎng)格求解器。
你可以控制的另一個(gè)粗化參數(shù)就是在連續(xù)的層面上粗糙度的增加?!坝谩植凇钡膮?shù)指定了組到一起創(chuàng)建一個(gè)粗糙網(wǎng)格單元的精細(xì)網(wǎng)格的單元數(shù)。這個(gè)算法將每一個(gè)單元與最鄰近的單元分組,然后將它們組到一起,這樣直至實(shí)現(xiàn)所需要的粗糙度。最典型的值在2到10之間,默認(rèn)值是2,對應(yīng)的性能最好但是也需要最多的內(nèi)存。除非你需要減少處理問題所需要的內(nèi)存,否則你不應(yīng)該調(diào)節(jié)這個(gè)參數(shù)。
對于固定的(V,W和F)多重網(wǎng)格循環(huán),你可以控制預(yù)松弛和后松弛數(shù),其中分別對應(yīng)V和W循環(huán)和F循環(huán)兩節(jié)中的b_1和b_2。預(yù)掃掠設(shè)定了移動(dòng)到粗糙層面之前需要執(zhí)行的松弛數(shù)。后掃掠設(shè)定了應(yīng)用粗糙層面校正之后需要執(zhí)行的松弛數(shù)。一般說來只有一個(gè)后松弛而沒有預(yù)松弛。
返回默認(rèn)的多重網(wǎng)格參數(shù)
如果你已經(jīng)改變了多重網(wǎng)格參數(shù),但是現(xiàn)在你想要回到FLUENT的默認(rèn)設(shè)定,你可以在多重網(wǎng)格控制面板中點(diǎn)擊默認(rèn)按鈕。FLUENT就會(huì)將所有設(shè)定改回到默認(rèn)值,此時(shí)默認(rèn)按鈕就會(huì)變成重置按鈕。要將你的設(shè)定改回來,你就可以點(diǎn)擊重置按鈕。
設(shè)定FAS多重網(wǎng)格參數(shù)
對于大多數(shù)計(jì)算,一旦你已經(jīng)設(shè)定了大量的粗糙網(wǎng)格層面,就不需要修改任何FAS多重網(wǎng)格參數(shù)了。但是,如果你遇到了收斂性困難,你可以考慮下面所建議的程序。注意:一定要記住FAS多重網(wǎng)格只用于耦合顯式求解器。
解決收斂性困難
有些問題在開始是很容易的收斂,但是后來殘差就變得穩(wěn)定了因此解也就是不真實(shí)的。在有些情況下(如長細(xì)管道),出現(xiàn)這種收斂性困難往往是由于多重網(wǎng)格減緩了壓力信息在整個(gè)流場中的傳播造成的。在這種情況下,你應(yīng)該在解控制面板中的解參數(shù)下設(shè)定多重網(wǎng)格層面為零從而關(guān)閉多重網(wǎng)格。菜單:Solve/Controls/Solution...。
"Industrial-Strength" FAS多重網(wǎng)格
在有些情況下,你會(huì)發(fā)現(xiàn)你的問題是收斂的但是速度極慢。如果使用多重網(wǎng)格傳播更快的格式就會(huì)加速解校正的傳播,從而能夠有益于這種問題的解決。對于這類問題你可以嘗試使用"industrial-strength"多重網(wǎng)格設(shè)置。
注意:這些設(shè)定使得解的校正傳播相當(dāng)快,它假定傳過多重網(wǎng)格的解信息在某種程度上是準(zhǔn)確的。因此,你必須在執(zhí)行了足夠多的迭代步之后才可以嘗試這里所介紹的程序。如果使用"industrial-strength"多重網(wǎng)格過早,也就是說解還遠(yuǎn)遠(yuǎn)不夠正確,它是不會(huì)加速收斂的而且可會(huì)造成計(jì)算的不穩(wěn)定,因?yàn)槊恳粋€(gè)不正確的值都在初始網(wǎng)格中迅速的傳播開來。還需要注意的是,這些多重網(wǎng)格設(shè)定會(huì)減少得到收斂解所需要的迭代步,但是對于每個(gè)多重網(wǎng)格循環(huán)來說是要花費(fèi)大得多的時(shí)間。因此求解器會(huì)執(zhí)行較少的迭代步,但每一個(gè)迭代步需要的時(shí)間更長一些。
所使用的策略如下:
l 在處理下一個(gè)更粗糙的層面之前,增加每一個(gè)網(wǎng)格層面的迭代數(shù)。
l 在從較粗糙的網(wǎng)格層面返回之前,增加每一個(gè)網(wǎng)格層面的迭代數(shù)。
l 從一個(gè)層面到下一個(gè)更精細(xì)的層面允許完全的校正轉(zhuǎn)移,而不是轉(zhuǎn)移校正的減少值。
l 從較粗糙的網(wǎng)格將插值校正轉(zhuǎn)移到較精細(xì)網(wǎng)格時(shí),不對插值校正進(jìn)行光滑。
你可以在多重網(wǎng)格控制面板的FAS多重網(wǎng)格控制框中設(shè)定這一策略所需要的所有參數(shù),然后繼續(xù)計(jì)算。菜單:Solve/Controls/Multigrid...。
Figure 1: 多重網(wǎng)格控制面板
在進(jìn)行下一個(gè)粗糙網(wǎng)格(V和W循環(huán)與F循環(huán)兩節(jié)中所描述的b_1)處理之前增加每一個(gè)網(wǎng)格層面的迭代數(shù)可以改善從較精細(xì)網(wǎng)格層面到下一個(gè)較粗糙網(wǎng)格層面的解。嘗試將預(yù)掃掠的值增加到10(是在FAS多重網(wǎng)格控制中而不是在代數(shù)多重網(wǎng)格控制中。
在從較粗糙網(wǎng)格層面返回之前增加每一個(gè)層面上的迭代數(shù)會(huì)改善從每一個(gè)較粗糙網(wǎng)格層到下一個(gè)較精細(xì)網(wǎng)格層的校正傳遞。因此,可以減小在較粗糙網(wǎng)格上引入的誤差從上層網(wǎng)格傳到初始網(wǎng)格的傳遞。嘗試將預(yù)掃掠的值增加到10(是在FAS多重網(wǎng)格控制中而不是在代數(shù)多重網(wǎng)格控制中)。
在默認(rèn)的情況下,多重網(wǎng)格的校正值并沒有從較粗糙網(wǎng)格全部傳到較精細(xì)網(wǎng)格:只有60%的值被傳輸了。這就阻止了較大的誤差過快的傳到初始網(wǎng)格而導(dǎo)致解變得不穩(wěn)定。當(dāng)然,它也會(huì)使得較好的解無法快速的傳到初始網(wǎng)格。增加校正減少到1就可以將全部的值從較粗糙網(wǎng)格傳到較精細(xì)網(wǎng)格層面了,從而加速了解的傳播,通常也就加速了收斂。
當(dāng)校正從粗糙網(wǎng)格傳到較精細(xì)網(wǎng)格層時(shí),在默認(rèn)的情況下,是先進(jìn)行插值然后進(jìn)行光滑處理。取消光滑處理就可以使粗糙網(wǎng)格單元的真實(shí)值分配到精細(xì)網(wǎng)格,這樣也可以有助于收斂。要關(guān)閉光滑處理,請?jiān)O(shè)定校正光滑為0。附加的后掃掠處理會(huì)對單元之間的不連續(xù)性進(jìn)行光滑。
附加的多重網(wǎng)格參數(shù)
有幾種附加的參數(shù)可以控制多重網(wǎng)格求解器,但是通常不需要修改它們。這些附加的參數(shù)都包含在多重網(wǎng)格控制面板中。菜單:Solve/Controls/Multigrid...。
在默認(rèn)的情況下,V循環(huán)用于流動(dòng)方程中(具體請參閱多重網(wǎng)格循環(huán)一節(jié)關(guān)于各種可用循環(huán)的描述)。要改換到W循環(huán),你可以在多重網(wǎng)格控制面板的頂部的流動(dòng)后面的下拉列表中選中它("Industrial-Strength" FAS多重網(wǎng)格中的圖1)。
在多重網(wǎng)格控制面板的底部的Courant數(shù)減少下設(shè)定粗糙網(wǎng)格層面(即:除了最精細(xì)層面)減少的Courant數(shù)因子。通常是需要時(shí)間步的一些減少的(如:默認(rèn)是0.9),這是因?yàn)樵诓灰?guī)則外形的較粗糙網(wǎng)格單元上無法精確確定穩(wěn)定性極限。
修改多步時(shí)間步進(jìn)參數(shù)
改變對多重時(shí)間步進(jìn)格式控制的最常用參數(shù)就是Courant數(shù)。關(guān)于修改Courant數(shù)的說明在改變Courant數(shù)一節(jié)介紹,本節(jié)主要介紹其它不太常改變的參數(shù)的修改程序。
使用殘差光滑來增加Courant數(shù)
隱式殘差光滑(或者平均)可用于減少求解器的時(shí)間步限制,因此允許Courant數(shù)增加。隱式光滑是用迭代Jacobi方法來實(shí)現(xiàn)的,具體請參閱顯式格式一節(jié)。你可以在解控制面板中控制殘差光滑。菜單:Solve/Controls/Solution...。
在默認(rèn)的情況下,殘差光滑的迭代數(shù)為零,也就是說不進(jìn)行殘差光滑。如果你將迭代計(jì)數(shù)器增加到1或者更多,你可以輸入光滑因子。光滑因子為0.5,且兩次通過Jacobi光滑器通常就足以允許Courant數(shù)加倍了。
改變多步格式
也可能對多步時(shí)間步進(jìn)格式本身作出一些改變。你可以改變步數(shù),并為每一步設(shè)定新的多步系數(shù)。你也可以控制在每一步中是否更新耗散和粘性應(yīng)力。這些改變都在多步參數(shù)面板(下圖)中完成。菜單:Solve/Controls/Multi-Stage...。
注意:除非你對多步格式相當(dāng)熟悉,而且有興趣嘗試一下文獻(xiàn)中介紹的不同格式,否則你不應(yīng)該對FLUENT的多步格式做任何改變。
Figure 1: 多步參數(shù)面板
在默認(rèn)的情況下,FLUENT多步格式使用5步,對應(yīng)的系數(shù)從第一步到第五步分別為0.25,0.166666,0.375,0.5和1.0。你可以使用在多步參數(shù)面板中的步數(shù)下面的箭頭按鈕減少步數(shù)。(如果你想要增加步數(shù),你就需要使用文本界面命令solve/set/multi-stage。)對于每一步,你都可以修改系數(shù),系數(shù)必須大于0小于1。最后一步的系數(shù)應(yīng)該總是1。
對于每一步,你都可以表明是否對人工耗散和粘性應(yīng)力進(jìn)行估值。如果某一步對應(yīng)的耗散按鈕被選擇了,那么在這一步就會(huì)更新人工耗散。如果沒有選擇,那么人工耗散仍然會(huì)保持為前一步的數(shù)值。如果某一步對應(yīng)的粘性框被選擇了,那么這一步就會(huì)更新粘性應(yīng)力。如果沒有選擇,那么粘性應(yīng)力仍然保持為前一步的數(shù)值。在第一步應(yīng)該總是要計(jì)算粘性應(yīng)力的,連續(xù)不斷的估值會(huì)增加解過程的魯棒性,但是也會(huì)增加計(jì)算花費(fèi)(也就是增加了每一步迭代的CPU時(shí)間)。對于定常問題,最后的解是和粘性應(yīng)力更新的步無關(guān)的。
如果你已經(jīng)改變了多步參數(shù),但是現(xiàn)在你想要回到FLUENT的默認(rèn)格式,你可以在多步參數(shù)面板中點(diǎn)擊默認(rèn)按鈕。FLUENT就會(huì)將所有設(shè)定改回到默認(rèn)值,此時(shí)默認(rèn)按鈕就會(huì)變成重置按鈕。要將你的設(shè)定改回來,你就可以點(diǎn)擊重置按鈕。
相關(guān)標(biāo)簽搜索:【轉(zhuǎn)載】FLUENT中文幫助——多重網(wǎng)格(趙玉新) Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析