LoginSignup
4
1

More than 3 years have passed since last update.

ITHACA-FV(OpenFOAMで使えるPODライブラリ)を試す

Last updated at Posted at 2020-03-14

はじめに

OpenFOAMで次元削減モデルを扱えるようにするライブラリITHACA-FVを試してみました.
https://github.com/mathLab/ITHACA-FV
POD(固有直交分解)などを簡単に行えるようです.
ライセンスはLGPLv3とのこと.

インストール

公式通りにやれば問題なくインストールできるはずですが,念のためメモとして書いておきます.
前提としてOpenFOAMの6.0,5.0,v1812がインストールされている必要があります.

ITHACA-FVはOpenFOAMの${FOAM_APP}/utilitiesにインストールします.
${FOAM_APP}は具体的には,OpenFOAM/OpenFOAM-*/applications/utilitiesというディレクトリになります

このディレクトリに移動して,公式通りに操作するとインストールが始まります.

$ git clone https://github.com/mathLab/ITHACA-FV
$ cd ITHACA-FV
$ source etc/bashrc
$ ./Allwmake 

インストールに長時間かかるので,コーヒーブレイクが必要です(5杯ぶんくらい).

チュートリアルを試す

一番ベーシックなチュートリアルを動かしてみます.
https://mathlab.github.io/ITHACA-FV/01POD_8C-example.html

cd tutorials/01POD
./Allrun

チュートリアルの計算対象はよくあるcavity流れでした.
image.png

ちなみに初期のファイル構成はこんな感じ
01POD.Cをいかに書くかが問題ですね.

0  01POD.C  Allclean  Allrun  constant  system

Allrunの中を見てみましょう

Allrun
#!/bin/sh
cd ${0%/*} || exit 1    # Run from this directory

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

runApplication icoFoam
runApplication perform_POD

perform_PODと打つだけで簡単に実行できるようです.

計算結果のファイル構成はこうなりました.

0       0.0095  0.019   0.0285  0.038   0.0475  0.057   0.0665  0.076   0.0855  0.095
0.0005  0.01    0.0195  0.029   0.0385  0.048   0.0575  0.067   0.0765  0.086   0.0955
0.001   0.0105  0.02    0.0295  0.039   0.0485  0.058   0.0675  0.077   0.0865  0.096
0.0015  0.011   0.0205  0.03    0.0395  0.049   0.0585  0.068   0.0775  0.087   0.0965
0.002   0.0115  0.021   0.0305  0.04    0.0495  0.059   0.0685  0.078   0.0875  0.097
0.0025  0.012   0.0215  0.031   0.0405  0.05    0.0595  0.069   0.0785  0.088   0.0975
0.003   0.0125  0.022   0.0315  0.041   0.0505  0.06    0.0695  0.079   0.0885  0.098
0.0035  0.013   0.0225  0.032   0.0415  0.051   0.0605  0.07    0.0795  0.089   0.0985
0.004   0.0135  0.023   0.0325  0.042   0.0515  0.061   0.0705  0.08    0.0895  0.099
0.0045  0.014   0.0235  0.033   0.0425  0.052   0.0615  0.071   0.0805  0.09    0.0995
0.005   0.0145  0.024   0.0335  0.043   0.0525  0.062   0.0715  0.081   0.0905  0.1
0.0055  0.015   0.0245  0.034   0.0435  0.053   0.0625  0.072   0.0815  0.091   01POD.C
0.006   0.0155  0.025   0.0345  0.044   0.0535  0.063   0.0725  0.082   0.0915  Allclean
0.0065  0.016   0.0255  0.035   0.0445  0.054   0.0635  0.073   0.0825  0.092   Allrun
0.007   0.0165  0.026   0.0355  0.045   0.0545  0.064   0.0735  0.083   0.0925  constant
0.0075  0.017   0.0265  0.036   0.0455  0.055   0.0645  0.074   0.0835  0.093   ITHACAoutput
0.008   0.0175  0.027   0.0365  0.046   0.0555  0.065   0.0745  0.084   0.0935  log.icoFoam
0.0085  0.018   0.0275  0.037   0.0465  0.056   0.0655  0.075   0.0845  0.094   log.perform_POD
0.009   0.0185  0.028   0.0375  0.047   0.0565  0.066   0.0755  0.085   0.0945  system

0.03などの時間のフォルダは通常のOpenFOAMの結果で中身は特に変化なさそうです.時間方向に大量のデータを保存する必要のある非定常計算は闇が深いですね..

THACAoutput/POD/の中を見ると以下の構成でした.

0  10  3  5  7  9         CumEigenvalues_p  Eigenvalues_p  system
1  2   4  6  8  constant  CumEigenvalues_U  Eigenvalues_U

例えば,Eigenvalues_pの中身はこんな感じで固有値が入っている模様

Eigenvalues_p
MatrixMarket matrix array real general
10 1
0.98598269642487645914
0.01333412670236625193
0.00041428833177079141
0.00022875185314061281
0.00002708055184500610
0.00000964132052745271
0.00000296734318563279
0.00000035202349614126
0.00000007256768979182
0.00000002288110189711

他はOpenFOAMと同じファイル構成なのでParaviewで可視化をためすと,こんな感じで可視化できました.

image.png

image.png

さいごに

典型的なやってみた記事になってしまいましたが,まあ,無いよりはいい派なので,許してください.

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1