What's new?
- 公開の便のため、gfortran と LAPACK を使うようにソースコードの一部を書き直しました。 (2015年10月6日)
- 保守の便のため、ソースコードを (ほんの少しだけ) Fortran 90 らしく書き直しました。 (2010年8月26日)
-
公開の便のため、Intel ® Math Kernel Library を使うようにソースコードの一部を書き直しました。 (2010年3月2日) - 愛媛大学地球科学科3回生の実験向けにコードを整備し直しました。
(2009年05月12日)
- 粘性率の空間分布に時間変化がない場合向けに冗長な計算の削除。
- 定常熱対流の計算を容易にするため、熱輸送方程式中の時間微分の離散化を後退オイラー法に変更。
- 計算の途中経過の温度分布を PPM 形式の画像で随時出力する機能を追加しました。 (2009年3月11日)
- 愛媛大学着任にあたり、教育向けにコードを整備しなおしました。 (2007年11月6日)
About this software
このコードは、マントル対流に特徴的な、高粘性でかつ粘性率が大きく変化する非圧縮性流体の熱対流の時間発展のようすを計算するものです。 マントル対流シミュレーションで最も計算時間のかかる運動方程式の解法には、流体の非圧縮性を利用して、流線関数を用いた直接解法を使っています。 2次元問題は非常に高速に解くことができますが、3次元問題への拡張はできません。
プログラムの動作確認は亀山の PC (Debian GNU/Linux) で行なっています。 またコンパイル及び実行には、Fortran 90 が必要です。 特殊な機能はほとんど使っていないので、おそらくどんな環境でもコンパイルはできると思います。
ただし、実際にプログラムを動かすには、 行列演算ライブラリ LAPACK が必要 です。 具体的には、対称帯行列を係数行列にもつ連立一次方程式を、直接解法の一種である「コレスキー分解」を用いて解くためのサブルーチン (dpbtrf と dpbtrs) を使っています。 以下のソース一式では、Debian GNU/Linux 8.2 で使われている gfortran (4.9.2) と OpenBLAS (0.2.12-1) を使ってコンパイル・リンクすることを想定していますが、実際に使用する際にはお使いの計算機環境に合わせて Makefile を修正してください。 あるいは同等の機能を持つ高速演算ライブラリが利用可能であれば、そちらを使うように書き変えることで、多くの場合は圧倒的なスピードアップが得られます。 さもなくば、Netlib のサイト から必要なファイルをダウンロードして使ってください。
資料のダウンロード
- 一式 (tar+gzip) を頂戴する
- 流線関数を用いた運動方程式の離散化(pdf)
D論の補遺からの抜粋です。D論補遺には一部誤植 (ミスタイプとも云う) がありましたが、こっちのは修正済です。
おねがい: この文書を使ったプログラミングの成果を発表される際は、 亀山のD論 を引用してください。 - ベンチマークテストの結果を見る