見出し画像

WindowsでGUI付きCFD!Openfoam環境構築ガイド【流体力学】

こんにちはSkyです。

みなさん元気に自宅サーバいじってますか?

この間更新した記事でも書きましたが最近ラックサーバとデスクトップを導入してちょっと規模がだいぶデカくなってきて電気消費が辛くなってきました。(暖房だと思えばなんとか....)

そちらの記事でも言ったんですけど、ここ最近私は自宅サーバ群をCFD、数値流体力学の解析の計算資源として活用するようになりました。

画像
GUIを使って完全ローカルで動かせるのでモデルの限界サイズがないのがよき

ubuntuなどでインストールすることは割と簡単なんですけど、今度これを学生プロジェクト内で共有しようとするとUbuntuなんていう特殊性癖持ちか頭のどっかを打った人間しか使わないようなOSで環境構築をするのは難しいと感じ、Winでも作れるらしいのでその方法を書いた次第になります。

今回の記事の範囲はインストールと環境依存チェッカーを回すまでになるので、実際にソフトを使って解析するのはまた後の話になります。

というわけで目次

概要

選定条件

というわけでまずなんでこの構成に落ち着いたのかについて話します。

Openfoam単体をコマンドラインのみで扱うのは非常にめんどくさく、かつSTEPファイルを直接入れて壁条件を設定できるようなGUI付きの方法が探したかったのが大きいです。

ただ、一般的に使われている方法としてはブラウザ上で条件を決定したりするためファイルサイズの上限が存在するのとインターネット上でしかできないのがネックでした。

そういった前条件を指定するプリプロセッサとしてローカル動作、そしてパソコンのスペックに依存してくれるかつGUIを持っているという環境を構築できるようにいろいろ調べてこれに至りました。

私はいろいろ散財しすぎる器用貧乏器用抜きの学生なのでソフトウェアに払えるお金はあまりないんですが以下に挙げるソフトウェアは個人で利用する分にはすべてフリーのもので構築しているので参考にしてみてください。

CFDとは

というわけでまずはCFDとはという話について。CFDとは数値流体力学の略になっており、流体の流れによって流速、圧力、温度などの場を解くことで力や放熱度合いなどを近似的に導出することができる手法になります。

レーシングカーや飛行機の設計などで行われている手法の一つであり、何より家でこれができることが非常に楽しいのとかっこいいです。

私がやったのはペットボトルロケットにノズルを入れることによって流量流速持続時間の最適化を図るなどの実験を行いました。

ソフトウェアの解説

というわけで実際にOpenfoamを快適にパソコンで使用するために必要なソフト群をあげます。

  • Freecad
    cfdof(addon)

  • wsl2

  • docker

  • podman

タイトルにもあるOpenfoamというのはC言語で書かれたCFDソルバーの一種で、オープンソースになっています。これが今回のCFD解析を行なってくれる中心のソフトウェアです。

これに色々なオープンソースのソフトウェアを組み合わせることによって完全に無料かつできる限り便利に解析を回せるようになることを目標に色々ネットを彷徨いまして、結果私が落ち着いた構成がこちらになります。

まず、今回使うのがFreecadというOSSのCADです。

これをCAD単体として使用することもできるんですけど、今回使用したいのはこれの拡張機能であるCfdofになります。

これもOSSになるんですけど、これを使うとOpenfoamのインストールなどを一元化できるだけでなく、プリプロセッサとして使用することもでき、GUIで円滑に解析のセッティングができるようになります。

プリプロセッサというのは、解析の条件(壁条件、初速など)を最初に決めるソフトウェアになります。

OpenfoamはCLIベースのソフトウェアであるため、これだけで使用することは難しく、複雑なモデルなどにおいて条件を指定することは複雑になります。そこでこのプリプロセッサ機能が必要になるわけです。

さらにCFDofに合体させることができるソフトウェアは非常に多く(特にメッシュを切るメッシャーの選択肢があって嬉しい)、バージョン管理などが大変になるんですけれども、これらを全てdockerコンテナ上に組むことによってパソコン自体を汚すことなく解析を回せるようになるわけなんです。

インストール

それでは実際にインストールしてみましょう。

なお、以下に示している構築方法はCFDofの説明に沿って行われているため、もし余力のある方ならこちらの方も目を通してもらうとバージョンが変化したとしても対応できるかと思います。

現在私はMacBookAirをメインとして使っているのですが、macOSに関してはこれの動作が確認できていません。そのため、Win、もしくはLinuxでの動作が推奨されています。

それではWindowsでの構築の話に戻ります。

最初にターミナルを管理者権限で開いてください。管理者権限でないとインストールがうまくいかない場合があります。

そしたらターミナルに

wsl --install

を入力してください。

インストールが終わったら再起動を求められるので再起動したのちにFreecad,podman,docker-desktopをインストールしてください。

それぞれダウンロードするためのリンクはこちら

これらをインストールする際に何度か再起動を求められると思うので、その都度従ってください。

これらがインストールされたら完全に完了です。

続いて次のコマンドを先ほどと同様管理者権限で開いたターミナルに入力します。

podman machine init
podman machine start
wsl -d podman-machine-default
sudo usermod --add-subuids 10000-75535 $USER
sudo usermod --add-subgids 10000-75535 $USER
podman system migrate
mkdir -p /home/user/cfdof
exit
exit

これを入力してもらうと、コンテナ上のソフト側が自分のケースファイルに対してアクセスすることができるようになり、解析を回すことができるようになります。

続いてFreecadでのCFDofでの動作の確認です。

Freecadを開いていただいて最初にアドオンを入れてもらいます。

アドオンの管理画面に行ったらcfdと入力してもらうとcfdofが出てきます。これをインストールしたのちにFreecadの再起動をします。

再起動後Freecadの設定ページに移行するとサイドバーの中にcfdofの設定画面が増えます。これを開いてもらうとこの中で環境の設定をすることができます。

これのデフォルトの出力ディレクトリの中に

\wsl$\podman-machine-default\home\user\cfdof

を入れてください。これがケースファイルの出力先として記憶されて動作するようになります。

そしたらそれの下の方にあるParaViewをインストールするボタンを押していただいてこれで完全に環境の構築が完了します。

最後に依存環境チェッカーを実行していただいて、問題なく通ればこれで完了です。

まとめ

今回はインストールおよび依存関係が構築できているかどうかの確認のみ行いました。

次の記事では実際にこれを使ってシミュレーションを回していこうと思います。

CFDofのいいところはオンライン上に多くの文献が存在していることであり、これらを参照すれば自力でなんとかできるので環境構築できたのに何もしないのは待ちきれないっていう人はぜひやってみてください。

というわけで今回の記事はこちらで終わりになります。

前回の記事とは一風変わった感じになりましたが、こんな感じで自分の興味のある分野を行ったり来たりするブログなので温かい目で見ていただけると幸いです。

次の実践編の記事の更新などを見逃さないようぜひフォローの方を、そしてできればスキの方もよろしくお願いします。(記事執筆のやる気になります)

ではまた。

いいなと思ったら応援しよう!

コメント

1
コメントするには、 ログイン または 会員登録 をお願いします。
tomoのプロフィールへのリンク
tomo

仕事で流体解析する必要があり、上手く出来ずに困ってます。実践編の更新お願いします!

WindowsでGUI付きCFD!Openfoam環境構築ガイド【流体力学】|Sky
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1