炉物理の研究

第 54 号 (2002 年 9 月)

「私の Eureka？」(株)テプコシステムズ 小坂進矢
kosaka-shinya@tepsys.co.jp

1 はじめに「Eureka」って何？ と思って辞書を調べてみると、そこには「しめた」とか「わかった」といった意味がアルキメデスの金の王冠のエピソードと共に記されている。察するに「Eureka」とは漠然とした思考が何かを契機に一気に収束し、閃き（確信）へと変化していくときの心境を示すものであろう。そういう意味では、私にとって「やったぜ、俺って天才。Eureka だ！」と思えた夢の瞬間はこれまでに数限りなく存在するような気がする。
．
ただし、そのうちの９０％がまさに閃光の如く消え去り、残りの１０％についても実際に実行・証明ができないまま終わってしまう事がほとんどである。確信するのは勝手だが証明できないと意味が無い。まさにその通りである．．．
さて、ここでは夢見がちな私が、神の声を聞いてからなんとか論文を出すまでに漕ぎ着けた数少ないものの中からその一例を紹介したい。

2 準備体操ここで私が紹介するのは、DNPL(中性子パス結合)法を用いた、Characteristics 法による大規模炉心中性子輸送計算コードの開発※１にまつわるお話である。あまりお勉強の話をしたくないが、Characteristics 法による中性子輸送計算とはどんなものか少しでもイメージを持っていただかないと、何が Eureka なのかさえわかっていただけないので、そのさわりについて数行、極簡潔に述べる。
Characteristics 法とは、式１に示す線分(t)上の方向(k)依存のボルツマン方程式を、解析対象領域の端から端へ直線(tracking path)上を連続して解く作業を、体系全体を覆い尽くす何本もの tracking path 上で繰り返して行い、目的とする中性Ωk

子束分布などを求めるもので（図１参照）、簡単に言えば、

m-1m

予め反応の種類と行き先（path）が決まっている多群モンテ
ti , k , m

カルロ計算のようなものである（ちょっと違うかも？）。
d Φ k ,id sk+ Σ i Φ k ,i = Q

k ,i

（式１）

s0iδAk

図１15tm+1

Characteristics 概念図

炉物理の研究第 54 号 (2002 年 9 月)

3 背景
Characteristics 法の説明も終わった(?)ところで、本題に戻る。当時、某電力の子会社に就職して BWR 炉心解析の精度向上をめざす業務に携わるようになっていた私は、実機炉心解析におけるリファレンス解が欲しいという要求から、実機炉心規模の非均質輸送計算の可能性を模索するようになっていた。「精度検証のリファレンス解といえばモンテカルロ」と言いたいところであるが、実機炉心規模ともなると、固有値評価ならまだしも、燃料棒一本一本の出力分布まで調べるには、ちょっとやそっとのヒストリー数ではお話にならなかった。そこで決定論的手法で、かつ非均質形状が取り扱え、かつ大規模計算に耐えられる手法として Characteristics 法に白羽の矢があたることになった。当時、Characteristics法を採用している計算コードと言えば、当社でも炉心解析業務で使用している SSP 社製の格子計算コード CASMO-4※２(KRAM routine)ぐらいが唯一メジャーなコードであったが、取り扱える体系の大きさはせいぜい集合体２ｘ２程度であった。
そこで夢見る私は、この CASMO コードの Characteristics ルーチンを参考にして、実機規模炉心解析に耐え得る大規模輸送計算コードの開発を試みようと思い立った。
（若かったなぁ．．
．）

4 Eureka？
さて大規模 Characteristics 輸送コードをどう作るか？

まずは思いつくのは単純にCASMO の大型版を作ることであろう。ひねりの無い私は御多分に漏れず、大容量 CASMOもどきを作りにかかったが、開発当初は業務プロジェクトとして会社に認めてもらえるべ
くもなく、業後、独身寮に帰ってから Linux の載せてある自宅のパソコンで、ジャージ姿．．．．
でちまちまとプログラムを作る夜が続いた。まさに日本のサラリーマンの鑑である（風の中のすーばるー♪

砂の中のぎーんがー♪

BGM：「地上の星」中島みゆき）。

そうこうしている間に、なんとか雛型が完成してきた。寮にある自前のパソコンでは６４MB しか（当時はこれで５０万した）記憶容量がなく、３ｘ３集合体程度の体系が限界だ
ったので、大きな体系は会社の EWS サーバーを使ってこっそり計算をするようになっていた。この頃にはすでに社内でも開発活動が黙認（公認ではない？）されるようになっていたのだが、正体を現した BWR1/4 炉心計算で 1200MB 使う化け物コードは、加速法など微塵も考慮しない私のおかげで、収束までに 1000 回近い反復計算と、18 時間を越える計算時間を必要とする、他人業務妨害コードとなっていた。
「これでは、使い物にならない．．
．
」「もっと早く、軽く解析する方法はないか．．
．」

16

炉物理の研究第 54 号 (2002 年 9 月)

