プログラミング言語

Fortranで解いた問題をParaviewを使ってvtkでアニメーション作成

 

前回はFortranで2次元の熱伝導方程式を解いて、gnuplotを使って温度場の分布のアニメーションを作成したのです。

前回の記事はこちら

 

前回の記事で示したアニメーションはこんな感じ

 

カマキリ

前回はgnuplotはスクリプトを作ってアニメーションした

 

今回は、2次元の熱伝導方程式をFortranで解いて、温度場の分布のアニメーションはparaviewで可視化したいと思います。

本記事の内容はこちら
2次元の熱伝導方程式をFortranで解いて温度場の分布のアニメーションをparaviewで可視化する。

 

カマキリ

今回はparaviewを使います

paraviewで可視化した温度場分布のアニメーションはこちら。

 

 
※Fortranのコードとスクリプトは本記事にアップされています。
※FortranのコードはFortran90/95の書き方にしているつもりですが正確に書けているかは不明です。
※FortranはWSLを使ってインストールしています。
※paraviewはこちらのサイトよりダウンロードしてお使いください。
 
僕の使用環境はWindows10でWindows Subsystem for Linux(WSL)を使って、UbuntuからFortranをインストールして使用しています。
 
 
カマキリ

早く試してみたいよーった人は「まとめ」へGo!

 
スポンサーリンク

解くべき方程式

 

まずは解くべき方程式を明らかにしておきましょう。

2次元熱伝導方程式
 
\begin{align*}\frac{\partial T}{\partial t}=\kappa\bigg(\frac{\partial^2T}{\partial x^2}+\frac{\partial^2T}{\partial y^2}\bigg)\tag{1}\end{align*}
 
熱伝導方程式は、初期状態を与えれば(1)式に従って時間発展をする方程式です。
今回は初期状態を以下のようにしておきます。
 
中央だけ中央だけ温度が高く、\(x\)方向の両端は温度0(K)の条件となっています。
 
また、\(x\),\(y\)の端は初期状態から変化させないような境界条件にしているので、時間発展させると中央の高い温度の部分から低い温度へ熱移動が生じて、下記のような変化を示します。
 
 
 
今回は、これをparaviewを使ってアニメーションを作ろうということになります。
 

 

Fortranで2次元熱伝導方程式をFortranで解く

 

偏微分方程式の離散化の方法は様々あるかと思いますが、ここでは離散化の方法にはこだわっていません。

主目的は「vtkファイル」をFortranで出力してparaviewで読み込むことです。

 

2次元熱伝導方程式の離散化

 

2次元熱伝導方程式
 
\begin{align*}\frac{\partial T}{\partial t}=\kappa\bigg(\frac{\partial^2T}{\partial x^2}+\frac{\partial^2T}{\partial y^2}\bigg)\tag{1}\end{align*}
 
この偏微分方程式を離散化するにあたって、
  • 時間微分の項(左辺)は陽解法
  • 空間微分の項(右辺)は2次精度

で離散化で進めていきましょう。

離散かされた式が↓こちらです。
\begin{align*}T^{n+1}(x_{i},y_{j})=T^{n}(x_{i},y_{j})+\kappa dt\frac{T^{n}(x_{i}+\Delta x,y_{j})-2T^{n}(x_{i},y_{j})-T^{n}(x_{i}-\Delta x,y_{j})}{\Delta x^2}\\
\kappa dt\frac{T^{n}(x_{i},y_{j}+\Delta y)-2T^{n}(x_{i},y_{j})-T^{n}(x_{i},y_{j}-\Delta y)}{\Delta y^2}\end{align*}
 
では、これをFortranで解きましょう(^^)/
 
 

Fortranで解く

 

離散化された方程式をFortranで解くためのプログラムを書いていきましょう。

このプログラムの中にvtkファイル形式で温度分布データを出力させる記述があります。

以下がプログラム全体です。

2次元の熱伝導方程式をFortranで解く部分の解説は、下記の記事に詳しく乗っているので順にお読みください。

前回の記事はこちら
 
以上がプログラムの中身です。
 
プログラムファイルと同じ階層に「data」という名前のディレクトリを作っておく必要があります。
(この「data」の中にvtkファイルを作っていきます)
 
以下を実行すればOKです。
 

そうすると「data」というディレクトリの中に以下のような大量のvtkファイルが出力されているのが確認できます(^^)/

 

これをparaviewで読み込めば温度分布のアニメーションを見ることができます(^^)

 

paraviewで温度分布のアニメーションを確認

 

ではparaviewを起動して温度分布を確認してみます。

 

vtkファイル形式として出力する部分の記述

 

vtkファイル形式で出力する部分はモジュールとして以下のように書いています。

Fortran:vtkファイル形式の出力部分

出力されたvtkの中身の基本構造は以下です。

その他、vtkファイル形式でのparaviewの読み込み方法については多数あるのですが、本記事では1例を出したにすぎません。

ご興味ある方は下記の記事を参考に色々と遊んでみてださい(^^)/

【vtkファイルの詳しい解説記事】
paraview,vtkのフォーマットと使い方を学んで、好きな形を作ってみよう!

VTK ファイルフォーマット

【vtkファイルのマニュアル】
vtk_file-formats

 

paraviewでvtkファイルを読み込んでみよう

 

ここからはparaviewを起動してFortranで解いた2次元熱伝導方程式による温度分布のアニメーションを見てみましょう。

paraviewによる基本的な操作は動画にしています。

 

 

 

こんな感じでFortranで解いた問題をvtkファイル形式に出力してアニメーションを見ることができます(^^)/

 

まとめ

 

色々と説明を書きましたが、以下のzipを解凍して自身の環境でお試しください(^^)/

20190429_thermal2D_paraview

以下のコマンドでFortranを実行

paraviewの操作は「paraviewでvtkファイルを読み込んでみよう」の章を参考にしてください(^^)/

数値計算のためのFortran90/95プログラミング入門(第2版)

数値計算のためのFortran90/95プログラミング入門(第2版)

牛島 省
3,520円(09/27 23:06時点)
発売日: 2020/01/28
Amazonの情報を掲載しています
Fortran ハンドブック

Fortran ハンドブック

田口 俊弘
3,520円(09/27 23:06時点)
発売日: 2015/07/10
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。
関連記事もどうぞ