はじめに
この記事ではAthena++のチュートリアル4に取り組んだことを投稿した。ここでは、3次元におけるRayleigh-Taylor不安定性の課題に挑戦したので、その内容を投稿する。
情報源
- Athena Tutorial 4 Rayleigh-Taylor不安定性の課題は、このチュートリアル4の追加課題2である。この追加課題は、本家のページには無い。
シミュレーション計算
コンフィギュレーション
これまでと同じように、dockerコンテナを起動し、次のようにコンフィギュレーションを行った。
# python configure.py --prob rt -b --flux hlld -mpi -hdf5
この投稿でも説明した通り、Makefile中のライブラリ指定は「-lhdf5」を「-lhdf5_openmpi」に変更していた。それは少し面倒なので、パラメータで変更できないか、次のことを試してみた。詳細はこの本家のドキュメントを参照のこと。
- –libオプションでhdf5_openmpiを追加した。しかし、hdf5を無効にできなくてリンクエラー。
- –hdf5_pathオプションで /usr/lib/x86_64-linux-gnu/openmpiとのライブラリーパスを指定したが、こちらもhdf5を無効にできずにリンクエラーとなった。
そこで、configure.pyを次のように変更して、-hdf5_openmpiを生成するようにした。
923c923
< makefile_options['LIBRARY_FLAGS'] += ' -lhdf5_openmpi'
---
> makefile_options['LIBRARY_FLAGS'] += ' -lhdf5'
make
ここもこれまで同じように、次のようにmakeを実行した。
# make clean
# make
inputファイルの修正
makeで作成されたathena実行形式とインプットファイル(inputs/hydro/athinput.rt3d)を作業領域にコピーし、athinput.rt3dを次のように編集した。
14c14
< file_type = hdf5 # Binary data dump
---
> file_type = vtk # Binary data dump
45,49d44
< <meshblock>
< nx1 = 32 # Number of zones per MeshBlock in X1-direction
< nx2 = 32 # Number of zones per MeshBlock in X2-direction
< nx3 = 32 # Number of zones per MeshBlock in X3-direction
<
59,60d53
< b0 = 0.0
< angle = 30
先ずは、b0=0.0として、磁場無しとしてシミュレーションしてみる。angleは、チュートリアル4の値をそのまま流用した。磁場無しなので、angleも無視されるだろうと考え、そのままにした。
実行
次のコマンドにより、シミュレーションを実行する。
# mpirun -np 4 --hostfile myhosts \
-mca plm_rsh_args "-p 12345" \
-mca btl_tcp_if_exclude lo,docker0 \
-oversubscribe $(pwd)/athena \
-i athinput.rt3d > log
可視化
可視化の詳細な説明は、前回のこの記事を参照されたい。ここでは、簡単な手順とその時のスクリーンショットを示す。
ファイルを読み込み、密度を表示する
「Open」からシミュレーション結果ファイル rt.out2.*athdf.xdmf databaseを指定する。
「Add」 → 「Pseudoclor」→ 「rho」を指定し、「Draw」をクリック(実行)する。
断面を表示する
「Operator Attributes」 →「slicing」 → 「ThreeSlice」を指定し、「Draw」を実行する。
その上で、時間を進める。
もう少し、時間を進める。Rayleigh-Taylor不安定性の典型的な模様の断面のように見える。断面を表示してみる。
視点を変えて見る
マウスの左ボタンを押しながら動かすと(ドラッグすると)、視点を変えることができる。下図は、いかにもRayleigh-Taylor不安定性を示している時間まで戻して得られた。
圧力を表示する
ここで、「Add」 →「Pseudoclor」→ 「press」を指定し、「Draw」をクリック(実行)する。
rhoの表示は、「Hide/Show」で一旦消した。
今後について
visItを操作している内に、このソフトの癖(特徴)も掴みかけてきた。もう少し自由に触ってみようと思う。
Rayleigh-Taylor不安定性については、初期値を変えたり、磁場を追加して様子を見てみようと思う。