まさにこの時期は、一日中 Characteristics 法のことばかり考えており、ベンゼン環の構造を発見した Kekule の話ではないが、夢に tracking path に見立てた白い蛇が６匹どころではなく、うじゃうじゃ出てきたように記憶する。また同時に「Eureka!」と確信（狂気）じみたアイデアが閃いた瞬間が最も多かったのもこの時であるが、結果は惨敗であった。
では何が「Eureka!」だったのか？
正直言って、今回の目玉である DNPL 法の概念の発見は、当初私にとってとても「Eureka!」と呼べるものではなかった。実際その可能性については、私が Characteristics
法の勉強をし始めた当初から気づいていたのだが、この手法による大規模炉心計算コード開発は面倒臭がりの私には絶えられないほど複雑である事が容易に想像できたためだ。

ここで簡単に DNPL 法による大規模 Characteristics 輸送計算についてふれておこう。
Characteristics 法による大規模輸送計算において、大きな計算機容量を必要とする情報は主に、各詳細領域での中性子束情報、境界での角度依存中性子束情報と、中性子のtracking path 情報である。前者２つは、解析中、常に保持しておかなければならない必須情報で、容量削減にはファイルスワップ程度しか思いつかない。しかし数百 MB オーダー．．のファイルスワップの繰り返し計算はぞっとしないので、ここではメモリ上に常駐させることとした。そうなると矛先は tracking path 情報となる。実はこの情報はメモリ上に常駐させなくても、必要なときに輸送計算を行なう線分長さを逐次求めれば済むのである。が、この場合、計算時間が２桁ほど増えること請け合いである。
ここで紹介する DNPL 法とは、tracking path 情報を有効にシェアして炉心解析を行なう方法である。通常、実機炉心など大規模体系では、同一幾何学形状（燃料集合体）が周期的に配置されたものが多い、これはある１つの（または複数）の幾何学形状に対してtracking path 情報を用意すれば、後は同じ情報を共有して使える可能性を意味している。
そこで tracking path を下図２に示すようにうまく作成することで、隣接する幾何学単位とtracking path が誤差なく結合され、図３にあるように大きな計算体系をわずか数種類の集合体 tracking 情報を繰り返し使用することで計算できるというものである。

17炉物理の研究

123

第 54 号 (2002 年 9 月)

Multi-assembly system

4

Neutronflight path

Ray tracing arrangement in CACTUS

5

1:an original flight path
2:horizontal-symmetry of path1
3:90 degree clockwise rotate of path1
4:90 degree clockwise rotate of path2
5:a tracking path group (overwrite 1-4)

E
A B C Dzoom in
Assembly E

Assembly A

Assembly A

direct linking Assembly B

図２

DNPL 法の概念

Assembly B

Assembly C

Assembly D

Direct Neutron Path Linking

図３

DNPL 法による炉心解析

説明不足で分かりづらいかと思われるが、概念だけ聞いていると確かに「Eureka!」っぽい気もする（自画自賛？）。
実 際 、 こ の 手 法 以 外 思 い つ か な か っ た 私 は 、 根 性 を 入 れ て DNPL 法 に 基 づ くCharacteristics 大規模輸送計算コードの開発に着手することとなる。しかし、開発当初は半信半疑で「Eureka?」という感じで、冒頭で述べた神の声とは、その前途多難さに「（作るのは）やめとけ～」という、私の心の底から湧き上がってくる本音であったように思える。

4 Eureka!
．
なぜ、この DNPL 法が「Eureka?」と思っていたのか？ それは、無数にある tracking pathを間違うことなく結合させるプログラムを作る困難さのためである。隣の集合体から出てきたある角度の tracking path が次のどの path に繋がるかを決定するのは、目で理解する以上に難しい。ましてや、形状は同じでも集合体は回転して配置されるので、ある単位形状の右から出た path は同じ角度で左に入るわけではなく、その単位形状上の違う角度となって上や下の面から入ってくるのである！

まさに悪夢である。 こんな泥臭い「Eureka!」があっていいのだろうか？
しかし、目の覚めない悪夢はない（寝ている間に死んでしまう場合を除く）。ということで、紙面の関係上、完成までの涙のストーリーを紹介できないのが残念ではあるが、この
DNPL 法による大規模計算コードも遂には完成し、その性能を発揮してくれる日が来たの

18

炉物理の研究第 54 号 (2002 年 9 月)である。その性能は、先に作成した没コードに比べ、計算時間 1/100、計算機容量 1/3。
初めて「Eureka?」が「Eureka!」に変った瞬間である。（再度、中島みゆきの BGM♪）
このように私の「Eureka!」は、アイデアが閃いてからエレガントに実行されたわけではなく、どちらかと言うと、スポ根ものの努力・忍耐・根性があって初めて得られたものである。しかし、この苦労の分だけ達成した時の感慨は大きく、「Eureka!」の！マークも強調されるというものであろう。
超面倒臭がりの私は、できればエレガント（楽）な「Eureka!」を思いつくことをいつも期待している。しかしながら、世の中そう甘くは無いものである（教訓）。
以上、長々と私の回顧録に付き合っていただき有難うございました。

・ 参考資料1) Kosaka S., Saji E., :Journal of Nuclear Science and Technology, Vol.37, No12,
p.1015 (2000)
2) Knott D., Edenius M. : Proc. Int. Conf. Mathematical Methods andSupercomputing in Nuclear Applications, Karlsruhe, Germany, April 19-23,
1993, Vol.2, p.547 (1993)19