概要
この記事では、Passive scalarを利用した、屋外での煙の伝播に関するステップバイステップのチュートリアルを提供します。
図1:発電所の煙突から煙が伝播する様子
この煙の伝搬のチュートリアルでは、次のことを学びます。
- Passive scalarを用いた対流熱伝達シミュレーションのセットアップと実行
- 境界条件、材料、その他のプロパティの割り当て
- 壁面の粗さの設定
- 入口の大気境界層プロファイルの定義
- Standardアルゴリズムによるメッシュ作成
下記の手順で解析を実施します。
- シミュレーションのためにCADモデルを準備します。
- シミュレーションの条件を設定します。
- メッシュを作成します。
- シミュレーションを実行し、結果を評価します。
1. CADモデルの準備と解析タイプの選択
まず、下のリンクをクリックします。ジオメトリを含む煙伝搬プロジェクトがワークベンチにコピーされます。
以下の図は、プロジェクトをインポートした後に表示される画面です。
図2:チュートリアルプロジェクトをインポートした後のワークベンチ
この例題では、異なる地形粗さを割り当てるために、地上に複数のサーフェスを設定します。そのため、予めCADソフトで計算領域をモデル化し、地表面を線で分割しています。
| Tips |
|
外部の流れを含むシミュレーションでは、流体領域を十分に大きくする必要があります。これは、境界からの干渉を避けるために必要です。さらに、後流を捉えるために、流体領域はジオメトリの下流側でより長くする必要があります。 Lをジオメトリ内の任意の建物の最長辺と仮定し、経験則から以下のように流体領域を作成しました。 図 3:最小限の流体領域のサイズ。下流方向に長くする必要がある。 |
1.1. シミュレーションツリーの作成
新しいシミュレーションツリーを作成するには、左側のパネルでジオメトリを選択します。
図4:選択したジオメトリでシミュレーションツリーを作成する
Create simulationを押すと、以下のリストが表示されます。
図5:SimScaleで利用できる解析タイプ
解析タイプの一覧からConvective Heat Transferを選択し、Create Simulationをクリックします。
次の図のようにシミュレーションツリーと設定パネルが表示されます。表示されているグローバル設定の設定パネルで以下の通りにします。
- 乱流モデルを k-omega SST に変更します。このモデルは k-omega と k-epsilon を自動的に切り替えるので、両方のモデルを利用できます。
- 2つのPassive speciesを追加してください。これらは、煙突からの煙の発生源を定義し、その濃度と清浄な空気の濃度を区別するのに役立ちます。
図6:対流熱伝達シミュレーションのグローバル設定
2. 解析条件の設定
2.1. 材料の定義
このシミュレーションでは、流体材料としてAirを使用します。そのため、Materialsの隣にある+ボタンをクリックします。そうすると、流体材料のライブラリが開きます。
Airを選択し、Applyをクリックします。開いたウィンドウで、デフォルト値のまま、流体領域全体に割り当てます。
図7:流体材料ライブラリ
2.2. Modelの設定
次のステップでは、グローバル座標系に従って重力を定義します。シミュレーションツリーでModelをクリックします。
この形状では、重力方向は負のz軸になります。したがって、z方向に-9.81を入力します。Diffusion coefficientsとTurbulanet Schmidt numberはデフォルトのままにしておきます。
図 8: Modelタブでの重力の設定。方向は右下のOrientation cubeを基準にしています。
2.3. 境界条件の割り当て
次の図は、このシミュレーションで適用する境界条件をまとめたものです。-Y側 (RIGHT)、+Y側 (LEFT)、+Z側 (TOP)はスリップありの壁境界、+X側 (BACK) が圧力流出口、煙突上部がパッシブスカラーの流速流入口、-X側( FRONT) が流速流入口、建物壁面と地面はすべりなしの壁境界です。順番に設定していきます。
図 9: このチュートリアルの境界条件の概要
2.3.1. Walls – Slip
下の図の説明に従って、新しい境界条件を追加します。
- Boundary conditionsの隣にある+ボタンを押します。ドロップダウンメニューが表示され、境界条件を選択できます。
- Wallの境界条件を選択します。
図10: 境界条件のリストからWallを選択します
(U) VelocityをSlip、(T) TemperatureをAdiabaticに変更します。ここで、解析領域端面のうち、上面、左面、右面をこの条件に割り当てます。
図 11: 流体領域の上部と側面にSlip条件を割り当てる
2.3.2. Pressure Outlet
新しい境界条件を作成し、今回はPressure outletを選択します。煙突から最も離れた面を設定します。
図12:Pressure outlet境界条件
2.3.2. Velocity Inlet – Chimneys
Velocity inletを選択します。背の高い煙突の流入条件から設定します。
- 煙はz方向(Uz)に8 m/sで放出されます。
- (T) Temperatureを450 ℃に設定します。
- 1つ目のPassive speicesは背の高い煙突からの流入とします。そのため、Passive scalarの1つ目のValueに1を入力します。
図13:Passive scalarを用いたVelocity inletの設定
新たなVelocity inletを、今度は短い煙突に設定します。
- 煙はz方向(Uz)に5 m/sで放出されます。
- (T) Temperatureを300 ℃に設定します。
- 2つ目のPassive speicesは背の低い煙突からの流入とします。そのため、Passive scalarの2つ目のValueに1を入力します。
図14:短い煙突のVelocity inlet
2.3.4. Velocity Inlet – ABL
このステップでは、大気境界層(Atmospheric Boundary Layer:ABL)を設定します。地上では流速ゼロで、高さとともに徐々に流速が増加する速度プロファイルを定義します。このチュートリアルではu_refは5 m/s、h_refは10 mとします。
図 15: 大気境界層の速度プロファイルを示す
| Tips |
|
この対数プロファイルは次のような定式化になっています。 ここで
乱流運動エネルギー(k)の定式化は以下の通りです。𝑐𝜇は乱流粘性定数で、0.09とします。 最後に、比散逸率𝜔については、次式で計算します。 各パラメータの詳細については、こちらのページ(英語)をご覧ください。 |
𝑢、𝑘、𝜔は数式で入力します。上記の式に基づき、以下のように設定します。
図10と同様の手順で、Customの境界条件を選択します。
図16: パラメータの計算式入力の手順
速度の計算式を入力するには、Fixed valueを選択し、枠で囲ったボタンをクリックします。
FormulaとTableの2つのタブが利用できるようになりますのでFormulaに切り替えて、下表の(U) Velocity: Uxの数式をx方向速度として貼り付けます。Applyを押して保存します。
(k) Turb. kinetic energy と (ω) Specific dissipation rateについても同様に計算式入力画面を開き、表の数式をコピー&貼付けします。
| Value | Formula |
| (U) Velocity: Ux | (0.41*5/log((10+0.03)/0.03))/0.41*log((z+0.03)/0.03) |
| (k) Turb. kinetic energy | ((0.41*5)/(log((10+0.03)/(0.03)))^2/(0.09)^0.5) |
| (ω) Specific dissipation rate | (0.41*5/log((10+0.03)/0.03))/(0.41*(0.09)^0.5)*1/(z+0.03) |
表1:ABLの設定式
図 17: x 方向の速度は高さの関数
他の項目は以下の通りとします。
- Pressure type: Zero gradient
- (T) Temperature: 19.85 ℃のFixed value
- (αt) Turb. thermal diffusivity: Zero gradient
- Passive scalars: 0のFixed value
図18: 入口のカスタム境界条件を完全に設定したもの。デフォルトと異なる設定はハイライト表示されています。
2.3.5. 建物の壁面
固体壁にはNo-slipの条件をつけます。さらに、地形と同様に建物の壁にも表面粗さを指定します。表面粗さの詳細については、ドキュメントを参照してください。
Customの境界条件を作成し、以下の通りに設定します。
- Roughness heightとして0.001 mを設定します。
- Roughness constantを0.5に設定します。
- あらかじめ作成されているBuilding wallsという名前のSaved selectionsに割り当てます。
図19:建物の壁には0.001メートルの均一な壁の粗さを適用します。
2.3.6. 地表
地表にも表面粗さを適用します。地表は、Saved selectionsのTerrain 1, Terrain 2, Terrain 3として3つに分割されています。それぞれにCustom境界条件を設定します。Roughness heightはそれぞれ以下のようにし、その他の項目は建物壁面と同様にしてください。
- Terrain 1: Roughness heightを0.01 mにします。
- Terrain 2: Roughness heightを0.0075 mにします。
- Terrain 3: Roughness heightを0.005 mにします。
それぞれ、Assigned Faceには予め用意されているSaved selectionsを使用できます。
まずは下図のようにTerrain 1についてCustom境界条件を作成します。
図20:地形の表面粗さの設定
Terrain 2とTerrain 3についても同様に設定を行います。Roughness heightのみ異なる値にします。
2.4. Initial Conditionsについて
収束性を高めるため、速度場をx方向に5 m/sで初期化します。この値は図15のu_refを表します。
図 21: 基準風速値によるグローバル速度場の初期化
2.5. Numerics と Simulation Control
Numericsのデフォルト設定は、解析タイプに基づいて最適化されています。そのため、ほとんどのシミュレーションで設定を変更しなくても機能します。しかし、詳細な設定を自分で行いたい場合は、変更することができます。
Simulation controlは、このチュートリアルでは、シミュレーション計算の中での反復回数と、中間結果を保存する回数を指定する書き込み間隔を変更します。
図22:シミュレーションの反復回数と書き込み回数の調整
Simulation controlのEnd TimeとWrite intervalを600に変更します。さらに、Maximum runtimeを30,000秒に調整します。
Tips: Simulation controlとNumericsの詳細については、それぞれのドキュメントページをご確認ください。
2.6. Result Control
いくつかのパラメータの収束挙動を確認できるようにするために、Result controlを設定していきます。これによって、結果の品質と信頼性を評価します。
このシミュレーションでは、流出面のArea averageを設定します。以下のように進めてください。
- Result controlタブを展開します。
- Surface dataの横の+ボタンをクリックします。
- Write intervalを5に設定します。これは、収束パターンを確認するのに十分な値です。
- これを流出面に割り当てます。
図23:Area averageの設定。流出面における全パラメータの平均値を出力します。
3. Mesh
メッシュ作成には、Standardアルゴリズムの使用をお勧めします。このアルゴリズムは自動化されており、ほとんどの形状で良好な結果が得られます。
Automatic boundary layersを無効にします。境界層は後で手動で指定します。注目している領域周辺のメッシュ品質を向上させるために、3つのRefinementを設定していきます。
図24:Standardアルゴリズムの主な設定
3.1. Local Element Size Refinement
Refinementsの隣にある+ボタンをクリックします。最初は、Local element sizeです。このリファインメントでは、選択したエンティティのセルの最大エッジ長を制限します。したがって、特定の領域での分解能を向上させるのに役立ちます。
- Refinementsの隣にある+ボタンをクリックします。
- Maximum edge lengthを0.3 mにします。
- Local element size refinementという名前で既に作成済みのSaved selectionsに割り当てます。このセットは、建物の壁と煙の流入面で構成されています。ワークベンチの右側にあるGEOMETRYパネルで見つけることができます。
図25: Saved selectionsに適用されたLocal element size refinement
3.2. Inflate Boundary Layer Refinement
Inflate boundary layerを設定することで、境界層として認識して適したメッシュを作成できます。
- Inflate boundary layer refinementを作成します。
- 設定はデフォルトのままにして、下の4つのSaved selectionsに割り当てます。
- Terrain 1、Terrain 2、Terrain 3
- Building Walls
図 26: Inflate boundary layer refinement のセットアップ。流入面と流出面にはレイヤーを追加しないでください。
3.3. Region Refinement
煙突の周りの領域の分解能を向上させるために、Region refinementを作成します。以下のように進めてください。
- Region Refinementを作成します。
- Maximum edge lengthを1 mとし、+ボタンをクリックしてGeometry primitiveを作成します。Cartesian boxを選択し、図28の通りに座標を入力して領域を定義します。
図27: Region refinementの作成
図28: 指定領域を細分化するために作成されたCartesian box。後流を捕らえるために下流に向かって長くする必要があります。
最後に、このCartesian boxをRegion refinementに割り当てます。このステップで、シミュレーションのセットアップは完了です。
| 計算実施済みのプロジェクト |
| 解析条件の設定とシミュレーション計算がすでに実施済みのプロジェクトをこちらからご確認いただけます。 |
4. 煙の伝搬シミュレーションンの実行
Simulation runsの横の+ボタンをクリックし、Startボタンをクリックすると、計算が開始されます。
図 29: 新しいシミュレーションの実行を開始する。
実行中は、Solution fieldsをクリックすることで、中間結果にアクセスできます。反復計算の進行に伴い、結果が更新されます。
このシミュレーションは、100分程度で終了します。リンク先の参考プロジェクトでは、収束を確認するために、もう少し繰り返し計算を行っています。
図30: ポスト処理環境へアクセスするには、この2つのボタンのどちらかをクリックします。
5. ポスト処理
5.1. Result Controls
シミュレーションが終了したら、流出面でのArea averageを開いてください。定常シミュレーションの場合、反復を重ねるうちに値が収束し、安定することが期待されます。1つ目のPassive Scalar (T1) の平均レベルを調べましょう。
図31:流出面でのPassive scalarは良好な収束を示しています。これは、高い煙突から放出される煙です。
このシミュレーションでは、流出面での速度、温度、Passive speicesなどの他のパラメータも、収束を評価するのに有効です。
5.2. Particle Trace
最初に使用するポスト処理のフィルタはParticle Traceです。このフィルターは、煙突が流体領域内の気流にどのような影響を与えるかを知るために非常に有効です。以下の手順で、流線を可視化します。
Cutting Planeをオフにし、FiltersパネルのParticle Traceを選択します。これにより、流線の設定に入ります。
図32: Cutting Planeをオフにし、Particle Traceを選択すると、流線の設定が開きます。
次に、Pick Positionの隣にあるアイコンをクリックして、流線のSeed位置を選択します。これを流入面に置き、高い方の煙突の高さに合わせます。Seed位置の高さが適切であることを確認したい場合は、上部と側面の壁面を選択し、右クリックしてHide selectionを選択することで非表示にできます。
図33 Pick Position の横のボタンをクリックして、流線の原点を選択し、煙突の高さに合わせます。
流線の可視化の設定を調整します。#Seeds verticallyを20に変更して、原点数を増やします。Spacingを1.1に、Sizeを0.1に変更します。
図34: #Seeds verticallyを20に増やし、Spacingを0.5、Sizeを0.1に減らす。
2本目の煙突については、上記で説明したのと同じステップを繰り返します。その結果、流線は下図のようになります。
図 35: 煙突から出るガスによって上昇する流れを示す流跡線
図35から、煙突から出るガスによって流れが上昇し、より高い速度が発生していることがわかります。高温の空気は、下部の気流に吸引効果を与えながら上部に上昇します。
5.3. Cutting Plane
次に、デフォルトで生成された切断面を利用して、煙の伝搬や煙突から出るガスが周囲の温度にどのように影響するかを観察してみましょう。Cutting planeをオンに、Particle traceをオフに切り替えます。以下の手順で、断面の設定を行います。
- Positionで、(50, 0.85, 25)の座標を入力して切断面の配置を変更します。
- 切断面のOrientationはY軸にします。
- さらに、Vectorsの隣にあるon/offトグルで、速度ベクトルを有効にします。
- 可視性を高めるために、ベクトルのColoringを黒のSolid colorに変更します。
- Scale factorを0.01に、Spacingを0.005に下げます。
- 可視性を高めるために、Project vectors onto planeをオンにします。
図 36: 速度ベクトルによる切断面
設定を調整した後、結果はこのようになります。
図 37: 切断面表示された結果
上の図から、煙突から高温のガスが出て、下流の空気の温度に影響を与えていることがわかります。また、浮力の効果も顕著で、高温の排気は筐体の上部に向かって素早く上昇します。
5.4. Iso Volume
最後に紹介するのは、気体の伝搬を観察するのに非常に有効な Iso Volume フィルタです。以下の手順で設定します。
- フィルターパネルのIso Volumeボタンをクリックする。
- Iso scalarとColoring をPassive scalar 1に、Min. iso valueを0.1 に、Max. iso value を1に変更します。これらの設定により、10%から100%の排気ガスで構成されるボリュームをハイライト表示します。
Iso Volume 1 の設定は下図の通りです。
図 38: Passive scalar 1のIso volume設定
もう一方の煙突から出るガスについても上記の手順で、Iso scalarとColoringをPassive scalar 2に変更します。結果は下図のようになるはずです。
図39: 両方の煙突から排出されるPassive scalarのIso volumeを 0.1 から 1 の範囲で表示したもの。
図39から、煙の伝搬結果をPassive scalarの濃度として見ることができます。Iso Volumeでは、煙が0.1から1の範囲にある体積を表示します。高濃度の煙のほとんどが煙突出口の境界のみに留まり、煙の伝播が10%以下であることが分かります。
おめでとうございます。煙伝播チュートリアルは終了です。