牛進林,鄔穎杰,郭 炯,李 富
(清華大學 核能與新能源技術研究院,先進核能技術協同創新中心,先進反應堆工程與安全教育部重點實驗室,北京 100084)
隨著計算機計算能力的提升,采用全隱式耦合JFNK方法求解復雜核電廠系統已成為一個趨勢。本課題組[1-4]對JFNK方法應用于高溫堆耦合計算的相關關鍵技術進行了長期研究,取得了一系列成果,主要是基于原有程序修改其迭代方法。國外很多JFNK的研究與應用走基于平臺開發的路線,以MOOSE(Multiphysics Object Oriented Simulation Environment)[5-6]平臺為代表。MOOSE是由美國愛達荷國家實驗室針對大規模耦合計算問題開發的開源通用平臺,目前國外基于MOOSE平臺開發了Pronghorn、RattleSnake、Bison、Relap7[7-12]等中子物理、燃料性能分析和系統分析程序,但這些能用于反應堆的程序對中國是出口管制的,國內目前無法獲得這些程序,這使得國內基于MOOSE平臺開發反應堆多物理耦合程序必須從頭做起。本文基于MOOSE平臺開發可用于計算中子本征值和動力學的多群擴散程序,并通過基準題進行驗證。
MOOSE[5-6]是一面向對象的多物理耦合程序開發平臺,采用魯棒性的求解方法,具備以下能力:1) 與維度無關的用戶代碼,1套代碼對一、二、三維問題都適用;2) 基于連續或非連續Galerkin有限元的網格離散;3) 全隱式耦合;4) 允許采用非結構化網格,包含多種形狀函數;5) 很強的網格自適應性;6) 內置并行功能,用戶不用開發額外的并行代碼;7) 內置的后處理等。
MOOSE簡化了開發多物理程序的步驟,提供了一個面向對象,包含構成模擬程序各方面的插入式系統。MOOSE程序開發包含3個層級,如圖1所示,開發者只需將精力集中于中間層和頂層的開發,省去了大量重復性的底層工作,這種模塊化的編程方式能大幅加快開發程序的速度,并有利于程序擴展和維護[5-6]。

