Comments
Description
Transcript
太陽フレアのモデリング プログラムの概要:磁気流体コードを用いて3
プログラム名:太陽フレアのモデリング プログラムの概要:磁気流体コードを用いて3次元の太陽フレアのダイナミクスを解く。 助言、提案の欲しい問題:これまで 2 次元の計算を行って来たが、3 次元モデルに拡張したい。 コードは 3 次元計算が出来ることはチェック済みで、出力、可視化の部分について助言いただきた いです。 使用する計算機(予定も含む):cfca xc30 用いる言語:FORTRAN, 質問など:3 次元の配列を出力し、可視化するまでの方法を教えていただきたいです。現在、2 次元 計算の結果を、 write(nfile,'(100f10.4)') bx(1-margin:nx+margin,1-margin:ny+margin,nz/2) のように出力し(bx は三次元配列、z 方向は解かずに二次元計算したもの)、千葉大学の松本洋介 氏の公開されている 2 次元可視化ルーチン(IDL による)を用いて可視化しています。 1. 3 次元配列として、形式を指定して出力する方法を教えていただきたいです。 2. zbuffer で描画して結果を.eps ファイルとして出力する方法があれば教えていただきたい です。 回答 1: ASCII データとして出力されているようですが、多次元計算の場合はバイナリデータとし て出力したほうが、入出力の速さ、データサイズ削減の点でお薦めします。バイナリデータの出力 フォーマットは、 • Fortran Unformatted • HDF5 が挙げられ、共に IDL によって読み込みが可能です。前者の方法は、 http://www.exelisvis.com/docs/Reading_and_Writing_FORT.html を参照ください。Fortran からは、 open(nfile, file='bx.dat', form='unformatted') write(nfile) bx close(nflie) とするだけです。IDL で読み込む場合は、あらかじめ配列の大きさを知っておく必要があります。 後者の方法は、 http://www.hdfgroup.org/HDF5/ http://www.exelisvis.com/docs/HDF5_Overview.html が参考になるかと思います。HDF 5は標準フォーマットで、最近では多くの大型計算機上でも使え る環境になっているかと思います。 回答 2: xwindow に描画せずに eps への出力する方法は、 http://www.astro.phys.s.chiba-u.ac.jp/~ymatumot/idl/index.php?3%E6%AC %A1%E5%85%83%E5%8F%AF%E8%A6%96%E5%8C%96%2F3-D%20Visualization で公開している example_idlgr3dvis.pro の中で、、 ;;DRAW TO DESKTOP WINDOW mywindow->draw,myview のところをコメントアウトしてください。 ;; SAVE TO EPS FILE IF NECESSARY c = obj_new('idlgrclipboard',dimensions=dimensions,resolution=res) c->draw,myview,/postscript,filename=fname obj_destroy,c で eps ファイルに出力しています。