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;

主なパラメータ

  • PARTICLEELECTRON, 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";