========================================================= MAD-X (1) インストール ========================================================= MAD-X とは ============= 特徴 ----------- * MAD-X(Methodical Accelerator Design Version X) * :blue:`CERN` によって開発された粒子加速器の :blue:`ビーム光学・ビームダイナミクスシミュレーション` 用ソフトウェア. | 利用体系 ----------- ソフトウェアの利用体系としては、以下2つが簡単. (A) :blue:`コンパイル済みバイナリ` をダウンロードしてターミナルから実行. (B) pythonで :red:`cpymad` を利用. pip インストールして、バイナリラッパーをpythonから呼ぶ. + 内部で :blue:`バイナリを呼ぶのは同じ` なので、計算結果も同じはず. | (A) コンパイル済みバイナリ実行ルート ======================================= インストール --------------------- .. code-block:: bash tar zxvf madx.tar.gz # ダウンロード + 解答 >> e.g. /opt/madx/ etc. chmod u+x madx # 実行権限を付与 export PATH=$PATH:/opt/madx/madx # 実行ファイルへパスを通す * madxにパスが通っているはず( tabで補完できるはず.) | 実行方法 --------- .. code-block:: bash madx sample1.madx * 標準出力が表示される.warning, 等がカウントされる.0のはず. | (B) cpymad でpython実行ルート ======================================= インストール --------------------- .. code-block:: bash python -m pip install cpymad | 実行方法 --------- * 実行用のpythonスクリプト: .. literalinclude:: codes/sample1/sample1.py :language: python * 実行コマンド: .. code-block:: bash (@codes = sample1.py sample1.madx のディレクトリで) python sample1.py * 標準出力が表示される.warning, 等がカウントされる.0のはず. | cpymadでの実行 -------------------- .. code-block:: python from cpymad.madx import Madx madx = Madx() madx.option(echo=True) # MAD-X の出力を Python 側に表示 madx.call("my_script.madx") # 外部スクリプトの実行 | MAD-Xのサンプルコード ============================== sample1.madx ----------------- .. literalinclude:: codes/sample1/sample1.madx | 標準出力 ------------ .. literalinclude:: codes/sample1/sample1.stdout | .. tip:: * `.madx` スクリプト内では文末に `;` を忘れない. * スクリプトファイル名に拡張子 `.madx` を付けて、エディタによる構文ハイライトを設定すべし ( e.g. Emacs: madx-mode ) Reference ================== * https://uspas.fnal.gov/materials/18ODU/Fund/using-mad-x.html