屋外インスタレーション設置では計算必要ですよね。いつもはこちらのサイトのお世話になるんですが、想定は板なので球状では安全率過剰だったり複雑形状だと良く分かんなかったりします。ということでCFDで風荷重計算する時の設定メモ。
インストールの注意点 on windows
FreeCADのCfdOFアドオンを入れたあと、各種アプリが必要なんだけどparaviewだけはwindowsアプリとしてインストールして、それ以外はdocker(Podman)を利用する。PodmanはCLIだけでも動くはずだけど、ちゃんとコンテナをインストールできたか確認しやすいようにPodman Desktopをインストールした。Podman本体はExtensionsからインストールできる。

FreeCADではCdfOFアドオンを入れて再起動したら、CdfOFの設定を開く。


Praviewは別途手動でインストールして「ParaViewの実行ファイル」に設定しておく。(この設定画面でもダウンロードできるっぽいけど、何故か凄くダウンロードが遅いので注意。)
「Dockerを使用する」に☑をいれてから、「適用」をしてから「Dockerイメージをインストール」を押す。ちゃんとインストールできたかは「依存関係チェッカーを実行」で確認できる。
モデルの設置のしかた
風洞に物体をおいた状態をFreeCADの図面として作る。風洞からターゲット物体を抜いたCutを作ってこの空間をシミュレーションする。なのでCutは必須。

図では立方体が風洞で、球体がターゲット物体。
CDF/メッシュの設定

左のAアイコン解析設定置き場なので、何も考えずに押す。上でつくったCut(風洞-ターゲット物体)をメッシュに変換するためCFDメッシュアイコンを押す。

「メッシュcaseの保存」をおしてから、「メッシャーの実行」を押す。ちなみに、caseというのがメッシャーへの設定ファイル群で右の「編集」ボタンで編集できる。この編集の余地を残すためにボタンを2回押す周りくどいUIになっている。

メッシュの可視化はParaviewで行うOpacityを調整して半透明にしてメッシュ妥当かを確認する。

境界(boundary)の設定
空気を流入させるinputと自由に空気を追い出すopenを設定する。境界条件はCutじゃなくても、立方体(風洞)や球(ターゲット物体)にも設定できるのでそのほうが設定が楽だとは思う。

流入の面が選択されていることを確認したら、風速を設定する。圧力のデフォルト値100kPaはほぼ大気圧になっている。

ターゲット物体はWallに設定するが、左のモデルツリーの名前は後ほど抗力計算に使うので分かりやすいものにすると良い。図ではtargetにしてる。

初期値の設定
最大風速時の風荷重もとめるだけなら、流速と圧力の初期値は適当に目標定常値設定すればOK。

実行
実行の△アイコンをクリックすると画面がでてくるので、Caseの保存と実行をすれば良いが、荷重を計算する場合は途中で「編集」を押す。

編集を押すとフォルダが出てくるので、system/contorolDictを開く。

functionsのセクションに以下のように荷重を計算する設定(forces)を追加する。対象の境界(boundary)をpatchesの所で設定する。

functions
{
forces
{
type forces;
functionObjectLibs ("libforces.so");
patches ("target");
rho rhoInf;
rhoInf 1.225;
CofR (0 0 0);
}
}実行が終わったらparaview等で可視化してへんな計算結果になってないか確認する。
風荷重はスペース区切りテキストでcaseフォルダのcase\postProcessing\forces\0\force.datにニュートン(N)単位で記述されている。total_x,y,zを読めば良い。圧力成分と粘性成分もわけてでてくるが、粘性は通常無視出来る。
ParaviewでもTecplot Table Readerをつかってdatを開く事ができるが、Number of header linesやLine with column namesの調整が必要。


沢山行数があるが、計算が収束した最終行だけが意味ある。
余談:OpenFOAMの圧力はPaじゃない
OpenFOAMの圧力は密度で割ったものなので空気の密度1.2をかけてあげないといけない、8.4e+4だったら、1.2倍して約1e+5Pa=100hPaで大気圧付近だってことが図から分かる。

更に余談、何となく眺めるもの可視化
ちなみに圧力分布はデフォルトで風洞も表示される。以下OpenFOAMReader1の設定画面でtargetだけを表示するようにすると良い。

ターゲットの圧力と流速を以下のように格好良く表示したいときはちょっとだけ面倒。

OpenFOAMReaderやその子要素にフィルタを追加して、フィルタ後の画像を左の「目」のマークのアイコンで表示ON/OFFして絵作りをしていく。Readerにtargetだけじゃなく、internal/Meshも含めないと流速が表示できないのでOpenFOAMReaderに直接描画させられない。

そこで、OpenFOAMReader1を選んだ状態でCtrl+spaceを押して、ExtractBlockを検索して探して挿入する。そこでtargetだけを抜きだす。

同様にStreamTracerを追加する。Seedsのところで流した点がどういう軌跡を描くかを決める。よく見かけるのはtypeをPoint Cloudにしたもの。流す場所は下のCenter/Radiusで設定する。(マウスでも動かせる)

線の色はColoringの設定のところにあるのでUを設定しておけば、流速で色がつく、pだと圧力で色がつく。
