Rayleigh-Taylor不安定性 〜 Athena++チュートリアル4追加課題

はじめに

この記事では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」をクリック(実行)する。

Open

断面を表示する

「Operator Attributes」 →「slicing」 → 「ThreeSlice」を指定し、「Draw」を実行する。

その上で、時間を進める。

rho1

もう少し、時間を進める。Rayleigh-Taylor不安定性の典型的な模様の断面のように見える。断面を表示してみる。

rho2

視点を変えて見る

マウスの左ボタンを押しながら動かすと(ドラッグすると)、視点を変えることができる。下図は、いかにもRayleigh-Taylor不安定性を示している時間まで戻して得られた。

rho3

圧力を表示する

ここで、「Add」 →「Pseudoclor」→ 「press」を指定し、「Draw」をクリック(実行)する。

rhoの表示は、「Hide/Show」で一旦消した。

press

今後について

visItを操作している内に、このソフトの癖(特徴)も掴みかけてきた。もう少し自由に触ってみようと思う。

Rayleigh-Taylor不安定性については、初期値を変えたり、磁場を追加して様子を見てみようと思う。