Yamamoto's Laboratory
 
 
入力
 
電磁場取り込み
 
User elemetns
  公開elements
 
 
Python
 
 
 
 
 
 
 
 
研究内容 加速器 GPT User elements 公開エレメント

GPT公開エレメント

これまで,たくさんのエレメントを作成してきましたので,合間をみて少しずつ公開します.また,電子メールにて要望を頂ければ,特殊なエレメントも作成します.

目次


はじめに

これまで,加速器設計のために,たくさんのエレメントを作成してきました.非常に特殊なものもあれば,一般的なものもあります.合間を見て,それらを公開しますので,使ってみてください.また,バグや要望があれば,メールをください.できるだけ対応したいと考えています.

準備と公開エレメントのインストール方法

コンパイラーの準備

ここで公開するエレメントの実行モジュール作成には,コンパイラーが必要です.エレメントの導入に先立って,予めインストールしておきます.Ver 2.8の場合,「GPT News」の 21-May-08 や 18-Oct-07 にしたがい,コンパイラー「Visual C++ 2008 Express Edition」をインストールします.また,21-May-08 に書かれている設定も必要です.

64ビット環境の場合は,「64ビットのWindows 7 でコンパイル」が参考になるかもしれません.

コンパイルができない場合には,GPTのメインメニューの EditSettings…を選択し,ダイアログ「Settings」の Custom element settings の設定を確認してください.

公開エレメントのインストール

ここで,公開しているエレメントのインストール方法を示します.

  1. ソースプログラム(C言語)をダウンロードし,「C:\Program Files\General Particle Tracer\elems」に保存します.以下,ダウンロードしたファイル名を「myelement.c」と仮定し,話を進めます.
  2. GPTを起動し,左下の「Elems」を選択します(参考図).
  3. GPTのメインメニューの ElementsNewを選択すると現れる「 General GPT-Element propergies」を以下のとおり設定します.設定後,「完了」ボタンをクリックします.すると,ソースプログラムが現れます.
    • Gneral information の Name をダウンロードしたファイル名(myelement)にします.Filename もファイル名(myelement)にします.いずれも拡張子は不要です.Descriptionは,任意です.
    • Element typeは,「Don't create file」にします.
  4. GPTのメインメニューの ElementsRebuild interface codeを実行します.
  5. GPTのメインメニューの ElementsCompile GPT-Elemsを実行します.

エラーがなくコンパイルできれば,エレメントが使用可能になります.

粒子の発生

ビームの変形

断面(x, y)を楕円に

modellipse を使いビームの断面の楕円に変形
インプットサンプル(modellipse.in)を用いて,(x, y)平面を楕円に変形

粒子セットを x と y 方向に伸張し,回転させます.ソースプログラム「modellipse.c」をインストールすると以下のエレメントが使用可能になります.

modellipse(set, xratio, yratio, angle)
set粒子セット
xratiox方向の伸張比
yratioy方向の伸張比
angle回転角度 [rad]

具体的な GPT インプットサンプル「modellipse.in」を参考にすれば,使い方は簡単に理解できるでしょう.


磁石

ビームコントロール

アウトプット

ビーム情報

粒子の消滅/初期情報をファイルに

加速器の設計では,消滅した粒子の情報が必要なことがあります.たとえば,壁に衝突した粒子から発生する放射線を計算する場合です.GPT付属の標準エレメントでは,消滅した粒子の情報を得ることはできません.そこで,そのような粒子情報をファイルに書き出すエレメントを作成しました.

ソースプログラム「remove_par_file.c」をインストールします.コンパイルのとき,fopen のところで,warningのメッセージが出ますが,問題なく実行できます.もし,気になるようでしたら,その部分を「if(error=(fopen_s(&fp, info->file, "W"))!=0){」としてください(同僚の中西氏指摘).私の環境では,warning は無くなりましたが,実行時にエラーが起きました.自分の環境に合わせて,使い分ける必要があります.

インストールが完了すると,以下のエレメントが使用可能になります.

remove_par_file(ECS, "file_name")
ECSエレメント座標システム.通常は,「"wcs", "I"」とする.
file_name消滅した粒子情報を書き出すファイル名

GPT実行後,file_name で指定したテキストファイルが作成されます.それには,消滅した時点での粒子の情報(ID, x, y, z, βx, βy, βz, γ, t)とその粒子の計算の初期状態が書かれています.

具体的な GPT インプットサンプル「ex_remove_par_file.in」を参考にすれば,使い方は簡単に理解できるでしょう.

ビームのトータルエネルギー

ビームのトータルのエネルギーの計算が必要な場合があります.たとえば,加速管のローディングのカーブ(ビーム電流 vs 加速エネルギー)の計算を行う場合です.特に低エネルギーのバンチャーを含んだ加速管では,この計算はやっかいです.そのために,ビームのトータルの(初期エネルギー, 消滅したビームのエネルギー, 最後まで加速されたビームのエネルギー)を計算するエレメントを作成しました.

ソースプログラム「BeamEnergy_file.c」をインストールします.コンパイルのとき,fopen のところで,warningのメッセージが出ますが,問題なく実行できます.もし,気になるようでしたら,その部分を「if(error=(fopen_s(&fp, info->file, "W"))!=0){」としてください(同僚の中西氏指摘).私の環境では,warning は無くなりましたが,実行時にエラーが起きました.自分の環境に合わせて,使い分ける必要があります.

インストールが完了すると,以下のエレメントが使用可能になります.

BeamEnergy_file(ECS, z_alive, "file_name")
ECSエレメント座標システム.通常は,「"wcs", "I"」とする.
z_aliveこの位置(z座標)まで到達した粒子を最後まで加速された粒子とします.
file_nameビームのエネルギー情報を書き出すファイル名です.

GPT実行後,file_name で指定したテキストファイルが作成されます.それに,ビームのエネルギー情報が書かれます.また実行時,標準出力にもその情報が書き出されます.

具体的な GPT インプットサンプル「ex_BeamEnergy_file.in」を参考にすれば,使い方は簡単に理解できるでしょう.

ビームの到着時刻

任意の場所(z座標) に,ビーム (マクロ粒子) が到着した時刻を表示します.ソースプログラム「PrintParticlesInfoZ.c」をインストールです.コンパイルすれば使えます.

  PrintParticlesInfoZ(ECS, "set")
ECSエレメント座標システム.具体的には「"wcs", "I", 0.1」のようにします.0.1[m]にマクロ粒子が到達した時刻を表示します.
setマクロ粒子のセットを記述します.通常は「"beam"」でしょう.

GPT実行すると,標準出力に (マクロ粒子数, 平均 z 座標, 平均到達時刻, 時刻の標準偏差, 時刻の最小値, 時刻の最大値) が表示されます.具体的な GPT インプットサンプル「test.in」を参考にすれば,使い方は簡単に理解できるでしょう.

ページ作成情報

参考資料

  1. Gneral Particle Tracer — Programmer's Reference Version 2.80 —

更新履歴

2008年頃 ページの新規作成
2014年06月20日 BeamEnergy_file の修正.
2016年09月04日 ビーム到着時刻のプログラム(の追加


no counter