この記事では、SimScaleプラットフォームの Pedestrian Wind Confort (PWC, 歩行者風快適性)解析タイプでシミュレーションが可能なモデルを得るために、 Rhinoceros®(Rhino) を使用して地形のジオメトリを適切に準備する方法について説明します。
背景
歩行者の風快適性評価を目的とした解析を行う場合、関連するトポロジーを解析に含める必要があります。SimScaleでは、トポロジーをシミュレーション領域の寸法外まで用意する必要があります。これは主に2つの理由によるもので、1つ目は流れが地面の下に行くのを防ぐため、2つ目は(たとえ不均一であっても)シミュレーション内で床・地面が定義されていることを保証するためです。トポロジーを拡張する必要がある理由については、 こちらを参照してください。
このとき、Rhinoなどのソフトウェアで地形を人工的に拡張することをお勧めします。以下の記事では、そのワークフローを説明し、例を示します。
概要
PWC解析のためにジオメトリを準備する際、ユーザーはプロジェクトの主な Region of Interest (関心領域)を定義することから始めます。このとき、Region of Interest (関心領域)がジオメトリの中心に位置するようにすることが重要です。適切な処理を領域の中心(通常、新しい複合施設や建物の開発が提案されている場所)を基に行います。
最初に不要なレイヤーをすべてオフにして、建物と地形のみを表示させると便利です。
解決方法
Region of Interest (関心領域) の地形や周辺環境に応じて、Region of Interest (関心領域) の中心を中心とした適切な半径の円を定義します。この円は Region of Interest (関心領域) とその周辺を含む領域をカバーし、PWC 解析のターゲットとする領域を意味します。この領域にメッシュの問題を引き起こすような隙間や異常がある場合は特定して取り除く必要があります。
モデルを単純化して、その効率を最適化するためには、 領域内にないコンポーネントを削除する必要があります。経験則として、 Region of Interest (関心領域)の半径に500\(m\) を加えたものをこの包含円の半径として使用することができますが、適宜変更することもできます。
この時点で Region of Interest (関心領域) の中心に建物、コンテクスト、地形があることになります。しかし、シミュレーションの限界を超えて地形を拡張する必要があります。地形を拡張し始めるには、Region of Interest (関心領域) の中心を基準点として新しい円周を再度作成します。この新しい円は最終的なモデルの限界を決めるもので、そのため直径は前に定義したものよりも広くする必要があります。
経験則として、半径は 2500\(m\) まで広げることができます。しかし、これはほとんどの場合必要以上に大きく、通常、より賢明な半径は Region of Interest (関心領域) の半径に最も高い建物の高さの 20 倍を足したものです。従って、ある建物が最も低いところから 100\(m\) の高さで、Region of Interest (関心領域) の半径が 300\(m\) であった場合、延長半径は 2300\(m\) または 2.3\(km\) となります。
使用例
このサンプルモデルは、 CADMAPPERというオンラインソースから抽出された、ニュージーランドのウェリントン地域の地形CADファイルです。
不要な情報が多いので、不要なレイヤーはすべてオフにしてください。失われた線や点のような余分な情報は、 コマンドボックスのDelete機能を使って削除します。
例えば、建物と地形の間に隙間がある場合、建物の下に流れが移動して快適性に悪影響が出ないように、建物の床を少し押し出すことをお勧めします。しかし、特に複雑な形状の場合は、異なるアプローチが必要です。この例では、海岸に追加すべきサーフェスがモデルにありません。海は平らで1つの平面上にあると予想されるため、1つのサーフェスが使用されました。
前述したように、目的は、シミュレーションの境界を超えて広がる穴や隙間のない地形の拡張を作成し、推奨されるディテールの量だけを維持することです。このことを念頭に置き、Region of Interest (関心領域)の周囲を含む円を作成した後、その外側にある建物をすべて削除します。
この処理には Trim、MeshTrim、Change layer 関数が便利です。 Trim関数を使用するには、 ExtrudeCrv 関数を使ってモデルのトポロジーサーフェスと交差する円柱を作成する必要があります。この関数の場合、選択される参照は円であり、押し出し距離は様々です。必要なのは、生成された円柱が保存したい領域を囲んでいることを確認することだけです。
最終的なモデルの限界を生成するために、円を定義することができます。次のステップを簡単にするために、以前に作成された円はこの後の処理で必要がないので非表示にします。
関数 Divide curve by the number of segmentsを 使用して、新しい円の線から点を抽出します。地形を定義する点を収集するために、モデルを選択し、関数 ExtractPtを実行します。極限円とモデルの間に余分な点がある場合は、それらを削除してください。
最終的に目的のモデルを生成するには、すべての点を選択した状態で関数 MeshPatchを 実行する必要があります。最もシンプルで効率的なモデルを得るためには、すべてのポイントは消去する必要があり、 SelPtでそれらを選択し、Deleteでそれらを削除します 。最終モデルを得て視覚化するためには、関連するレイヤーを表示する必要があります。
これで、モデルをSTLとしてSimScaleプラットフォームにアップロードできます。RhinoからSimScaleにSTLとしてモデルをアップロードして保存する方法は、 こちら をご覧ください。以下に、この記事で紹介したステップバイステップの手順を示すビデオがあります。
同じようなモデルをRhinoで作成する方法は複数ありますが、この方法は非常に効率的で堅牢です。