Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject その2
Date: 2006/01/30(Mon) 20:00:29
ContributorKentaro Harada < >

マニュアル1:加速器特有の計算コマンド関連(WEBのみ)
http://acc-physics.kek.jp/SAD/SADHelp.HTML
マニュアル2:GUIの作り方、スクリプト言語(FFS)の文法基礎
SAD/Tkinter Manual (in Japanese, .pdf 706K 10/29/1997)
http://acc-physics.kek.jp/SAD/SADTkinter.pdf
 
  その2:基本的なコマンドいくつか
 
  まずは最も基本的なコマンドについていくつか述べておきます。
 
1、オプティクスや各種パラメータの計算
 
*************************
ON LOG;
ON RAD FLUC COD RFSW RADCOD;
  (これらはおまじないです。LOG はいちいちコマンドを復唱しないという
   フラグ、あとはトラッキングにおいて放射あり、縦方向を入れて6次元
   計算あり、などの条件を決めます。(FLAGはマニュアル1に載ってます。)
FFS;
  (ここからいよいよFFSです。)
$FORM = "15.10";
  (小数を全15桁にする。すなわち、整数部4桁+"."+小数部10桁)
PageWidth = 1999;
  (ファイルに書き出す場合、勝手に改行を入れない。ファイル読み書きの
   仕方についてはその3で書きます。その際、これを指定しないと200文字
   くらいで勝手に改行されて、エクセルなどで読み込む時に泣けます。)

USE RING;
   (ラティスファイルの LINE 定義の中で RING を使う。)
cell;
   ("cell" は単なるフラグ(条件判断変数)です。CELL でなければ INS に
    なります。
    INS は MARK の中の トゥイスパラメータを初期値にして、それを順に転送
    していくモード、CELL は周期解を求めるモードです。リングの途中だけ
    使いたい場合など、CELL で全体を計算、MARK にパラメータをセーブして、
    その後で直線部を USE で呼び出し、INS で計算、等とします。)
calc;
   ("calc" は閉軌道(COD)を求めた後、周期解(トゥイスパラメータの
    計算)を求めるコマンドです。閉軌道はあってもオプティクスは発散する
    場合もありますし、誤差などを入れた場合にはそもそも何をどうやっても
    軌道が閉じない場合もあります^_^;)
emit;
   ("emit"はエミッタンス、バンチ長など各種平衡パラメータを計算します。
    calc まではXYの4次元ですが、emit は RF が入って6次元になります。
    頭の呪文(ON RAD FLUC COD RFSW RADCOD;)を変えるとRF関連を弾くことも
    できます。)
SAVE ALL;
   (パラメータを保存しておきます、一応。)
stop;
stop;
   (最初の stop で FFS が終わり、次の stop でトップレベルが終わります。)

*************************
 
  ちなみにFFS上では後ろに [] がつくかどうかで「コマンド」か「関数」か、
区別があります。cell calc emitは全て「コマンド」で、「関数」ではありません。
関数は大文字小文字を区別しますが、コマンドは区別しません。CELL でも cellでも
同じです。
「コマンド」を関数の中で使う場合には、
FFS["cell calc"];
などと、FFS 関数を使って呼び出す必要があります。例えば、

Do[
USE RING;
cell calc emit;
,{i,1,10}];

とやっても何も起きません。(SADは何もせずにひっそり受け流してくれる。)

Do[
FFS["USE RING;"];
FFS["cell calc emit;",6];
,{i,1,10}];

としないといけなません。FFS["中身",結果表示先]
(装置番号6番がディスプレイです。)

2、よく使うコマンド&関数リファレンス

・disp
 その場所のトゥイスパラメータを表示します。場所を指定しないと LINE 全部を
書き出します。

例:
disp Q4;
結果:
disp Q4;
AX BX NX EX EPX Element Length Value s(m) AY BY NY EY EPY DetR #
-3.0889 10.4015 .56819 1.37415 .41081 Q4.1 .22500 .2923739 10.404850 .76890 2.33132 .37149 .00000 .00000 .0000 15
5.1E-14 1.59711 9.14379 -3.1E-6 -1.E-15 $$$ .00000 0 170.077600 1.6E-14 .43479 6.20232 .00000 .00000 .0000 258
  (必ず LINE の最後(リング終点)の値もくっついて出力されます。
  左から、水平アルファ、ベータ、チューン、分散、分散ダッシュ、ラティスの
  要素名、その要素の長さ、その要素の第1変数(Bなら曲げ角 rad、QならK1、
  SならK2、ドリフトならL)、その要素までの軌道長、垂直アルファ、ベータ、
  チューン、分散、分散ダッシュ、カップリングを考えた時の変換行列行列式、
  です。)
・type
 B、Q、SXなど要素の中身を表示。

例: type Q4;
;
結果:
QUAD Q4 =(L =.225 K1 =.2923738695 )
;

・Twiss[欲しいパラメータ、場所]
 その場所のトゥイスパラメータを表示します。
 欲しいパラメータ: AX, BX, EX, EPX, AY, BY, EY, EPY、DX、DY (などWEB上のHELP参照。)
 場所:要素名(=ライン上に最初に出てくるその要素)、ライン上の要素名、
            ライン上の要素番号(小数で中を指定するのも可)などで指定。
   例えばラティスではBは1回しか定義せず、それを16回使います。SADでは
   それを後ろに数字を付けて区別します。B.1、B.2……B.15、B.16など。ただ単に
   Twiss["BX","B"] とやるとTwiss["BX","B.1"]と同じです。
   また、Twiss の DX、DY はCOD(中心軌道)です。
例1:
Print[Twiss["BX","Q10A"]];
結果:
10.4014995745
例2:
Print[Twiss["BY","Q10A*"]];
結果:
{ 2.3313239517, 2.1620176780, 2.3313239517, 2.1620176780,......}
 (リングにQ4は16個。(2分割しているので……Q4Hとかすべきでした。))
例3:
Print[Twiss[{"BX","BY"},{129,129.5,130}]];
 (Q4.1 は 15 番。Q4 の入り口、中央、出口の BX, BY を表示。)
結果:
{{ 10.4014995745, 10.9315382133, 11.1121567045},{ 2.3313239517, 2.2036557040, 2.1620176780}}
 (最初の3つが BX、後ろの3つが BY)
  
・LINE[欲しい値、要素]
 その要素のパラメータを表示、もしくは代入します。
 欲しい値:POSITION、NAME、ELEMENT、S、L、ANGLE、K0、K1、K2、GEO、DX、DY
 ここでの DX, DY は据え付け誤差または設置のオフセットです。
 
例1:
Print[LINE[{"POSITION","NAME","ELEMENT","S","L","K1"},"Q4"]];
結果;
{ 15.0000000000,"Q4.1","Q4", 10.4048500000, .2250000000, .2923738695}
ライン上の番号(15番目)、名前、ファミリー名、軌道長(入り口で10.40m)、
       Qの長さ(.225cm)、B'L/(B rho) = 0.2923
例2:
Print[LINE["GEO",16]];
結果:
(GEOは幾何学上の場所を表示します。座標原点はLINEの始点です。要するに、最初の
 Q4終端(セル中央)は、x(東西方向)=10.38m、y(南北方向)=1.394mの場所にあり
 ます。)
{{ 10.3878134062, 1.3939705855, .0000000000},
{ .3926990800, .0000000000, .0000000000}}
 {{X,Y,Z},{θ、φ、ψ?^_^;}} (ラティスが水平面内にしかないなら、
 θだけありません。角度3つは、ビームの進行方向を向いた単位ベクトルの
 3次元の角度?……HELPを参照。)
例3:
Print[LINE["LENGTH"]];
結果:
258.0000000000
  リング(ビームライン)の要素数。
 


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)