5.10. [ Electro Magnetic Field ] セクション

このセクションでは、指定した空間に電場と磁場を設定するためのパラメータを定義します。 [parameters] セクションで ielctf=1 とすることでこのセクションで定義したパラメータが有効となり、荷電粒子の電磁場中の運動を記述できるようになります。 電子・陽電子についてこの機能を使用する場合は、EGS5を利用してください。 4重極磁場、中性子用磁場を除けば、電場と磁場は任意に併存させることができます。

5.10.1. 一様な電場と磁場の利用

次の書式により、一様な電場や磁場を設定できます。

[ Electro Magnetic Field ]
  reg   elf   mgf   trcle   trclm
  1     100   1     1       2
  2     100   1     1       2

パラメータは、電磁場を指定する region もしくは cell の番号 reg 、電場の強さ elf 、磁場の強さ mgf 、電場の方向 trcle 、磁場の方向 trclm です。 場の強さ elfmgf の単位は、それぞれ kV/cm と kGauss です。 電場と磁場の方向 trcletrclm は、座標変換番号 trcl を用いて定義します。 これらを 0 とした場合は、電場の向きが \(x\) 軸の + 、磁場の向きが \(y\) 軸の + の方向となります。 trcletrclm は省略できません。 場の強さを 0 とした場合や trcl が必要ない場合も 0 と入力してください。

typm , type をともに指定しない場合、並行電場、並行(二重極)磁場を仮定します。

[ Electro Magnetic Field ]
  reg   elf   typm  mgf   trcle   trclm
  1     0     4     10    0       1
  2     0     2     1     0       2

typm は磁場のタイプ、二重極電磁石が 2、四重極電磁石が 4です。 4重極磁場を設定した場合、電場は設定できません。 パラメータは、電磁場を指定する region, ..., trcl が必要ない場合も 0 と入力してください。

同じ値の領域をまとめて書く、 ( { 2 - 5 } 8 9 ) という書式も使えます。 また、 ( 6 < 10[1 0 0] < u=3 ) などの lattice, universe 構造も指定できます。 ただし、単一の数字で無い場合は必ず ( ) で括ってください。 この書式を用いれば lattice のひとつひとつに異なる magnet field を定義することも可能です。 上の定義で、同じセルが二重に定義された時は、初めに定義された値が採用されます。 これらの順番を変えたいときは、定義の文字列の順番を変えます。 読み飛ばしコラム用の non も使えます。

二重極電磁石の場合、磁石の間隔 gap は意味がありませんが、何らかの数値を入力してください。 磁場の働く領域は、真空の領域、即ち、 mat が 0 のときに限りません。 磁場中でも減速、散乱が起こります。

磁場中心の軸は \(z\) 軸上、磁場の方向は、二重極電磁石では、 \(y\) 軸正方向、即ち正荷電粒子が \(z\) 軸正方向に進むときに、 \(x\) 軸負方向に偏極します。 四重極電磁石では、正荷電粒子が \(z\) 軸正方向に進むときに、 \(x\) 軸方向に収束、 \(y\) 軸方向に分散の配置です。 これらの位置関係を幾何形状に合わせるには、 trcl による座標変換が必要です。 座標変換で、 \(z\) 軸を磁石の幾何形状の中心軸に変換します。

[ Electro Magnetic Field ]
  reg   elf   typm  mgf   trcle   trclm

  reg           typm  gap       mgf       trcl  time
  1             4     10.00000  -5.956540 3     non
  4             2     10.00000  3.516000  0     pi/2
  ( 150 < 61 )  4     13.00000  7.880140  2     non

ここで、 time は、ユーザー定義の磁場の時間変化のパラメータです。 non が、時間変化無しです。 ユーザー定義サブルーティンは、 usrmgt1.fusrmgt2.f がサンプルルーティンとして含まれています。 前者がWobbler 磁石、後者が中性子用パルスマグネットです。 これらを切り替えるには、パラメータセクションで、 usrmgt = 1,2 で指定します。 Wobbler の時の time パラメータは、位相を指定し、パルスマグネット時は、立ち上がり時間を指定します。 pi は、円周率の定数として使用できます。

