MAD-X チュートリアル (2): 要素・シーケンス・ビームの定義¶
chatGPTによるCERNスライドの自動翻訳・自動要約です.
加速器要素の定義¶
MAD-X では、すべてのビームライン要素を名前付きで定義します。 定義の構文は以下のようになります:
名前: 種類, パラメータ1=値1, パラメータ2=値2, ... ;
例:
MBL: SBEND, L=10.0, ANGLE=0.0145; // 曲げ磁石
MQ: QUADRUPOLE, L=3.3, K1=1.23E-2; // 四重極磁石
QUAD01: MQ; // MQのインスタンス
定義できる主な要素¶
SBEND: 偏向磁石
QUADRUPOLE: 四重極
SEXTUPOLE:六重極
OCTUPOLE:八重極
MULTIPOLE:任意次数の多極場(薄レンズ)
MARKER:位置の目印(光学に影響なし)
MONITOR, HKICKER, VKICKER:BPM・補正器など
強さの定義式(参考):
k0 = angle / L // SBEND
k1 = 1/(l·f) // QUAD
k2 = d²By/dx²/p // SEXTUPOLE
シーケンスの定義¶
要素を並べて、加速器全体を「シーケンス(SEQUENCE)」として構築します。
基本構文:
myseq: SEQUENCE, L=全体長, REFER=CENTRE;
要素1, AT=位置1;
要素2, AT=位置2;
...
ENDSEQUENCE;
例:
linac: SEQUENCE, L=2.0, REFER=CENTRE;
QF1: QUADRUPOLE, L=0.1, K1=0.5, AT=0.2;
RF1: RFCA, L=1.0, VOLT=20e6, FREQ=2856e6, LAG=0.5, AT=0.3;
MARK: MARKER, AT=2.0;
ENDSEQUENCE;
AT=位置 により要素の配置を指定します。 相対位置(FROM=要素名)や式を使った位置計算も可能です。
繰り返し構造の構築(whileループ)¶
例:108セルの周期構造をループで定義:
lcell = 64;
ncell = 108;
cassps: SEQUENCE, REFER=CENTRE, L=lcell*ncell;
n = 1;
while (n < ncell+1) {
qf, AT=(n-1)*lcell;
bend1, AT=(n-1)*lcell + 0.25*lcell;
qd, AT=(n-1)*lcell + 0.5*lcell;
bend2, AT=(n-1)*lcell + 0.75*lcell;
n = n + 1;
}
ENDSEQUENCE;
ビーム条件の定義¶
ビーム粒子種・エネルギー・エミッタンス などを設定します。
基本構文:
BEAM, PARTICLE=粒子名, ENERGY=エネルギー, ... ;
例:
BEAM, PARTICLE=PROTON, ENERGY=450.0;
主なパラメータ¶
PARTICLE:ELECTRON, PROTON, POSITRON, MUON, ION など
ENERGY:粒子エネルギー [GeV 単位]
NPART:粒子数(例:1.1E11)
CHARGE:電荷数(陽子なら1、電子なら-1)
MASS:粒子質量(必要なら指定)
マシンの使用指定と出力設定¶
定義した SEQUENCE を「使用中のマシン」として指定します:
USE, SEQUENCE=名前;
Twiss関数の計算と出力:
SELECT, FLAG=TWISS, COLUMN=NAME,S,BETX,BETY;
TWISS, FILE="twiss.out";
描画出力(オプション):
PLOT, HAXIS=S, VAXIS=BETX,BETY;
範囲指定:
PLOT, HAXIS=S, VAXIS=BETX,BETY, RANGE=QF[10]/QF[20];
ジオメトリ出力:
SURVEY, FILE="survey.out";