MAD-X (1) インストール¶
MAD-X とは¶
特徴¶
MAD-X(Methodical Accelerator Design Version X)
CERN によって開発された粒子加速器の ビーム光学・ビームダイナミクスシミュレーション 用ソフトウェア.
利用体系¶
ソフトウェアの利用体系としては、以下2つが簡単.
コンパイル済みバイナリ をダウンロードしてターミナルから実行.
pythonで cpymad を利用. pip インストールして、バイナリラッパーをpythonから呼ぶ.
内部で バイナリを呼ぶのは同じ なので、計算結果も同じはず.
(A) コンパイル済みバイナリ実行ルート¶
インストール¶
tar zxvf madx<VERSION>.tar.gz # ダウンロード + 解答 >> e.g. /opt/madx/ etc.
chmod u+x madx # 実行権限を付与
export PATH=$PATH:/opt/madx/madx # 実行ファイルへパスを通す
madxにパスが通っているはず( tabで補完できるはず.)
実行方法¶
madx sample1.madx
標準出力が表示される.warning, 等がカウントされる.0のはず.
(B) cpymad でpython実行ルート¶
インストール¶
python -m pip install cpymad
実行方法¶
実行用のpythonスクリプト:
from cpymad.madx import Madx madx = Madx() madx.option(echo=True) # MAD-X の出力を Python 側に表示 madx.call("sample1.madx") # 外部スクリプトの実行
実行コマンド:
(@codes = sample1.py sample1.madx のディレクトリで) python sample1.py
標準出力が表示される.warning, 等がカウントされる.0のはず.
cpymadでの実行¶
from cpymad.madx import Madx
madx = Madx()
madx.option(echo=True) # MAD-X の出力を Python 側に表示
madx.call("my_script.madx") # 外部スクリプトの実行
MAD-Xのサンプルコード¶
sample1.madx¶
title, "Simple FODO Lattice";
beam, particle=proton, energy=1.0;
qf: quadrupole, l=1.0, k1=1.2;
qd: quadrupole, l=1.0, k1=-1.2;
dr: drift, l=2.0;
fodo: sequence, l=6.0, refer=entry;
qf, at=0.0;
dr, at=1.0;
qd, at=3.0;
dr, at=4.0;
endsequence;
use, sequence=fodo;
twiss, betx=1, bety=1;
stop;
標準出力¶
kent@maxwell ~/.../madx/codes $ python sample1.py
++++++++++++++++++++++++++++++++++++++++++++
+ MAD-X 5.09.03 (64 bit, Darwin) +
+ Support: [email protected], http://cern.ch/mad +
+ Release date: 2024.04.25 +
+ Execution date: 2025.05.24 12:58:40 +
++++++++++++++++++++++++++++++++++++++++++++
title, "Simple FODO Lattice";
beam, particle=proton, energy=1.0;
qf: quadrupole, l=1.0, k1=1.2;
qd: quadrupole, l=1.0, k1=-1.2;
dr: drift, l=2.0;
fodo: sequence, l=6.0, refer=entry;
qf, at=0.0;
dr, at=1.0;
qd, at=3.0;
dr, at=4.0;
endsequence;
use, sequence=fodo;
twiss, betx=1, bety=1;
enter Twiss module
open line - error with deltap: 0.000000E+00
initial orbit vector: 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00
final orbit vector: 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00
++++++ table: summ
length orbit5 alfa gammatr
6 -0 0 0
q1 dq1 betxmax dxmax
0.3844525013 0 225.6324483 0
dxrms xcomax xcorms q2
0 0 0 0.617032142
dq2 betymax dymax dyrms
0 41.49066004 0 0
ycomax ycorms deltap synch_1
0 0 0 0
synch_2 synch_3 synch_4 synch_5
0 0 0 0
synch_6 synch_8 nflips dqmin
0 0 0 0
dqmin_phase
0
stop;
Number of warnings: 0
++++++++++++++++++++++++++++++++++++++++++++
+ MAD-X finished normally +
++++++++++++++++++++++++++++++++++++++++++++
Tip
.madx スクリプト内では文末に ; を忘れない.
スクリプトファイル名に拡張子 .madx を付けて、エディタによる構文ハイライトを設定すべし ( e.g. Emacs: madx-mode )