[source] セクションのパラメータ izst を用いて入射粒子の電荷価数を指定した場合、電磁場中の運動はその価数に応じたものになります。 通常のPHITSでは、荷電粒子、特に原子核は、電場や磁場の中で原子番号 \(Z\) の電荷をもつ粒子として振る舞います。 しかしながら、加速原子核では、電荷価数が \(Z\) 、即ち全ての電子が剥ぎ取られた状態以外に、幾つかの電荷状態が存在するときがあります。 izst を用いることで、その状態にある粒子の運動を模擬できるようになります。 ここで指定された価数は、輸送の途中では変化しません。 ただし、核反応を起こして生成される原子核には影響を及ぼしません。 即ち、原子核反応で生成された原子核の価数は、その原子番号 \(Z\) に戻ります。

数cm以下の距離で軌道が大きく曲がる強い電磁場やエネルギーの低い荷電粒子の軌道を計算したい場合は、電磁場中での最大飛行メッシュ deltg を小さく設定してください。

5.10.2. 中性子

中性子光学のための磁場の書式は、ほぼ荷電粒子の場合と同じですが、細かい点が異なりますので、ここにまとめて説明します。 まず書式の例題を下に示します。

[ Magnetic  Field ]
  reg    typ    gap            mgf           trcl      polar     time
    1     60    0.00000       35000.0          3        non      non
    2     61    0.00000       35000.0          1         1       non
    3    106    5.00000        7130.0          0         0       non
    4    104    0.00000        3.5             0        non      5.0
    5    102    0.00000        0.20            0        non      non
    6    101    3.00000        7130.0          2         1       non
    7    103    0.00000       35000.0          0        -1       non
   ...   ...    ........       ........       ...       ...      ...
   ...   ...    ........       ........       ...       ...      ...

タイプは上の7種類あります。 60、61は、最もシンプルな6極磁場で、重力効果や追加2極磁場は入れられません。 60は、スピンとの相互作用なし、即ちスピンは磁場に平行か反平行かで記述されます。 61は、スピンとの相互作用が入ります。 磁場の弱いところでのスピンの反転などが起こります。 磁場の強さは、 mgf のコラムに [T/m2] の単位で指定します。

次に100番台は、全てスピンとの相互作用を考慮しています。 また、重力効果、追加の2極磁場が入れられます。 106が6極、104が4極、102が2極磁場です。 \(z\) 方向の追加2極磁場の強さは、 gap のコラムに記述します。 単位はT(テスラ)です。

101は、磁場の値をユーザー定義ファイル usrmgf1.f で定義します。 このユーザープログラムでは、原研の中性子光学グループで測定された6極磁場の値が格納された4つのファイルからデータを読み込み、それらを内挿して計算に用います。 磁場の強さは、 mgf で定義した値に規格化します。 gap のコラムで与えた2極磁場は、定義した磁場領域全域に作用します。

103も、ユーザー定義ファイルを参照するオプションです。 103では、usrmgf3.f を参照します。 usrmgf3.f には、6極磁場の式が書いてありますので、このまま動かせば、106を指定した時と同じになります。 ユーザー定義磁場を書く場合は、添付の usrmgf1.fusrmgf3.f を参考にしてください。

中性子のスピンは、ソースセクションで sx, sy, sz で定義すれば、その方向で磁場に入射します。 ソースセクションで定義しないか、 sx, sy, sz 全てがゼロの場合は、最初に磁場に入った時の磁場の方向で初期化されます。 その時、このセクションの polar のコラムで定義される偏極率によりスピンの向きが磁場に平行か反平行かの比率が決定されます。 non は、偏極率ゼロと同義です。 偏極率 \(P\) の定義は、

\[P = \frac{\phi_+ - \phi_-}{\phi_+ + \phi_- }\]

ここで、 \(\phi_+\)\(\phi_-\) は、スピンが磁場に平行な粒子数と反平行な粒子数です。

5.10.3. 磁場マップの読込方法

Version 3.10より、xyzグリッドもしくはr-zグリッドで表現された任意の磁場構造を読み込むことが可能となりました。 その書式の例題を以下に示します。

[ Magnetic  Field ]
  reg   typ   gap    mgf   trcl   file
  101   -1    10.0   0.5   0      xyzlist.dat
  102   -2    100.0  3.0   0      rzlist.dat
  103   -3    10.0   10.0  0      xyzmap.dat
  104   -4    1.0    1.0   1      rzmap.dat

