概要
このチュートリアルでは、格子ボルツマン法 (LBM) ソルバーを用いた都市の風環境シミュレーションについて、ひとつひとつ手順を追いながら行っていきます。
なお、本チュートリアルで使用するIncompressible (LBM)はProfessionalプランなおかつ、アドオンをご契約のユーザー様のみご利用いただけます。なお、ソルバーはGPU並列計算に対応して高速かつロバストな計算を行える、 Numeric Systems GmbHのPacefish®[1]を利用しています。Communityプランで空力解析を行ってみたい場合は、機械部品や車両といったスケールにはなりますが、こちらのセクションを見てみてください。プランのアップグレードにご興味がある場合は、営業担当までお問い合わせください。
図1: 都市のCADモデルに重ねて風速を可視化した結果
このチュートリアルでは、以下を学べます。
- Incompressible (LBM) の解析条件の設定
- 解析条件設定で使用するジオメトリプリミティブの作成方法
- 境界条件や物性といった条件の設定
- 自動メッシャーを使用したメッシュ生成
- SimScaleポストプロセッサを用いた結果分析
以下の流れでチュートリアルを行っていきます。
- CADモデルの準備
- 解析条件の設定
- メッシュの作成
- 解析を実施し、結果の確認
1. CADモデルの準備と解析タイプの設定
まずはじめに、以下のリンクからチュートリアルプロジェクトをインポートしてください。プロジェクトには、チュートリアルで使用するジオメトリが含まれています。
チュートリアルに含まれているジオメトリは、韓国の江南地区の建物群となっています。
図2: チュートリアルプロジェクトの都市ジオメトリ
SimScaleでは、ユーザーが用意したCADモデル/ジオメトリをアップロードして解析を行うことももちろんできます。詳細はこちらをご覧ください。なお、LBMソルバーを用いた解析では、STLファイルでジオメトリをアップロードいただくのを推奨しています。
シミュレーションを新たに作成するには、Simulationsの横の+ボタンをクリックするか、ジオメトリを選択して現れるCreate simulationをクリックしてください。解析タイプの一覧が表示されますので、Incompressible (LBM)を選択し、下の方のCreate Simulationをクリックしてください。
図3: Incompressible (LBM)で新規シミュレーションの作成する
2. 解析条件の設定
シミュレーションツリーの上から順番に項目を設定していきます。
図4: Incompressible (LBM) のシミュレーションツリー
2.1. External Flow Domain (外部流体領域)
External Flow Domainでは、解析を行う解析領域を定義します。ここで設定する領域の大きさは、解析結果の精度に直結するため、重要な値となります。Pedestrian Wind Comfort解析タイプの解説ページにある「Advanced settings - Wind tunnel size」という項目で、PWC解析における推奨設定値が説明されています。参考になさってください。
下図のように外部流体領域の大きさを指定してください。
- Minimum: x -900 m, y -1000 m, z -10 m
- Maximum: x 1100 m, y 1000 m, z 800 m
図5: External Flow Domainの設定パネル
Tips:今後、異なる向きの風について解析を行う場合、External Flow DomainのRotation anglesを変更すると、解析領域を簡単に回転させられます。
図6: 領域をZ軸周りに45°回転させた場合の例
なお、チュートリアルでは、特に回転はさせませんので、図5の通りに設定したら✅ボタンで保存し、進めます。
2.2. Material: 空気の物性値
LBMは空力解析専用となっていますので、デフォルトで空気の物性値が登録されています。値を変更することも可能です。このチュートリアルではデフォルトの値をそのまま使います。
図 7: Material: Airの設定パネル
2.3. Boundary Conditions: 境界条件
解析を実施するには、流体領域の境界面における流体の状況を定義しなければいけません。境界条件の設定を簡易にするために、 Incompressible (LBM) ではデフォルトで流体領域周囲の6面に対してプリセットが設定されています。このプリセットは、以下の仮定となっています。
- 空の向きは、+Z方向
- 風の流れの向きは、-X方向から+X方向へ抜ける方向
CADモデルの座標系が上記の設定に当てはまる場合、流速の調整のみでプリセットをそのまま利用できます。プリセットでは、A~Fのアルファベットでラベル付けされています。それぞれ対応する面・条件は下図の通りです。
図8: デフォルトで設定されている境界条件の概要。シミュレーションツリーの項目名で付いているアルファベットが図内の各アルファベットに対応します。
このチュートリアルでは、流入境界の速度のみ調整します。Velocity Inlet (A) を開き、(U) Velocity を15 m/sに変更してください。
図9: 流入境界の設定パネル
大気境界層を定義できるようにするために、速度流入境界の設定ではパラメータをテーブル形式で指定可能となっています。これにより、任意の関数形で速度プロファイルを設定可能です。以下のパラメータをテーブル形式で定義できます。
- Height (高さ) に対する Velocity (速度)
- Height (高さ) に対する Turbulent Kinetic Energy / Intensity
流体解析における大気境界層の扱いについてより興味のある方は、こちらの記事をご覧ください。
今後、テーブル形式 (CSVファイル) でプロファイルを指定する場合、以下の点に注意してください。
- CADモデル内に地表面がジオメトリとして存在しない場合、設定した流体領域の底面が地表面として自動認識されます。
- 地表面がCADモデル化されている場合、再上面が高さ0mとして認識されます。
図10: 地形がモデル化されている場合とされていない場合の基準高さの概要
2.4. Simulation Control
Simulation Controlでは、以下の項目を設定できます。
- End time: 何秒間の流れをシミュレーション計算するか設定します。
- Maximum run time: 実時間における最大計算時間を設定します。例えば、3600 secとした場合、計算を開始してから、実際の時間で1時間経つと計算が自動的に停止されます。これにより、想定以上にGPU時間が消費されるのを防げます。
Maximum run timeには、シミュレーションが最後まで実施されるために十分な時間を設定する必要があります。End timeには、最低でも流入した流れが流出面へ通り抜けるまでを1周期として、2周期分 (可能であれば3周期分) の時間を設定するのをお勧めします。計算例を以下に示します。
図11: 計算例の値
以下の式に従って計算します。流入面 (A) から入った空気が反対側の流出面に到達するのに要する時間が、2000 m / 15 m/s、その時間に2周期分で2をかけて、266.67秒が得られます。
2.5. Result Control
Result Controlにて解析結果の出力に関する設定を行います。すなわち、どのような値を計算結果として確認したいかを設定します。例えば、詳細はこちらのページをご覧ください:Incompressible (LBM)におけるResult control設定項目
このチュートリアルでは、対象とする建物壁面に作用する荷重とモーメントをモニターすることとします。さらに、追加で歩行者レベルでの流速を見るためにプローブ点を設定します。
図12: Force and momentsの設定パネル
2.5.1. Forces and moments (荷重とモーメント)
指定した面に作用する荷重とモーメントを計算結果として出力するために、Result control内のForces and momentsの横にある+ボタンをクリックして新たに設定を作成します。設定パネルが表示されますので、下図のように設定します。なお、モデルの中で最も高い建物を今回は指定します。
- Result control内のForces and momentsの横にある+ボタンをクリックします
- Center of rotationを座標を入力して設定します。
- x: -36.5m
- y: 64 m
- z: 0 m
- 図で③と描かれている面(モデルの中で最も高い建物の面)を選択します
- 凹凸で分かれている複数面を選択します
2.5.2. Probe points (プローブポイント)
Probe pointを設定することで、指定した点における値を結果出力できます。このチュートリアルでは、CSVファイルで座標を10点について指定します。このページに添付されているCSVファイルをダウンロードし、以下のように設定してください。
- Probe pointsの横の+ボタンをクリックし、新たにプローブポイントの設定を作成します。
- ダウンロードしたCSVファイルを、表示される設定パネルでアップロードします。アップロードされると、設定パネルに点の座標値が表示されます。
図13: Probe pointsの設定パネル
2.5.3. Transient output (時系列データ)
Transient outputでは以下の項目について出力を設定できます。
- Flow domain fields (流体領域内の分布データ)、surface fields (面の分布データ)の出力の有無
- 結果出力する領域の指定
- 結果出力の時間刻み
指定した領域に対してデータを出力するようにします。Export flow-domain fields をオンにします。続いて、領域を指定するために Geometry primitivesの横の+ボタンをクリックし、Local cartesian boxをクリックします。
図14: Transient output の設定パネル
立方体領域の座標を指定するダイアログが表示されますので、下図の通りに入力します。なお、領域を大きく設定しすぎるとデータ容量の関係でメモリに関するエラーが生じる可能性があります。今回は、z=1.25~1.75 mとして、歩行者レベルで設定します。
図15: 結果出力に用いるLocal cartesian boxの座標設定
寸法値を入力し終えたら✅ボタンで保存し、transient output の設定パネルでいま作成した Local cartesian box のトグルがオンになっていることを確認して、設定を保存します。
図16: 最終的なTransient output の設定パネル
この設定(Moderate resolution, Fraction from end = 0.2)で、ソルバーは最後の20%の計算ステップにおいて、4ステップおきにデータを出力します。
2.5.4. Statistical averaging
Statistical averagingでは、指定した領域に対して平均値の時系列データを出力します。出力する時間幅は、Transient outputと同様に、計算の最後からの割合で指定します。Sampling intervalで出力間隔を設定できます。
このチュートリアルでは先ほどと同様にGeometry primitiveで領域を指定し、flow-domain fieldsに関して平均を出力するようにします。図14と同様に、Local cartesian boxを作成し、以下のように座標を指定してください。
図17: Statistical averageの設定を行うための領域
座標を入力して保存したら、Statistical averagingの設定パネルでトグルが有効になっていることを確認して、設定を保存してください。
図18: 設定後のStatistical averagingの設定パネル
2.5.5. Snapshot
Snapshotでは、最終タイムステップでの分布データの出力を設定します。ここで設定した結果は、ポストプロセッサで確認できるようになります。先ほど作成したLocal cartesian box 3 を設定してください。
図19: 設定後のSnapshotの設定パネル
3. メッシュ作成
LBMソルバーで利用できるメッシャーでも、簡易に自動でメッシュを作成できます。このチュートリアルにおいても、Automaticの設定を利用していきます。Automaticでは、ユーザーはFiness (細かさ) を段階で指定し、Region of interest (注目する領域) をジオメトリで指定します。必要であれば、部分的にメッシュを調整するリファインメントも設定できます。Finessはデフォルトのまま、Coarse (粗め) とします。
このチュートリアルでは、中央に位置する最も高い建物に着目します。設定を簡単にするために、Assigned Facesに割り当てるサーフェスをグループ化したSaved selectionsが予め用意されていますので、画面右のパネルにあるRegion of interestというトポロジカルエンティティセットを選択します。
図20: Mesh settings の設定
さらに、歩行者レベルについても詳細な結果が欲しいので、 Region refinement を設定します。
- Sizing は Manual で設定します。これにより、Target resolution を設定できるので、1 mとします。設定する領域において、セルの大きさは1 m以下になります。
- 既に作成されている、 Local cartesian box 2 に設定するために、トグルをオンにします。
図21: Region refinement 1 の設定パネル
同様にして、もうひとつ Region refinement 設定を作成し、Target resolution を8mとして Local cartesian box 3 に割り当てます。
図22: Region refinement 2 の設定パネル
解析タイプごとの説明ページでは、Region refinement の設定についてより詳細に解説されています。
以上で、解析条件の設定は終了です。
| 計算実施済みのプロジェクト |
| 解析条件の設定とシミュレーション計算がすでに実施済みのプロジェクトをこちらからご確認いただけます。 |
4. シミュレーションの実行と結果確認
4.1. シミュレーションの実行
解析条件の設定が終わったら、シミュレーションツリーのSimulation Runs の横にある+ボタンをクリックすると、New run の画面が表示されますので、Start をクリックします。
図23: シミュレーション計算の実行
4.2. ポスト処理
計算が終了したら、シミュレーションツリーの Simulation Runs 内で結果を確認できます。 見たい項目をクリックすると、グラフの表示やポストプロセッサでの結果可視化をできます。なお、ここで表示される項目は、Result control の設定によって変化します。
図24: 計算が終了したRun
4.2.1. Transient solution
Transient solution では、SimScaleのポストプロセッサで結果データをコンター図やアニメーションなどで可視化できます。結果データが読み込まれると、下図のような表示になります。断面表示機能で、歩行者レベルの流速分布がカラーコンターで表示されています。(表示内容や向きは異なる場合がございます)
図25: Transient solution のポストプロセッサにおけるデフォルト表示。
画面右のTIME STEPSと表記のある箇所のボタンやスライダを操作すると、別の時間ステップの結果を表示できます。
画面上部のツールバーでAnimationからは結果のアニメーションを作成できます。なお、Caputureセクションの Record からはアニメーションを動画形式で保存もできます。
図26: Animation の作成
アニメーションは以下のようになります。どこで風速が大きいか確認できます。
アニメーション1: 結果の速度コンター図
4.2.2. Probe points
Probe pointsとして設定した座標の時系列データのグラフと統計サマリーを表示できます。下図に矢印で示されている、画面右上のボタンからはCSV形式でデータをダウンロードもできます。
得られるデータは以下の項目についてです。
- p: 圧力
- UMag: 速度ベクトルの大きさ
- Ux, Uy, Uz: 各方向の速度
- k: 乱流運動エネルギー
- Statistical data: 統計データ
図27: Probe points上の圧力値の時系列グラフ
Forces and moments からは、結果出力設定した荷重とモーメントについて時系列データと統計サマリーを確認できます。荷重とモーメントはそれぞれ、x, y, zの3方向について表示されます。
図28: 荷重値の時系列グラフ
おめでとうございます!以上でチュートリアルは終了です。Incompressible (LBM) を用いた風況解析の流れを一通り実践しました。ユーザーの皆様の理解が深まっていれば幸いです。