圖1 MOOSE層級Fig.1 MOOSE hierarchy
多群擴散本征值問題控制方程如下:
(1)
式中:D為擴散系數,cm;g為當前能群編號;g′為散射能群編號;G為最大能群數;φ為中子通量,cm-2·s-1;χ為裂變份額;Σr為移出截面,cm-1;Σs為散射截面,cm-1;Σf為裂變截面,cm-1;ν為平均有效裂變中子數;keff為有效增殖因數。
在MOOSE中,控制方程經過Galerkin有限元離散,處理成弱解形式的殘差方程。為達到此目的,控制方程需要與由1組試函數構成的矩陣在求解域內進行內積。矩陣形式如下:
(2)
式中:B為基函數組;B為展開基函數;L為節點數目。將式(2)中的矩陣與式(1)進行內積得到弱解形式的殘差方程(式(3)),方程的解由展開系數和基函數的積組合而成,如式(4)所示。
(3)
(4)
式中:F為非線性方程組殘差;U為解向量[φg];U為有限元展開系數;(·)表示體積分;〈·〉表示面積分。式(3)可進一步改寫成式(5)形式,其中中子不考慮向上散射。
Fφ(U)=Aφ-Mφ/keff
(5)
(6)
(7)
(8)
對于本征值問題,傳統是采取冪迭代法進行求解,Knoll等[13]于2009年實現了用JFNK求解本征值問題。其基本思路是在式(5)的基礎上補充一個關于有效增殖因數的殘差方程,如式(9)所示。
(9)
式中,Ω為整個求解域。
聯立式(5)、(9),并采用JFNK方法[14]對殘差方程進行求解,從而得到本征值方程的解{φg,keff}。
在MOOSE中,物理場都是以kernel,即算子(以下統稱為算子)的形式存在的。每個殘差方程包含多個算子,每個算子皆對應1個C++類,只有把殘差方程的所有算子都開發出來,控制方程才是完備的。式(3)包括5個算子類型,每個圓括號代表1個全求解域的算子,主要包括擴散項、碰撞移出項、群間散射源項、裂變源項;尖括號代表邊界條件算子。雖然每個能群殘差方程的算子類型會有重復,但由于群截面和物性的不同,都需重新定義本能群的算子。而相關的物性需在額外的物性模塊定義,需有相關的C++類相匹配。目前已實現了多群擴散方程各算子的開發,完成了常物性開發,也實現了與變量耦合的變物性。式(9)的殘差方程是MOOSE提供的,不需要額外開發。
陳大勇睜圓了雙眼,雙手握緊鬼子的槍刺,一聲虎嘯,刺刀被他帶著噴血拔了出來,小鬼子驚呆了,手一撒,就那么兩秒的時間,陳大勇反手把刺刀扎進了鬼子的胸膛。
考慮多組緩發中子的多群擴散瞬態方程如下:
g=1,2,…,G
(10)
k=1,2,…,K
(11)
式中:C為緩發中子先驅核濃度,cm-3;keff,0為系統初始時刻的有效增殖因數;v為當前群中子平均速度,cm/s;k為緩發中子先驅核組標;K為緩發中子先驅核組數;λ為緩發中子先驅核衰變常量,s-1;β為緩發中子總份額;βk為第k組緩發中子先驅核份額。
將式(10)、(11)在求解域分別與式(2)進行內積,得到弱解形式的殘差方程:
(12)
(13)
聯立式(12)、(13),采用JFNK方法對殘差方程進行求解,得到瞬態方程的解{φ,C}。
在本征值程序的基礎上,殘差方程(12)主要是增加了瞬態項和緩發中子源項,裂變源項因緩發中子的緣故需重新調整;開發了緩發中子殘差方程(13)的相關算子和物性。
(14)
式中:J為雅可比矩陣;N為預處理陣;v為子空間基向量;ε為差分步長。
目前程序中預處理陣采用塊對角矩陣形式,不考慮不同變量間的耦合關系。本征值問題采用的預處理陣為式(15),瞬態問題采用的預處理陣為式(16)。
(15)
(16)
(17)
Nkeff,keff=1
(18)
NCk,i,Ck,j=(Bi,λkBj)
(19)
式中,i、j分別為試函數和展開基函數的組標。
MOOSE提供了第1類和第2類邊界條件的接口,但缺乏真空邊界條件和反照率邊界條件。因此開發這兩個邊界條件的接口對中子計算是很有必要的,現已在程序中完成了真空邊界條件和反照率邊界條件的接口開發。對于反照率邊界條件,在邊界處滿足式(20)。

(20)
式中,α為反照率。當反照率取0時,得到真空邊界條件,如式(21)所示。
(21)
基于MOOSE開發的中子程序基本框架如圖2所示,中間淡藍色框圖是MOOSE的基本框架,外圍灰色部分是1.2~1.5節的內容在MOOSE基本框架下的實現,也是程序開發的核心,其中中子擴散方程、緩發中子方程、邊界條件、物性參數、預處理器是構成中子程序開發的關鍵技術難點。目前尚無專門的截面庫與本程序對接,現階段是根據特定問題的截面信息定制一套物性參數。MOOSE提供了多種預處理的接口,除塊對角預處理外還有有限差分預處理、基于物理的預處理等,目前在本程序中主要是實現塊對角的預處理方式。式(3)、(12)、(13)的各物理場算子構成了程序的基本模塊,將各基本模塊按照問題需求在輸入卡中像搭積木一樣“拼接”起來便構成了基本程序,如圖3所示,本征值問題和瞬態問題所需的基本模塊是不完全一致的。中子程序流程圖如圖4所示。

圖2 中子程序框架Fig.2 Neutron program diagram
通過2D-TWIGL基準題[15]對程序進行驗證。本基準題包括1個穩態算例和2個瞬態算例。

圖3 模塊化程序架構Fig.3 Modularized program architecture diagram

