簑島 敬(海洋研究開発機構) 共同研究者:松本 洋介(千葉大学), 三好 隆博(広島大学) MHDシミュレーションの基本(昨日の復習) Fi +1/ 2 − Fi −1/ 2 ∂U ∂F n n +1 . = 0, ⇒ U i = U i − ∆t + ∆x ∂t ∂x Fi +1/ 2 U: 保存量ベクトル(密度、運動量、磁場、エネルギー) F: 流束ベクトル Fi +1/ 2 = Riemann(U i , U i +1 ). (↑Roe法, HLLD法など) U i U i +1 今日の話は……実用化 高次精度化 ∂U ∂F ∂G ∂H 多次元化 + + + =0 ∂t ∂x ∂y ∂z 2 高次精度化とは ∂f ∂f +v = 0, ( v = const ) ∂t ∂x 物理量プロファイルを高 次関数で近似し、高解像 1次 精度 度の解を得る f ( ∆x ) ~ f (0) + f ' (0)∆x , ←1次 3次 5次 f ( ∆x ) ~ f (0) + f ' (0)∆x + f ' ' (0)∆x 2 / 2 + f ' ' ' (0)∆x 3 / 6, ↑3次 厳密解 3 高次精度化の必要性 N次精度スキームの誤差 err ∝ ∆x ∆x 低次スキーム で高解像度計 算結果を得る には、計算負 荷甚大 N 4 高次精度化の必要性 3点補間では実線と点 線の区別がつかない 5点補間では 区別可能 ステンシルを広げることでプロファイルをより正確に再現 極値の保持 5 流体シミュレーションの高次精度化例 Fi +1/ 2 − Fi −1/ 2 dU i ∂U ∂F =− . + = 0, ⇒ dt ∂t ∂x ∆x 高次精度 Fi +1/ 2 = Riemann(U iL+1/ 2 , U iR+1/ 2 ). 例:線形3次精度 U: 保存量ベクトル F: 流束ベクトル Fi +1/ 2 U i −1 U i U i +1 U i + 2 U iL+1/ 2 = (− U i −1 + 5U i + 2U i +1 )/ 6 U iR+1/ 2 = (− U i + 2 + 5U i +1 + 2U i )/ 6 線形N次精度化は、流体シミュレーションでは あまり用いられない 6 高次精度化の欠点 ∂f ∂f +v = 0, ( v = const ) ∂t ∂x 1次 精度 3次 5次 不連続面近傍の 数値振動 「線形2次以上ス キームは解の単 調性を維持できな い」 (Godunovの 定理) 非線形スキーム の導入 厳密解 7 非線形スキーム 低精度@不連続面付近(衝撃波) 高精度@滑らかな領域(乱流) Monotone Upstream-centered Schemes for Conservation Laws(MUSCL; van Leer 1979) Weighted Essentially Non-Oscillatory scheme(WENO; Jiang+ 1996) Monotonicity Preserving scheme(MP; Suresh+ 1997, CANS+に実装) http://www.astro.phys.s.chiba-u.ac.jp/cans/doc/riemann.html#id17 8 ui-1 MUSCL法 セル平均値(既知) ui ui+1 x i-1/2 i+1/2 1 xi+1/ 2 ui = u( x )dx , ∫ x ∆x i−1/ 2 テーラー展開に基づくセルi内の分布 u( x ) = u( x i ) + ui ' ( x i )(x − x i ) + ui ' ' ( x i )(x − x i ) / 2 + 2 x − xi ∆x 2 3κ 2 (ui +1 − ui −1 ) + 2 (x − x i ) − (ui +1 − 2ui + ui −1 ), ≈ ui + 2∆x 2∆x 12 セル境界値 1− κ (ui − ui −1 ) + 1 + κ (ui +1 − ui ), 4 4 1− κ (ui +1 − ui ) − 1 + κ (ui − ui −1 ), = u( x i −1/ 2 ) = ui − 4 4 uiL+1/ 2 = u( x i +1/ 2 ) = ui + uiR−1/ 2 9 MUSCL法 流束制限関数Φの導入 極値の発生を禁止 ui-1 ui ui+1 x i-1/2 i+1/2 ui −1 < uiR−1/ 2 < ui < uiL+1/ 2 < ui +1 1− κ 1+ κ = ui + Φ(r )(ui − ui −1 ) + Φ(1/ r )(ui +1 − ui ), u 4 4 1− κ 1+ κ R Φ(1/ r )(ui +1 − ui ) − Φ(r )(ui − ui −1 ), ui −1/ 2 = ui − 4 4 r = (ui +1 − ui )/(ui − ui −1 ), L i +1/ 2 代表的な場合: Φ(r)=r Φ(1/r) uiL+1/ 2 = ui + Φ(r )(ui − ui −1 )/ 2, uiR−1/ 2 = ui − Φ(1/ r )(ui +1 − ui )/ 2. 10 ui-1 MUSCL法 流束制限関数 minmod Φ(r ) = max[0, min(1, r )], uiL+1/ 2 = ui + du / 2, uiR−1/ 2 = ui − du / 2, du = MM (ui +1 − ui , ui − ui −1 ), ui ui+1 x i-1/2 i+1/2 du: セルi内の勾配の 候補値の内、最も滑 らかなものorゼロ MM ( x , y) = sgn( x ) max[0, min(| x |, sgn( x )y)]. sgn(x): xの符号 monotonized central Φ(r ) = max[0, min( 2r ,0.5(1 + r ),2)], uiL+1/ 2 = ui + du / 2, uiR−1/ 2 = ui − du / 2, du = MC ( 2(ui +1 − ui ),2(ui − ui −1 ),(ui +1 − ui −1 ) / 2), MC ( x , y, z ) = MM ( x , MM ( y, z )). 11 U iL+1/ 2 MP法(CANS+に実装) U i − 2 U i −1 U i U i +1 U i + 2 x 線形5点補完 U iL+1/ 2 = (2U i − 2 − 13U i −1 + 47U i + 27U i +1 − 3U i + 2 )/ 60, このままでは数値振動発生 周囲の幾つかの候補値と比較し、中央値を取る U i , U i +1 , UUL , U MD , U LC 単調性維持(数値振動の抑制) 極値の保持(MUSCL等のTVDスキームの改良) 12 MP法(CANS+に実装) Upper limit UUL = U i + α (U i − U i −1 ),α ≥ 2 Large curvature Median U LC = U i + (U i − U i −1 )/ 2 + 4d iMM −1/ 2 / 3, d iMM −1/ 2 = MM (U i + U i − 2 − 2U i −1 , U MD = median[(U i + U i +1 ) / 2, U i + (U i −U i −1 ) / 2, U i +1 − (U i + 2 −U i +1 ) / 2] U i +1 + U i −1 − 2U i ). 13 MP法(CANS+に実装) U Umax Umin 単調性維持かつ極値の保持 U iL+1/ 2 ∈ I [U i , UUL , U LC ] and I [U i , U i +1 , U MD ] , U iL+1/ 2 = (2U i − 2 − 13U i −1 + 47U i + 27U i +1 − 3U i + 2 )/ 60, [ = max[min(U , U ] )], U max = min max(U i , U i +1 , U MD ), max(U i , UUL , U LC ) , U min i MD UL LC , ), min( , , U U U U i +1 i U iL+1/ 2 ← median(U iL+1/ 2 , U max , U min ). 14 時間更新 空間精度を上げた際は、時間精度も上げないと数値的 に不安定 dy = f (y) ルンゲ・クッタ法: dt 1次 3次(MPで使用) y n +1 = y n + f ( y n )∆t . y * = y n + f ( y n )∆t , 3 n 1 * ** 2次(MUSCLで使用) y = y + y + f ( y * )∆t , 4 4 y * = y n + f ( y n )∆t , n 2 ** y n n +1 ** y 1 = + + y y f ( y )∆t . n +1 * * y = + y + f ( y )∆t . 3 3 2 2 [ [ ] ] [ ] 15 線形移流 ∂f ∂f +v = 0, ( v = const ) ∂t ∂x 1次 MUSCLminmod MP 厳密解 16 1次元理想MHD方程式(保存形式) ∂U ∂F + = 0, ∂t ∂x U = (ρ , ρu, ρv, ρw, By , Bz , e ) , …保存変数(conserved variables) T ρu 2 ρuu − Bx Bx + p + B / 2 ρ vu B B − x y , F = ρwu − Bx Bz By u − B x v Bz u − Bx w e + p + B 2 / 2 u − B (u ⋅ B ) x ( ( ) p = (γ − 1) e − ρu 2 / 2 − B 2 / 2 , ∇ ⋅ B = 0 ⇒ Bx = const, ) V = (ρ , u, v, w, By , Bz , P ) . T …基本変数(primitive variables) 17 1次元MHDシミュレーション Fi +1/ 2 − Fi −1/ 2 dU i ∂U ∂F =− . + = 0, ⇒ dt ∂t ∂x ∆x Fi +1/ 2 = Riemann(U iL+1/ 2 , U iR+1/ 2 ). 1次精度 U iL+1/ 2 = U i , 2次精度 U: 保存量ベクトル F: 流束ベクトル Fi +1/ 2 U i − 2 U i −1 U i U i +1 U i + 2 U iL+1/ 2 = MUSCL (U i −1 , U i , U i +1 ), 5次精度 U iL+1/ 2 = MP(U i − 2 , U i −1 , U i , U i +1 , U i + 2 ). 18 衝撃波管問題(Brio+ 1988) 1次 2次 5次 密度 縦速度 横磁場 HLLD近似リーマン解法使用(Miyoshi+ 2005) 19 双曲型保存則の性質 ∂U ∂F + = 0, ∂t ∂x ∂U ∂U ∂V ∂V ∂F ⇒ +A = + Ap = 0, A = , U ∂t ∂x ∂t ∂x ∂ ∂U ∂U ∂V ∂V ⇒L + LARL = Lp + L p A pR pL p = 0, (LR = L p R p = 1), ∂t ∂x ∂t ∂x ∂W ∂W ⇒ +Λ = 0, (dW = LdU = L p dV, Λ = LAR ). ←非線形移流 ∂t ∂x 方程式 方程式の対角化 L,R: Aの左,右固有ベクトルを成分とする左,右固有行列 Λ: 実数固有値を成分とする対角行列 特性量dWは特性線Λに沿って一定(リーマン不変量) 風上法に基づく補間は特性量に対して行いたい 20 特性変数変換 左右固有行列Li,Ri(e.g., Ryu+ 1995) 特性変数変換:Wi+s=LiUi+s, (s=-2,…,2 for MP) L R Wi +1/ 2 , Wi −1/ 2 , を補間で求める 逆変換:U iL+1/ 2 = R i WiL+1/ 2 , U iR−1/ 2 = R i WiR−1/ 2 固有行列を計算するのが面倒 プログラムミス多発!! 固有行列が明らかでない方程式系では使えない CANS+に実装済み 21 衝撃波管問題(Brio+ 1988) 1次 2次 5次 密度 縦速度 横磁場 HLLD, 特性変数変換あり 22 2次元理想MHD方程式(保存形式) ∂U ∂F ∂G + + = 0, ∂t ∂x ∂y U = (ρ , ρu, ρv, ρw, Bx , By , Bz , e ) , T ρv ρu 2 ρuv − By Bx ρuu − Bx Bx + p + B / 2 2 ρvv − By By + p + B / 2 ρvu − Bx By ρwv − B B ρwu − B B y z x z . , G = F= B x v − By u 0 B u− B v x 0 y B v− B w Bz u − Bx w y z e + p + B 2 / 2 u − B (u ⋅ B ) e + p + B 2 / 2 v − B (u ⋅ B ) x y ( ) ( ) 23 MHDコードの多次元化 U: 保存量ベクトル F: X方向の流束ベクトル G: Y方向の流束ベクトル Fi +1/ 2, j − Fi −1/ 2, j G i , j +1/ 2 − G i , j −1/ 2 dU i , j ∂U ∂F ∂G + + = 0, ⇒ =− − . ∂t ∂x ∂y ∆x ∆y dt Gi,j+1/2 1次元数値解法の利用 Fi +1/ 2, j = Riemann(U iL+1/ 2, j , U iR+1/ 2, j ), G i , j +1/ 2 = Riemann(U iL, j +1/ 2 , U iR, j +1/ 2 ), 同じタイミングで求めるUnsplit法 y (i,j) Fi+1/2,j x 磁場発散の処理 数値的なdivB≠0で計算破綻 三好、日本物理学会誌(2014) 24 磁場発散の処理 Constrained Transport (CT) 法(Evans+ 1988) DivB=0を離散化レベルで保証する特殊なグリッド配置 プロジェクション法(Brackbill+ 1980) ポアソン方程式を解いて磁場修正 移流拡散法(Powell 1999, Dedner+ 2002) 有限のdivBを移流拡散方程式や電信方程式に従って処理 http://www.astro.phys.s.chiba-u.ac.jp/cans/doc/riemann.html#id23 25 プロジェクション法/CT法 プロジェクション法 B n +1 = B* + ∇φ , ⇒ ∆φ = −∇ ⋅ B* . B*: MHDシミュレーションで得た解(divB誤差含む) Bn+1: divB=0を満たす真の解 ポアソン方程式解いてφ得る => B*をBn+1へ更新 CT法 セル境界面の中心に面に 垂直な磁場成分を配置 セル角の電場を求める (e.g., Balsara+ 1999) ∂B = −∇ × E. ∂t Bx(i-1/2,j) Bz(i,j) Ez(i-1/2,j-1/2) By(i,j-1/2) 26 移流拡散法(CANS+に実装) 9-wave法(Dedner+ 2002) divBを掃除するため方程式を変形、追加 2 c ∂B ∂φ + ∇ × E + ∇φ = 0, + ch2∇ ⋅ B = − h2 φ ∂t ∂t cp Bとφについて整理すると… ∂ 2 ch2 ∂ 2 2 ( ) c + ∇ ⋅ B = 2 h ∇ (∇ ⋅ B ), 2 c p ∂t ∂t 電信方程式(波動+拡散方程式) 実装しやすく計算負荷も少ない 27 移流拡散法 1次元の場合 ∂ Bx 0 + 2 ∂t φ ch 1 ∂ Bx 0 , = 2 2 0 ∂x φ − (ch / c p )φ 演算子分離 ∂ Bx 0 + 2 ∂t φ ch 1 ∂ Bx = 0, 0 ∂x φ 固有値(伝播速度) ±ch ch: CFL条件から決める最大値 cp: (0.18ch)(1/2) (経験的な値) ∂φ = −(ch2 / c p2 )φ , ∂t φ * = exp[−(ch2 / c p2 )∆t ]φ n , 28 移流拡散法 ∂ Bx 0 + 2 ∂t φ ch 1 ∂ Bx = 0, 0 ∂x φ Lax-Friedrichs flux splitting ( ) ( ) ch R 1 L R φi +1/ 2 = φi +1/ 2 + φi +1/ 2 − Bx ,i +1/ 2 − BxL,i +1/ 2 , 2 2 2 c ch R L R 2 h φi +1/ 2 − φiL+1/ 2 . ch Bx ,i +1/ 2 = Bx ,i +1/ 2 + Bx ,i +1/ 2 − 2 2 ( ) ( ) 29 2D MHD with 9-wave Orszag-Tang 渦問題 温度 |divB| http://www.astro.phys.s.chiba-u.ac.jp/cans/doc/riemann.html#id23 30 高次精度MHDコードの実用例 ケルビン・ヘルムホルツ不安定 磁気リコネクション 1次, 2次, 5次精度で特性変数補間 HLLD近似リーマン解法 3次ルンゲ・クッタ法 31 ケルビン・ヘルムホルツ不安定 速度差がある流体の間で発生する不安定 2次的不安定で乱流発展(Matsumoto+2006) 1次 2次 5次 32 KH乱流発展 1次 2次 5次 密度層幅λ2 速度のパワースペクトル k-2 時間 dλ dt = 0.26 (5th) = 0.15 (2nd) = 0.02 (1st) 乱流混合 Dyy = 2 k-3 1次 2次 5次 k-7 波数 33 磁気リコネクション 宇宙プラズマにおける磁 気エネルギー解放機構 恒星フレア、磁気圏サブ ストーム、パルサー磁気 圏… 5次 2次 磁場 電流 1次 流れ 34 磁気リコネクション 1次 2次 5次 磁気 熱 運動x10 エネルギー時間変化 1次スキームでは数値散 逸が大きく、MRX失敗 5次スキームではより効 率的なエネルギー変換 電気抵抗 1,2次スキームでは、数値 的な抵抗で散逸(実線 >> 点線) 5次スキームでは手で与 えた抵抗で散逸(実線 ~ 点線) 35 まとめ 実用的なMHDシミュレーションのためには、高次精度化 と多次元化は必須!! 高次精度化 セル境界の左右の値を非線形補間で求める 次数が上がるほど特性変数変換が重要 多次元化 1次元数値解法の利用 磁場発散の処理(CT, プロジェクション、移流拡散法) 36
© Copyright 2024 Paperzz