OpenFOAM

【OpenFOAMの流入条件】 質量流の時刻歴変化をcsvファイルから読み込む方法

こんにちは(@t_kun_kamakiri

自宅でOpenFOAMを使って流体解析を使用していてふと、境界条件を時間変化させたい場合はどうすれば良いのかなと思ったので調べてみました。

本記事の悩み解決

どうやって時刻歴で流入条件を与えれば良いのかな?
しかも質量流を流入条件にしたいのですが・・・

案外すぐに見つかりました。

本記事では以下の1~3の設定を記載しておきたいと思います。

No.流入のタイプ時刻歴の変化
1流速(m/s)テーブルで指定
2流速(m/s)csvファイルで指定
3質量流(kg/s)csvファイルで指定
スポンサーリンク

チュートリアル:IncompressileのpitzDaily

今回は「/tutorials/incompressiblepimpleFoam/laminar/pitzDaily」にあるチュートリアルで試験的に試してみました。

まずはチュートリアルを動かすと・・・・

  1. 20190511_193240


流入条件はファイル名「U」の中の、流入面の名前inletの部分を編集すれば良いです。

非定常流入条件と質量流の設定はこちらの記事を参考

カマキリ

使っているバージョンによっては動かないし・・・

僕が使っているOpenFOAMのバージョンは

OpenFOAM v6

です。

過去にOpenFOAMの設定方法を詳しく記事にまとめてくださっているものもありますが、バージョンの違いなどもあり動作しない場合があります・・・(._.)

PENGUINITISさんの記事がOpenFOAMの情報として最も整っているのではないかと思います。

バージョンの違いによって混乱しますが、そこは公式サイトで調べれば解説がある場合があります。

カマキリ

時刻変化と質量流については下記の記事を参考に

【非定常の流入条件】

https://cfd.direct/openfoam/user-guide/v6-boundaries/

しかし、OpenFOAMのバージョンが違うからか(記事はOpenFOAM 2.1.0)、csvファイルから読み込みがうまくいきませんでしたので、↓こちらを参考にしました。

https://cfd.direct/openfoam/user-guide/v6-boundaries/

【流入条件に質量流を指定する方法】

http://penguinitis.g1.xrea.com/study/OpenFOAM/bc_settings.html

No.1:流速m/sをテーブルで指定して時刻歴変化

流速の時刻歴変化を与える場合は、以下のようにtableで指定して、

(時間 (流速x  流速y  流速z))

とすればOKです。

“outOfBounds” は、計算時間がリストのデータをはみ出してしまったときにどのように流速を指定するというものです。

  • clamp: はみ出たら最後の値をそれ以後使う。←今回はこれを使っています。
  • repeat: データを繰り返す。
  • error: はみ出たら止まる。
  • warn: はみ出たら警告を出す。値は clamp と同じ。

No.2:流速m/sをcsvファイルで指定して時刻歴変化

No.1のようにテーブルで指定する方法は、1行ずつ手打ちで指定しないといけないのでとっても面倒です。

試験データとか理論計算した時刻歴変化を流入条件に与えたい場合は、やっぱりデータとそのまま与えたいです・・・・

ということで、「csvファイル」を流入条件に与えるようにしたいと思います。

↓こちらを参考にします。
https://cfd.direct/openfoam/user-guide/v6-boundaries/

↓解析するディレクトリに「velocity.csv」をおいておきました。

↓「velocity.csv」のファイルはこんな感じ~

↓設定はこのように書きます。

  • nHeaderLine:ヘッダーは今回1行だけあるので「1」とします。
  • refColumn 0:時間は1列目にあるので「0」と書きます。0がはじめの列という意味
  • componentColumns (1 2 3):データの列はいくつかを指定。
  • separator “,”:データはカンマ区切りですよってことの指定。
  • mergeSeparators no:こいつの意味は不明(笑)
  • $\$$PWD/velocity.csv:「velocity.csv」がどこにあるかを指定。
    今回はカレントディレクトリにcsvファイルをおいたので、環境変数「$\$$PWD」で現在パスを指定しておきました。

No.3:質量流kg/sをcsvファイルで指定して時刻歴変化

No.2で流入条件として流速をcsvファイルで与えることができたのなら、質量流(kg/s)もできるだろうってことでやってみました。

↓解析するディレクトリに「massflow.csv」という名前のcsvファイルをおいておきます。

↓「massflow.csv」の中身はこんなかんじ~

先ほどの流速ベクトルと違って質量流はスカラーで与える必要があります。

↓設定はこのように書きます。

typeを「flowRateInletVelocity」として、「massFlowRate」と書いて流入条件を質量流と指定をします。

  • componentColumns (1):スカラー量なので「1」と指定します。
  • file “$PWD/massflow.csv”:現在パスを指定して「massflow.csv」を読み込みます。
  • rhoInlet 1:あくまで流入条件は流速で与えているので、質量流を与えつつ流速に計算しなおす必要があるので密度を指定します。

質量流は、\(\dot{m}=\rho A v\)です。

\(A\)が流入面の面積なので密度\(\rho\)を与えれば流速\(v\)が計算できます。

この場合は、面に垂直に流速ベクトルを与えているのだろうか・・・←わかっていないです(*_*;

どうにか設定ができたので、計算して流入面での流速変化を見てみます。

  1. 20190511_201159


流速が正しいか計算してみましょう。時刻0.01sだけ計算で見積もってみましょう。「massflow.csv」ファイル内で、時刻0.01sで質量流0.00001kg/sを与えています。

流入面の面積:\(A=0.25*1\)m2で、密度\(\rho=1.0\)kg/m3としています。
だから、流速は\(v=\frac{\dot{m}}{\rho A}=0.4\)m/sとなっているはずです。

確かに、CAE解析の結果も0.01sで流速\(v=0.4\)m/sです。

カマキリ

めでたし、めでたし

OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

川畑 真一
1,980円(11/05 16:36時点)
発売日: 2021/02/26
Amazonの情報を掲載しています
OpenFOAMによる熱移動と流れの数値解析(第2版)

OpenFOAMによる熱移動と流れの数値解析(第2版)

3,520円(11/05 05:30時点)
Amazonの情報を掲載しています
オープンCAEのためのDEXCS for OpenFOAMハンドブック

オープンCAEのためのDEXCS for OpenFOAMハンドブック

野村 悦治
5,710円(11/05 03:30時点)
Amazonの情報を掲載しています
関連記事もどうぞ

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です