見出し画像

[rhino+grasshopper] Butterflyによる風解析

butterflyツールによるCFD解析を試してみましたのでメモを残しておきます。
試している環境は下記。

rhino+grasshopper : ver 7
butterfly:ver 0.0.05
blueCFD-Core : ver 2017-2
その他 ladybug/honeybee : ver 1.5.0

インストール方法等は下記を参照してください。

butterflyをダウンロードした際に同梱されているサンプルファイルの 01_0_outdoor_airflow.gh をベースにして使いやすいように手を加えました。
GHとVW(2017)のサンプルファイルを置いておきます。

butterflyの使い方についてはMostapha氏の動画を参考にしました。



使い方

それでは使い方です。

Vectorworksでのモデリング

まずはモデリング。
Vectorworks(他のCADでも)で下記の名前でクラス(他のCADならレイヤ等)を作成し、モデリングを行います。
既に設計用にモデルを作成していればそれを基準に作ればいいので1時間もあれば簡単にできるかと思います。

wind-building・・・風の遮蔽物となる建物の壁や庇、周囲の建物などの3D図形を作成します。風が抜ける窓などはくり抜いておきます。
Z座標0から上に風洞が作成されるので、起伏がなければ地面は作成不要かと。
butterflyでは内外の図形を分けてそうですが、今の使い方ではどちらでも良さそうなので、遮蔽物は全てこのクラスに作成しています。
※面属性はカラーにしてください

wind-buildingarea・・・必須ではないですが、解析時のメッシュを細かくしたい部分があれば囲む直方体等の3D図形を作成しておきます。
※面属性はカラーにしてください

wind-testsurface・・・風の解析結果を表示したい面図形を作成します。複数でも構いません。(詳細は後述)
※面属性はなしにしてください

wind-testbox・・・風の解析結果を表示したい3D図形を作成します。この図形の中にランダムにポイントが作成されて、そのポイントに解析結果の風ベクトルがライン(矢印)として生成されます。
閉じた3D図形であれば直方体でなくても構いません。
※面属性はカラーにしてください

wind-winddirection・・・風の向きを直線で作成します。GHで風向を直接読み取ることも可能ですが、今回はこれを基準に図形全体を回転させます。(後述)

上記の内容でモデリングしたらDXFで書き出しておきます。

Rhinoで読み込み

先程のDXFデータをRhinoで読み込みます。(新規作成ファイルでOK)

まずはbutterflyの単位はメートルなので、Rhino側の単位をメートルにしておきます。

次に、インポートで先程のDXFを読み込みますが、モデルをミリメートル単位で作成の場合はモデル単位をミリメートル、レイアウト単位をメートルとします。

そして、モデル全体を風上が下(ーY方向)になるように回転させておきます。(風向きを直接ベクトルで指定もできますが、メッシュサイズが思うようにコントロールできなかったのでこの方法にしています。)

これで、準備は完了です。
rhinoの全レイヤを非表示にして(←しなくてもいいですが)、grasshopperを起動し、風速.ghを開きます。

grasshopperで実行

スッチ等の部分で大まかな設定をし、全体スイッチをONにすると計算が始まります。

解析レベル・・・解析レベルを3段階で選べるようにしています。詳細は後述します。まずは簡易で。

2D/3D・・・結果表示を2Dか3Dかで選びます。2Dとするとwind-testsurfaceレイヤの面図形に風速の矢印と風圧がプロットされます。3Dとするとwind-testboxレイヤの3D図形の中にランダムに風速の矢印がプロットされます。

トンネルメッシュGrading・・・風洞のメッシュをwind-buildingareaを利用して再構成するかどうかを選択します。後述します。

データ保存用フォルダ・・・解析データを保存するフォルダ名を指定します。widowsの場合、ユーザーフォルダ内のbutterflyフォルダに生成されます。このデータを用いればParaview等の別のソフトで結果を表示することもできます。結構なサイズになるので不要なものは削除したほうがいいかもしれません。

2D・簡易での実行結果がこんな感じ。

wind-testsurfaceレイヤの図形を他のレイヤに移動するなどすれば、単独表示等いろいろ切り替えられます。

3D・簡易での実行結果はこんな感じです。

色付きベイクのBAKE with ColorをTrueにすることで、矢印ベクトルをRhinoに焼き付けることができます。それをDXFでVectorworksに取り込めば、風速の矢印付きのモデルの中をウォークスルーして確認したり、矢印の一部を切り取って表示させるといったようにいろいろ使えます。

簡単な使い方はこんな感じですが、使い方に合わせてgrasshopperのパラメーターやプレビュー表示などをいろいろいじってみてください。


各設定について

理解を深めるために、各設定について現時点で分かったことを一部書いておきます。(設定の詳細はOpenFoamを勉強すれば良さそうですが、いい資料ないかな)

解析結果の表示レベル

解析面のグリッドのサイズもしくは、3D図形内にいくつ矢印を置くか(条件によって少し間引かれますが)を調整することで、解析結果をどの程度細かく表示するかを設定できます。

解析レベル

解析レベルは3段階に切り替えられるようにしていますが、各設定値は任意のものです。
解析結果と解析時間に大きく影響しますので、随時調整が必要かと思います。

WTGradingのcell_size

風洞内の基本的なメッシュサイズの値かと思います。
それぞれ5,2,1.5に設定しています。

snappyHexMeshのglob_refine_level

モデルを解析用のメッシュに再構築する際のレベルかと思います。

検索するといろいろ解説が出てきますがちゃんとは理解できていません。

それぞれ(1,1),(2,2),(2,4)に設定しています。
斜めの面や曲面の形状への影響が大きいです。(風向きによってほとんどの面が斜めになりますが)

それぞれの結果はこんな感じ。

もう少し、建築的なモデル・スケールで検証してみました。(2,2)くらいでも簡易な検証には使えそうな気がします。

gradXYZによるメッシュの再構成

周囲の建物もモデリングした場合、計画建物の周囲のみメッシュを細かくしたいところです。
refinementRegionあたりでそういった設定ができるかと予想していたのですが、ちょうどよい資料が見つからずうまくいきませんでした。
結局、gradXYZで直接的にしていすることに。(ゴリ押し)
wind-buildingareaの図形のboundingboxの座標を取得して、長さの割合と重みづけによってメッシュを作成しています。
(おそらく、メッシュは重み付けによって幅が変わるだけでメッシュの総数は変わらないですので、重みの設定によっては、風洞のcell_sizeを調整したほうがいいかもしれません。)



境界条件を設定してインテリアのみ扱うような方法もありそうですが、butterflyについては今のところはこんな感じです。

おそらくですが、温度関係も同時に扱えそうですので、エアコンの影響や温度差換気の検証もできるかもしれません。
時間が空いたらチャレンジしてみます。

paraviewの使い方もマスターせねば。

Ladybugやhoneybeeはバージョン1.5.0になっていますが、butterflyは0.0.05のままのようです。
rhino7でも問題なく使えているとは思うのですが、その辺の事情はどうなんでしょう。もうバージョンアップしないのかな。

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