磁場マップは4つの形式で定義でき、それぞれ typ=-1 から -4 で指定します。 中性子に対して磁場を考慮したい場合は typ=-101 から -104 となります。 1つのインプットファイルで同タイプの磁場マップを2つ以上指定することができません。 各形式は 表 5.10.1 のようになります。

表 5.10.1 利用できる磁場マップの形式

typ

説明

-1 or -101

xyzグリッド、データリスト型

-2 or -102

r-zグリッド、データリスト型

-3 or -103

xyzグリッド、データマップ型

-4 or -104

r-zグリッド、データマップ型

磁場マップの場合、 gapmgf が通常の磁場の場合と比べて意味が異なり、 gap は飛程の分割数、 mgf は磁場マップで指定した磁場強度の倍率となります。 磁場がない場合の飛程を gap \(\times\) 100 等分し、ルンゲ・クッタ法を用いて飛跡を解析します。 例えば、磁場マップで指定した磁場の単位がT(テスラ)の場合、 mgf=10 とすることにより kG 単位に変換してPHITSで読み込むことができます。 file は磁場マップファイル名です。 なお、電子・陽電子はEGS5モードを用いた場合のみ磁場が有効となり、その飛程の分割数は gap とは無関係となります。 また、電子・陽電子の場合は、通常の磁場と同じく座標変換( trcl )が有効になりませんので注意してください。

5.10.4. 磁場マップの形式

全ての磁場マップファイルは、ヘッダー部分とデータ部分に分けられます。 ヘッダー部分は #$ を使ってコメント文を挿入することができますが、データ部分にはコメントを書くことができません。 各磁場マップのサンプルは /phits/utility/magmap フォルダに格納されていますので、そちらも参照してください。

5.10.4.1. ヘッダーの指定方法

ヘッダー部分では、PHITSインプットファイルと同じく、スペースは無視され、大文字・小文字の区別はありません。 ヘッダーパラメータは、1行に1つずつ指定します。 指定可能なヘッダーパラメータを 表 5.10.2 に示します。

表 5.10.2 磁場マップで指定可能なヘッダーパラメータ

パラメータ

説明

nx

x方向のグリッド数( typ=-1-3 で有効、省略不可)

ny

y方向のグリッド数( typ=-1-3 で有効、省略不可)

nz

z方向のグリッド数(全ての typ で有効、省略不可)

nr

r方向のグリッド数( typ=-2-4 で有効、省略不可)

xmin

xグリッドの最小値( typ=-3 で有効、D=0)

xmax

xグリッドの最大値( typ=-3 で有効、省略不可)

ymin

yグリッドの最小値( typ=-3 で有効、D=0)

ymax

yグリッドの最大値( typ=-3 で有効、省略不可)

zmin

zグリッドの最小値( typ=-3-4 で有効、D=0)

zmax

zグリッドの最大値( typ=-3-4 で有効、省略不可)

rmin

rグリッドの最小値( typ=-4 で有効、D=0)

rmax

rグリッドの最大値( typ=-4 で有効、省略不可)

ibxmap

x方向磁場マップデータの有(=1)無(=0)。( typ=-3 で有効、D=1)

ibymap

y方向磁場マップデータの有(=1)無(=0)。( typ=-3 で有効、D=1)

ibzmap

z方向磁場マップデータの有(=1)無(=0)。( typ=-3-4 で有効、D=1)

ibrmap

r方向磁場マップデータの有(=1)無(=0)。( typ=-4 で有効、D=1)

extendx

x負方向への磁場の拡張( typ=-1-3 で有効、省略した場合は拡張しない)

extendy

y負方向への磁場の拡張( typ=-1-3 で有効、省略した場合は拡張しない)

extendz

z負方向への磁場の拡張(全ての typ で有効、省略した場合は拡張しない)

data

この行以降がデータ部分となります(全ての typ で有効、省略不可)

extend を指定し、磁場の向きを反転させて拡張したい場合は、同じ行に flip=br, bz のように反転したい磁場を書きます。 例えば

extendx flip = bz
extendy flip = bz

とした場合は、 図 5.10.1 のように \(z\) 方向の磁場の向きが反転します。 ( \(x, y\) 方向に関しては、同じ向きの磁場が拡張されます。)

example of extending magnetic field with flipped direction

