Pvutil用のアスキーデータファイルの書式

English mode is here

(updated 2002/5/15)


基本的なデータは,ヘッダーと各時間シーンの各原子のx, y, z座標の羅列よりなる.時間間隔や表示領域などを
ヘッダー部分に指定する.pvutilでは,様々なヘッダーの書き方に対応しており,ヘッダー書式をiniファイルとして
保存できるが,基本形は下記の通り.


ヘッダーの基本形(pvutility.ini)

[デフォルトのiniファイルを用いて, change header typeで設定をしない場合はこの形式となる]


1行目(整数x3): 分子タイプ 分子数 シーン数
2行目(実数x3): 表示領域のx方法寸法,y方向の寸法,z方向の寸法
3行目(実数x2): 1シーン目の時間,シーンごとの時間ステップ

分子タイプは通常1とする.

例えば,c言語では下記のような表現となる.

fprintf(fpos,"1 %d %d\n", nmol,nrep/nwrite);
fprintf(fpos,"%lf %lf %lf\n", vlx*1.0e10,vly*1.0e10,vlz*1.0e10);
fprintf(fpos,"%lf %lf\n", stime, dt*1.0e12*nwrite);

nmol: 分子数,nrep: 計算の繰り返し数,nwrite: シーンデータの出力間隔
vlx, vly, vlz: 計算領域の寸法(単位m):データの座標が(0-vlx), (0-vly), (0-vlz)の範囲
stime: 1シーン目の時間(通常は0), dt: 計算のタイムステップ


メインデータ

メインのデータは,シーン1から順に各分子のx, y, z座標を書き出す.

1行目(実数x3):シーン1,1番目の原子のx, y, z座標
2行目(実数x3):シーン1,2番目の原子のx, y, z座標
3行目(実数x3):シーン1,3番目の原子のx, y, z座標
....
nmol行目(実数x3):シーン1,nmol番目の原子のx, y, z座標
nmol+1行目(実数x3):シーン2,1番目の原子のx, y, z座標
nmol+2行目(実数x3):シーン2,2番目の原子のx, y, z座標
nmol+3行目(実数x3):シーン2,3番目の原子のx, y, z座標
....
....
nmol*nscene行目(実数x3):シーンnscene,nmol番目の原子のx, y, z座標


例えば,c言語では,

for(irep=1; irep<=nrep; irep++){
   stime=stime+dt;
   Step();
   if (irep % nwrite == 0){
     for(i=1; i<=nmol; i++){
       fprintf(fpos, "%lf %lf %lf\n",
          x[i]*1.0e10,y[i]*1.0e10,z[i]*1.0e10);
     }
   }
}


その他のヘッダー・データ形式

Change header type ボタンで様々なデータ形式に変更できる.また,そのときのヘッダー形式を
iniファイルとして保存できる.

iniファイルの例として,下記の3通りが用意されている.

kimutatu.ini: defaultのpvutility.iniとほぼ同じであるが,maskファイルを用いる設定となっている.
例として,kimutatu_pos.dat, mask.datが用意されている.これらをkimutatu.iniをすべてpvutility.exeに
ドラッグ&ドロップするとkimutatu_pos.pvが生成される.

tinoue.ini: シリコンクラスターの分子動力学計算で用いた例.
RegeonCenter(0,0,0)=true と設定してあり,シミュレーション領域が原点を中心とした座標で
かかれたデータを用いる.座標データのx, y, zの範囲はそれぞれ(-vlx, vlx), (-vly, vly), (-vlz, vlz)
さらに,原子間隔が3.2A以下の場合にボンドを描くように設定されている.
例としてtinoue_pos.datとtinoue_pos.pvを参照.

yaya.ini: 炭素クラスターのMDで用いた例.
金属と炭素の2種類の原子を含む場合である.
例題のyaya_pos.datとyaya_pos.pvを参照.



連絡先: maruyama [at] photon.t.u-tokyo.ac.jp