圖4 中子程序流程圖 Fig.4 Neutron program flow diagram
TWIGL基準題是一簡化的二維雙群擴散加1組緩發中子的動力學問題。反應堆是正方形的,邊長160 cm,包含3個物質區域,其1/4堆芯幾何模型和邊界條件如圖5所示。其截面參數列于表1。緩發中子先驅核的份額為0.007 5,衰變常量為0.08 s-1。

圖5 TWIGL基準題幾何模型Fig.5 TWIGL benchmark geometry
采用結構化網格,共6 561個網格點,6 400個有限元,如圖6所示。本征值計算結果為:數值解0.913 20,參考解0.913 21[15],兩者間相對誤差為0.001%。可見計算結果與參考解符合得很好,精度很高。快群和熱群中子通量分布如圖7所示。MOOSE提供冪迭代(PI)求解本征值和用切比雪夫加速的接口,1次冪迭代也可看作1次非線性迭代。JFNK求解本征值和經過契比雪夫加速的冪迭代進行對比,求解的本征值是相同的,計算性能結果對比列于表2,殘差收斂結果對比示于圖8,發現在同樣的收斂精度下,JFNK能大幅減少非線性迭代的步數,從而大幅減少計算時間,計算效率提高接近1個數量級。另外可看出,即使經過契比雪夫加速,冪迭代的殘差在非線性步也不是單調下降的,在小范圍會有波動上升。

表1 TWIGL截面參數Table 1 TWIGL cross section parameter
采用一階向后歐拉差分處理時間項,以穩態為初始時刻。考慮兩個瞬態工況:1) 物質區1的熱群吸收截面在0時刻突然減少0.003 5 cm-1,而后物性保持不變,模擬0.5 s(工況1);2) 物質區1的熱群吸收截面從0時刻開始,在0.2 s時間內線性減少0.003 5 cm-1,而后物性保持不變,模擬0.5 s(工況2)。兩個工況的時間步長均分別選取0.01、0.05、0.1 s,參考解[15]時間步長為0.001 s,模擬結果與參考解的對比示于圖9。可看出,無論是急速瞬變還是緩慢瞬變,程序的跟蹤能力都很好,數值結果和模擬結果相一致;時間步長取0.01 s和0.05 s時,結果的精度也是有保障的;時間步長取0.1 s(參考解時間步長的100倍)時,結果會出現一些偏差,這是由于時間步長如果取得過大,時間離散帶來的誤差就會變大,因此需要綜合考慮時間離散帶來的誤差和計算效率來選取時間步長。

圖6 TWIGL基準題網格Fig.6 TWIGL benchmark mesh

圖7 快群和熱群中子通量分布Fig.7 Fast neutron and thermal neutron flux distribution

表2 JFNK和冪迭代計算性能對比Table 2 Performance comparison of JFNK and PI
本文基于MOOSE平臺開發了可用于中子擴散的求解器,采用JFNK方法計算本征值問題和瞬態問題,開發了反照率邊界條件和真空邊界條件接口。通過基準題TWIGL驗證,發現對于本征值問題,JFNK方法精度高、收斂快,與傳統的采用切比雪夫加速的冪迭代方法相比,能大幅減少非線性步的數量,極大提高計算效率。對于瞬態問題,瞬變的跟蹤能力強,在較大的時間步長下,也能保證一定的精度。

圖8 殘差收斂性對比Fig.8 Residual convergence comparison

圖9 兩個工況的結果對比 Fig.9 Result comparison of two operation conditions
本程序具有基于MOOSE平臺開發程序的優勢,1套代碼能解決多維問題,對規則幾何或不規則幾何都有強大的模擬能力,能很方便地進行并行計算等。之后還可對程序進行進一步的優化,如選取不同的預處理矩陣、采用高階有限元、高階時間步長、并行計算等,從而不斷提高求解精度和計算效率。在未來的研究中,中子程序可與熱工計算在同一框架下進行全隱式耦合,為實現反應堆的多物理耦合計算提供支持。但現階段還沒有可與中子程序對接的核數據庫接口,限制了程序的模擬能力,這也是需要重點解決的問題。