EGS4に対応した粒子軌跡と 計算体系の3次元表示ソフト

第13回 「EGS研究
会」
軌跡とジオメトリー表示プログラム
CGVIEW(Ver2.0)の高度化
高エネルギー加速器研究機構 波戸 芳仁 平山 英夫
(有)科学システム研究所 高村 篤
杉田 武志
目的
軌跡とジオメトリー表示プログラム(以後CGVIEW)を
公開し、使用実績を増してきたことにより、改良の要
望がいくつか出てきた。
また、EGS5で使用できるCG(Combinatorial
Geometry)形状が新たに追加されたためCGVIEWの表示に
関しても同様の機能追加を行い、同時に操作性の向上
を図るための改良も行った。
改良項目
●
●
●
●
●
●
CG形状の追加
入出力に使用するファイル形式の自由化
体系作成画面での編集機能追加
4桁の領域番号への対応
粒子表示機能拡張
ジオメトリー表示線の変更機能追加
CG形状の追加
EGSの最新版では従来のCG形状である四角形、円柱、
球、円錐、トーラスに新規形状が8種類追加され、全部
で13種類のCG形状を使用することが出来るようになっ
た。
その変更に伴い、CGVIEWでも新規に追加した8種類の
形状に対応できるように改良を行った。
追加形状(1):BOX
BOXは基準点PとベクトルA1とA2の辺で形成される四角形をベクト
ルA3方向に沿って移動した跡にできる四角柱。ただし、A1、A2及
びA3のベクトルは直交している。
[ 形式 ] Px Py Pz A1x A1y A1z A2x A2y A2z A3x A3y A3z
Px,Py,Pz :基準点となる頂点のX,Y,Z座標
A1x,A1y,A1z : 基準点から延ばした辺1のX,Y,Zベクトル
A2x,A2y,A2z : 基準点から延ばした辺2のX,Y,Zベクトル
A3x,A3y,A3z : 基準点から延ばした辺3のX,Y,Zベクトル
追加形状(2):REC
RECは基準点Pを中心に短軸R1と長軸R2で作成される楕円をベクト
ルH方向に沿って移動した跡にできる楕円柱。ただし、ベクトルH
とR1,R2は直交している。
[ 形式 ] Px Py Pz Hx Hy Hz R1x R1y R1z R2x R2y R3z
Px,Py,Pz : 基準点となる楕円の中心X,Y,Z座標
Hx,Hy,Hz : 楕円柱の高さ方向のX,Y,Zベクトル
R1x,R1y,R1z : 楕円の短軸を示すX,Y,Zベクトル
R2x,R2y,R2z : 楕円の長軸を示すX,Y,Zベクトル
追加形状(3):TEC
TECは基準点Pを中心に短軸R1と長軸R2で作成される楕円をベクト
ルH方向に沿って比率Wの楕円に移動した跡にできる楕円錐。ただ
し、ベクトルHとR1,R2は直交している。
[ 形式 ] Px Py Pz Hx Hy Hz R1x R1y R1z R2x R2y R3z W
Px,Py,Pz : 基準点となる楕円の中心X,Y,Z座標
Hx,Hy,Hz : 楕円錐の高さ方向のX,Y,Zベクトル
R1x,R1y,R1z : 楕円の短軸を示すX,Y,Zベクトル
R2x,R2y,R2z : 楕円の長軸を示すX,Y,Zベクトル
W : 楕円の比率(=b/a)
a=基準面の長軸長さ(R2)
b=天井面の長軸長さ
追加形状(4):ELL
ELLは焦点座標P1とP2を結ぶ主軸Rの長さが一定の距離を保つ軌跡
でできる楕円球。
[ 形式 ] P1x P1y P1z P2x P2y P2z R
P1x,P1y,P1z : 1つ目の焦点座標(X,Y,Z)
P2x,P2y,P2z : 2つ目の焦点座標(X,Y,Z)
R : 主軸の長さ
追加形状(5):WED
WEDは基準点PとベクトルA1とA2の辺で形成される三角形をベクト
ルA3方向に沿って移動した跡にできる三角柱。ただし、A1、A2及
びA3のベクトルは直交している。
[ 形式 ] Px Py Pz A1x A1y A1z A2x A2y A2z A3x A3y A3z
Px,Py,Pz : 基準点となる頂点のX,Y,Z座標
A1x,A1y,A1z : 基準点から延ばした三角形辺1の
X,Y,Zベクトル
A2x,A2y,A2z : 基準点から延ばした三角形辺2の
X,Y,Zベクトル
A3x,A3y,A3z : 基準点から延ばした高さの
X,Y,Zベクトル
追加形状(6):ARB
ARBは任意の4,5または6面体。頂点のXYZ座標P1~P8を指定し、面
データS1~S6を十進数で表した4桁の整数で指定する。4桁の整数
は各桁が面の頂点番号を示し、順序は任意とする。4点より少ない
頂点で構成される面は余りの頂点番号に0を入力する。使用しない
頂点座標はXYZに0を入力する。
[ 形式 ] P1x P1y P1z P2x P2y P2z P3x P3y P3z P4x P4y P4z
P5x P5y P5z P6x P6y P6z P7x P7y P7z P8x P8y P8z
S1 S2 S3 S4 S5 S6
追加形状(6):ARB
P1x,P1y,P1z : 頂点1のX,Y,Z座標
P2x,P2y,P2z : 頂点2のX,Y,Z座標
P3x,P3y,P3z : 頂点3のX,Y,Z座標
P4x,P4y,P4z : 頂点4のX,Y,Z座標
P5x,P5y,P5z : 頂点5のX,Y,Z座標
P6x,P6y,P6z : 頂点6のX,Y,Z座標
P7x,P7y,P7z : 頂点7のX,Y,Z座標
P8x,P8y,P8z : 頂点8のX,Y,Z座標
※使用しない頂点にはダミー数値(0.0等)を入力する
S1,S2,S3,S4,S5,S6 :
6つの面を記述する4桁の整数。4桁の整数は各桁が面の頂点番号を示し、順序は任意とす
る。4点より少ない頂点で構成される面は余りの頂点番号に0を入力する。
追加形状(6):ARB
6つの頂点を持つ6面体を例に入力例を示す。
頂点は6つなので残りの2つの座標を全て0に
すると頂点データは以下のようになります
。
0 0 0 10 0 0
5 0 10 0 5 7
0 5 0
0 0 0
0 0 5
0 0 0
次に面データは以下のようになります。
123 (頂点1,2,3 を通る三角面)
1245 (頂点1,2,4,5を通る四角面)
1346 (頂点1,3,4,6を通る四角面)
456 (頂点4,5,6 を通る三角面)
236 (頂点2,3,6 を通る三角面)
256 (頂点2,5,6 を通る三角面)
追加形状(7):HAF
HAFは指定したベクトルN方向を領域とする半空間。
[ 形式 ] Nx Ny Nz L
Nx,Ny,Nz : 内側領域方向を示すベクトルX,Y,Z
(マイナスも入力可)
L : ベクトルNに沿った原点(0,0,0)から平面までの距離
(マイナスも入力可)
追加形状(8):HEX
HEXは基準点Pを中心に幅Wで側面がベクトルAを向く六角形をベク
トルH方向に沿って移動した跡にできる六角柱。ただし、ベクトル
HとAは直交している。
[ 形式 ] Px Py Pz Hx Hy Hz W Ax Ay Az
Px,Py,Pz : 基準点となる円の中心X,Y,Z座標
Hx,Hy,Hz : 円柱の高さ方向のX,Y,Zベクトル
W : 六角形の幅
Ax,Ay,Az : 側面の一つに垂直なベクトルA
(長さは任意)
入出力に使用するファイル形式の自由化
CGVIEWで扱うファイルには軌跡ファイルと体系作成ファイルがあ
り、以下の改良を行った。
・軌跡ファイルは拡張子(*.pic)で固定フォーマットを使用してい
たが、拡張子による制限を廃止し、フリーフォーマット及び
CSV(コンマ区切り)フォーマットのファイルも読み込みが出来るよ
うにした 。
・体系作成ファイルは拡張子(*.geo)でフリーフォーマットを使用
していたがたが、拡張子による制限を廃止し、CSV(コンマ区切り)
フォーマットのファイルも読み込みが出来るように改良を行った。
軌跡ファイル形式の変更点(1)
従来の軌跡ファイル形式である固定フォーマットとフリーフォー
マット及びCSV(コンマ区切り)フォーマットでは出力に以下の違い
がある。
[全般]
固定フォーマットはデータの区切り位置が固定であったが、フ
リーフォーマットでは1つ以上の空白(半角)、CSVフォーマットで
はカンマ(,)でデータを区切る必要がある。
[タイトル]
軌跡ファイルの先頭行にはCGファイルであることを示す記号
CSTAを入力するが、フリーフォーマットの場合はCSTA-FREE、CSV
形式の場合はCSTA-CSVを出力する。
また、CG以外の形状も同様に記号をGSTA-FREE、GSTA-CSVに変更
することで形式を変えることができる。
軌跡ファイル形式の変更点(2)
[粒子データ]
粒子の反応位置を示すXYZ座標のデータは負の値の場合、数字が
つながってしまう。そこで空白が入らように1カラムずらす必要が
ある。
また、固定フォーマットはデータ無し(指定領域が空白)という
入力が可能であるが、フリーフォーマット及びCSVフォーマットで
はこのような入力が出来ないため、デフォルト値を必ず入力する
必要がある。
固定フォーマットでは粒子データのウエイトとLATCHが未入力の
場合デフォルト値(ウエイト=1、LATCH=1)を使用するが、フリー
フォーマット及びCSVフォーマットではユーザーが値を設定する必
要がある。
軌跡ファイル形式の変更点(3)
[EGSコード側の変更点]
EGSコードではplotxyzルーチンを使用して軌跡をファイルに出
力しているが下表に示すように従来形式(固定)の場合はNPRECIを2
に、フリー形式で出力する場合は3に変更する必要がある。
NPRECI
円筒平板
CG
Medium
粒子情報書式
対応プログラム
0
○
×
×
I5
EGS4WIN32
1
○
×
×
I8
EGS4WIN32
2
○
○
○
1PE13.6
CGVIEW(固定フォーマット)
3
○
○
○
1PE14.6
CGVIEW(フリーフォーマット)
体系作成ファイル形式の変更点
体系作成ファイルは従来のフリーフォーマットとCSV(コンマ区
切り)フォーマットでは区切り記号(フリーフォーマットでは1つ以
上の空白(半角)、CSVフォーマットではカンマ)が異なる。
ファイル入出力時のフォーマット判別は拡張子によって行われ、
(.csv)のファイルはCSVフォーマット、その他の拡張子の場合はフ
リーフォーマットとして扱われる。
また、フリーフォーマットは下のようにデータ数に合わせて改
行を追加しますが、
RCC 6
0
7.9
0
1.9
6.1
0
0 <-改行有り
CSVフォーマットの場合はExcel等での編集を考慮し、一つのデー
タは1行に全て羅列されます。
RCC,6,0,0,6.1,0,0,7.9,1.9,
<-改行無し
ただし、EGSでは1行を250文字までしか読めないためCSV形式で
EGSに読み込ませる場合は注意が必要です。
体系作成画面での編集機能追加(1)
CGVIEWの体系作成機能はグリッドに数値を入力して
いく形式を採用しているが、削除や挿入等の編集機能
を有していないため、操作性が良くなかった。そこで
一般的な表計算ソフトのような編集機能を追加し、操
作性の向上を図った。
体系作成画面での編集機能追加(2)
[セルの編集]
セル上でポップアップメニューを表示させると以下の処理が出来
る。
体系作成画面での編集機能追加(3)
[列の編集]
列の最左の固定領域を選択すると列全体が選択状態になり、ここ
でポップアップメニューを表示させると以下の処理が出来る。
体系作成画面での編集機能追加(4)
4桁の領域番号への対応
従来のEGS及びCGVIEWでは領域番号をZ+2文字(Z00やZ18等)で設
定していたが、最新のEGSではZ+4文字(Z0000やZ0018)で読み込む
ように拡張されているため、CGVIEWでの領域番号の取り扱いもZ+4
文字に対応できるよう改良した。
また、体系作成画面において領域番号は自動で割り当てるよう
に変更しているので注意してください。
粒子表示機能拡張(1)
従来のCGVIEWで粒子の表示ヒストリー範囲を指定す
るには表示設定画面を開く必要があるため、ヒスト
リー毎の粒子を順に表示して確認するような作業が行
うには効率が良くなかった。
そこで、凡例画面内に表示ヒストリー範囲を前後さ
せるボタンを追加し、ヒストリー範囲の粒子を順に表
示できるように機能を拡張した。
ただし、この機能は設定画面で範囲指定をチェック
している場合のみ有効となる。
粒子表示機能拡張(2)
下図のようなボタンを追加し、次もしくは前のヒス
トリー範囲を表示できるようにした。移動量は指定範
囲幅を1ブロックとして次の軌跡を表示します。
表示範囲が11-11(1粒子のみ表示)の場合
は 12-12、13-13...と移動します。
表示範囲が11-15(5粒子を1ブロックとす
る)の場合は16-20、21-25...と移動しま
す。
ジオメトリー表示線の変更機能追加
従来のCGVIEWでは線表示の時の線の太さは1ピクセルの固定で
あったが取り込んだ画像を拡大すると線が細いため表示が粗く
なってしまう。
そこで線の太さを任意に変更できるよう機能を追加した。線の
太さは[設定]-[表示設定]メニューで表示される下画面で指定する。
指定した線幅×ピクセルが表示する線の太さとなる。デフォルト
は今までどおり1とした。