.. _madx_tutorial__p1: MAD-X チュートリアル (1): 基本概念と使い方 ====================================================== * chatGPTによるCERNスライドの自動翻訳・自動要約です. 概要 ---- * MAD-X(Methodical Accelerator Design)は、CERNを中心に利用されている加速器設計・シミュレーションツール. * 主にビーム光学関数(Twissパラメータ)の計算やマシン構成の記述に用いられます。 * 本節では、CERN Accelerator School(CAS 2011年 Chios校)のチュートリアルに基づき、基本的な使い方を紹介します。 MAD-X の特徴 ------------ - **インタプリタ型プログラム** で、行ごとにコマンドを実行します - 構文は C 言語に類似し、 **変数定義・条件分岐・ループ** なども使用可能です - 入力ファイルには、 :red:`ビーム要素の定義・ビーム条件・実行指令(TWISS計算など)` を記述します - **GUIはなく、すべてテキストベース** で操作します MAD-X の実行方法 ---------------- 対話モード:: $ madx MAD-X > angle = 2*pi/1232; MAD-X > value, angle; スクリプト実行(推奨):: $ madx < myscript.madx または MAD-X 内部から:: MAD-X > call, file="myscript.madx"; .. tip:: 入力ファイルは **プレーンテキスト(ASCII)** である必要があります。 Word や PowerPoint ファイルでは動作しません。 MAD-X の構文 ------------ - 各命令は ``;`` で終わります - コメントは ``//`` または ``!`` を使用します - 変数代入には ``=`` と ``:=`` の2種類があります: - ``=`` : 一度だけ評価され、値として保存されます - ``:=`` : 毎回参照時に再評価されます(ランダム関数等に有効) 例:: angle = 2*pi/1232; dx = gauss()*1e-3; // 一度だけ評価 dx := gauss()*1e-3; // 毎回再計算される 組み込み定数:: clight, pi, e, mp(陽子質量), me(電子質量)など MAD-X の言語機能 ---------------- - 数学関数: ``exp()``, ``log()``, ``sin()``, ``cosh()`` など - 乱数生成: ``gauss()``, ``tgauss()``, ``ranf()`` など - 条件分岐、ループ、マクロ(サブルーチン)も可能 - ループ構文で :blue:`反復構造のビームライン` を構築可能 座標系と慣例 ------------ - MAD-X は、加速器の中心軌道に沿った :blue:`曲線座標系` (curvilinear)を使用します - ``s``:加速器軸に沿った位置 - ``x``, ``y``:横方向の座標(通常 x が曲げ面、y が垂直) - 各要素は ``ENTRY``・``CENTRE``・``EXIT`` を基準に配置できます .. tip:: MAD-X の変数はすべて **倍精度浮動小数点(double precision)** です。 参考資料 ------------ - 公式ドキュメント: https://mad.web.cern.ch/mad/ - 本ページの参考スライド: https://madx.web.cern.ch/doc/madx_tutorial.pdf - GitHubサンプル: https://github.com/MethodicalAcceleratorDesign/madx-examples