図 5.10.1 flip を使用し、磁場の向きを反転させて拡張した例。

5.10.4.2. 磁場強度の定義方法

データ部分では、スペース、タブ、もしくはコンマ区切りで数値データを指定します。 文字やコメントは入れられませんので注意してください。 ただし、数値データの後ろのカラムであれば自由にコメントを入れることができます。 距離の単位は cm 、磁場の単位は kG です。 粒子位置における磁場強度はグリッド上の値を線形内挿して導出しますので、入力する磁場強度は、グリッドの中点ではなく各グリッド上の値を入力してください。 以下、 typ 別の磁場指定方法を示します。

  • typ=-1: xyzグリッド、データリスト型

x1 y1 z1   Bx111 By111 Bz111
x1 y1 z2   Bx112 By112 Bz112
...
x1 y1 znz  Bx11nz By11nz Bz11nz
x1 y2 z1   Bx121 By121 Bz121
...
x1 yny znz Bx1nynz By1nynz Bz1nynz
x2 y1 z1   Bx211 By211 Bz211
...
xnx yny znz Bxnxnynz Bynxnynz Bznxnynz
  • typ=-2: r-zグリッド、データリスト型

r1 z1   Br11 Bz11
r1 z2   Br12 Bz12
...
r1 znz  Br1nz Bz1nz
r2 z1   Br21 Bz21
...
rnr znz Brnrnz Bznrnz
  • typ=-3: xyzグリッド、データマップ型

Bx111 Bx211 Bx311 ... Bxnx11
Bx121 Bx221 Bx321 ... Bxnxy1
...
Bx1ny1 Bx2ny1 Bx3ny1 ... Bxnxny1
Bx112 Bx212 Bx312 ... Bxnx12
...
Bx1nynz Bx2nynz Bx3nynz ... Bxnxnynz
(同様のマップをBy, Bzに対しても繰り返す)
  • typ=-4: r-zグリッド、データマップ型

Br11 Br12 Br13 ... Br1nz
Br21 Br22 Br23 ... Br2nz
...
Brnr1 Brnr2 Brnr3 ... Brnrnz
(同様のマップをBzに対しても繰り返す)

データの順番は変更することはできません。 ただし、 typ=-3-4ibxmap などのパラメータを0にした場合は、その方向に対する磁場データを省略することができます。 その場合、その方向に対する磁場強度は全て0となります。 また、 typ=-1-2 で指定する座標は、必ず昇順となるようにしてください。 計算時間は、同じ磁場であればデータマップ型の方が短くなりますが、データリスト型でも各グリッド間隔が全て等しければ、データマップ型とほぼ同等になります。

5.10.5. 電場マップの利用方法

Version 3.20より、 xyz グリッドもしくは r-z グリッドで表現された任意の電場構造を読み込むことが可能となりました。 基本的には書式は 5.10.3 章 と同じですが、ファイル名は filee で指定します。 また、磁場マップと共存させる場合は、そのファイル名を filem で指定します。 その書式の例題を以下に示します。

[Electro Magnetic Field]
reg  type  typm  gap   elf    mgf  trcle  trclm     filee        filem
102  -3     -1   10.0  100.0  10.0   0      0    xyzmap.dat  xyzlist.dat

type 及び typm は、電場及び磁場マップの形式を表し、 表 5.10.1 で示す typ と同じ値が指定できます。 ただし、中性子に対しての磁場−101 から -104 を指定した場合、電場と共存させることはできません。Ver.3.36から、電場マップと磁場マップをいくつでも指定できるようになりました。 elf 及び mgf は、電場及び磁場マップの強度倍率で、それぞれ1とした場合の単位は kV/cm と kG となります。 gap はルンゲ・クッタ法を用いて飛跡を解析する際に飛程の分割数を決定するパラメータであり、そのデフォルト値は10で、大きくするほど刻み幅が小さくなります。 なお、電子・陽電子はEGS5モードを用いた場合のみ電磁場が有効となり、その飛程は gap とは無関係になります。 trcletrclm は、電場・磁場それぞれの座標変換番号を示しており、通常の電磁場と同じく、電子・陽電子の場合は有効になりませんので注意してください。

電場マップの定義方法は、単位が kG ではなく kV/cm である点を除いて磁場マップの定義方法と同じですので、 5.10.4 章 を参照してください。