• 沒有找到結果。

第三章 演算與結果

第一節 修改 CAMB

一之一 CAMB

CAMB [17]是一組計算宇宙輻射背景程式(Code for Anisotropies in the Microwave Background),為 Lewis 與 Challinor 所開發。此程式以 CMBFAST 為基礎,以 f90 語法 寫成,可依使用者設定的宇宙模型模擬觀測結果,如 CMB、弱重力透鏡(weak lensing)

等。其內建模型為 ΛCDM 與第五元素(quintessence)。若欲計算其他模型,則需依 所需修改程式。

圖 3-2 為 CAMB 的程式結構。使用者在 params.ini 中設定其宇宙參數,包括微擾模型、

輸出檔名、計算的精準度等等。當一切設定妥當後,使用者呼叫主程式,主程式會 將這些參數讀入,依照使用者需求進行計算,然後輸出所需。如:使用者使用純量 微擾模型,在圖 3-2 中,主程式會進入 k 迴圈,根據使用者所設參數計算微擾的初 始值,然後進入時間迴圈。由於使用者指定純量微擾,因此程式在「純量微擾」的 方塊中計算。每步時間都根據上步時間演算所得,經由微分方程組與解微分方程的 副程式「dverk」計算下一步時間微擾的演化,再輸出使用者所需的數據,進入下一 步時間。如此重複時間迴圈,直到到達結束時間,然後計算下一步 k 值。

CAMB 的結構

若使用者選擇向量或張量微擾,主程式則會進入標上「向量微擾」或「張量微擾」

的程序計算與輸出,當中也有與純量微擾相當的結構。

設定參數值 Params.ini

主程式 Inidriver.f90

(計算) K 迴圈

時間迴圈 初始值

(純量微擾) 解演化方程組

微分方程組 解微分方程組

dverk

輸出 params.ini 所設的 需要數據 (需要的數據)

CMB Transfer function

WL

(張量微擾)

(向量微擾)

……

圖 3-2 CAMB 程式架構

粗字為檔名。在此程式中,使用者需在 params.ini 指定宇宙參數的值,然後執行主程式。

主程式讀入參數值,依使用者所設模型進行計算:在每個 k 迴圈中都包含時間迴圈,計 算後輸出使用者所需數據。

一之二 修改 CAMB

為計算 f(R)重力理論的微擾演化,需將 CAMB 中廣義相對論微擾演化方程式修改成 f(R)重力理論的形式,並設定參數的輸入路徑。

圖 3-3 為修改過的 CAMB 結構:在 params.ini 中加入新參數,並修改主程式inidriver.f90,

使其讀入新參數;若使用者欲以數據檔(圖中以 modeldata.dat 為例)輸入,則在此 時讀入該數據。

(for scalar perturbation) Solve evolution equations 設定參數值

f(R)模型參數 Params.ini

主程式 讀入 f(R) 模型的參

數值 Inidriver.f90

(計算) K 迴圈

時間迴圈 (純量微擾)

初始值

微分方程組

解微分方程組

輸出 params.ini 所設的 需要數據 (所需數據)

CMB Transfer function

WL

(張量微擾) ……

(向量微擾)

……

f(R) function (若以數據輸入模型)

Modeldata.dat

圖 3-3 用以計算 f(R)重力理論的 CAMB 程式結構。

以 CAMB 為基礎,使用者在 params.ini 設定其 f(R)重力理論參數,然後執行主程式。主程式會讀取 參數值,計算該理論的微擾演化,然後輸出使用者所需數據。其中灰色方塊為為計算 f(R)重力理論 下宇宙微擾演化而新增的程式結構。

 

CAMB 中有類似的關係式,但為計算廣義相對論模型所用,需將其置換為(3.1)至(3.4) 式,另外需計算 f(R)的變數值。雖然 f(R)為使用者給定,可由定義計算

時會出現極大的誤差。

以下例來解釋兩種數量級所造成的數值不穩定:

A 與 B 代表純量度規微擾,其數量級為 10-5,c 與 d 代表 f(R)諸項,其數量級在 10-40。 一之三節中諸式可分成兩種:

I. A=B+c+d II. c=A-B-d

I、II 為同一方程式。在 I 中,A 與 B 在同一數量級,其差別極小,僅為 c+d,或在 10-40 數量級上。此方程式以數值方法計算,誤差可能大於 c 和 d,但遠小於 A 與 B,計算 誤差可略而不計,故解得的 A 誤差極小,無數值不穩定性。

然而在 II 式中,A 與 B 的誤差雖遠小於 A、B,但遠大於 c 與 d,故以數值方法計算 所得之 c 大多源於誤差,這就是數值不穩定的來源。

一之三節中,(3.1)至(3.4)為第 I 類方程式,即使誤差遠大於 f 諸項,但因誤差遠小於 度規微擾,故以數值方法解此四式可安全得到正解。然而(3.6)與(3.7)兩式為第 II 類 方程式,若以數值方法解之,則有數值不穩定性。為得到 ΔF 諸項,只得由近似法求 之。

雙重微擾疊代法的雙重微擾 [15] 為:將純量度規微擾η分成未包含 f 與有包含 f 兩 部分,其中未包含 f 的部分為η(0),包含 f 的部分為η(1)。程式中分別解其微分方程式,

演算後再將二者相加。此方法相當於將 f(R)諸項視為度規微擾的微擾,故稱為雙重 微擾。

本研究測試另一種近似。由 ΔF 的定義:

k R dR

F F d

2 2

2

在廣義相對論中,由愛因斯坦方程可得此關係:

R

G

 

2

T

G

(3.8) )

(3.9) )

其中下標「G」表示廣義相對論模型。由於在 f(R)重力理論中,早期宇宙的演化行為

 

相關文件