このマイクロソルバを使用することで、Pyroネットワークを火炎前面ベースの燃焼モデルに拡張することができます。 これは、燃料を着火する際に温度拡散に依存させるのではなく、明示的なflamefront(火炎前面)を使用します。 これによって、火炎前面の速度をもっと多くのコントロールで調整することができます。
このマイクロソルバは、いくつかの追加ソルバフィールドを生成して、それらのフィールドを使用します。
fuel
1ボクセル内の燃料の量。 ここには質量分率を指定する必要があるので、0..1の範囲の値を指定してください。 1は、そのボクセルの100%が燃料で他の成分がないことを意味します。 通常では、これを最大値でPyroソルバのソースに指定します。
waste
燃料と周囲の空気を燃やした結果。 つまり、これは燃焼残存物です。 これを追跡することで、酸素を制限した燃焼が可能になります。 燃料と同様に、ここには0..1の範囲の値を指定してください。
flamefront
火炎前面を指定した符号付き距離フィールド。 このフィールド内のボクセルが燃えていると見なされるので、十分な空気と燃焼が存在すれば燃焼します。
burn
これは、ボクセル内で発生した燃焼量を記録した出力フィールドです。
ignite
値が0.5より大きく、且つ、燃料が存在する時に燃焼を発動させる入力フィールド。 これは、適用後にリセットされるので、最大値でPyroソルバのソースに指定することができます。
Pyroソルバがこれらの追加フィールドを処理するようにセットアップすることが重要です。 このソルバで内部的に移流を実行させるのではなくて、Pyroソルバの追加advectionフィールドにこれらのフィールドを追加する必要があります。
PyroソルバのAdvanced::Resizing::Extra Fieldsにfuel waste flamefront
を追加してください。
Advanced::Resizing::Reference Fieldsにfuel
を追加してください。
Advanced::Advection::Extra Fieldsにfuel waste flamefront
を追加してください。
パラメータ ¶
Properties ¶
Voxel Size
SmokeオブジェクトのVoxel Sizeとリンクさせてください。 燃料がサブボクセルステップ分だけ火炎前面境界を通過する度にゆっくりとその燃料を燃焼させる際に使用されるボクセルサイズ。
Flame Front ¶
Ignition Temperature
ボクセルのTemperatureがこの温度を超えると、その温度がflamefrontに加算され着火します。
Note
Ignition Temperature(着火温度)が低すぎると、主に熱拡散から火が広がって、 Flame Speed と関係がなくなります。
Flame Speed
火炎前面が1秒で移動する距離。 単位がメートルの場合、0.35の値は天然ガスに相当します。0.55の値はメタンガス、7.7の値は水素ガスに相当します。
Min Speed Ratio
炎の速度は、燃料/空気の比率が化学量論的条件とどれくらい乖離しているのかに依存しています。 燃料は1:1の理想的な比率の理想的な物質として扱われ、その比率では最高速になり、最低でもその最高速のこの割合まで速度が低下します。 Min Speed Ratioが0.2なら、最も不利な環境下でも理想的な速度の最低20%で炎が移動することを意味します。
Bandwidth
火炎前面は、符号付き距離フィールドを単一ステップで更新できるように再初期化しなければなりません。 これには十分な帯域幅が必要になります。 帯域幅が足りなかった場合、オブジェクト全体が単一ステップで燃えます。
(flamespeed / (FPS * substeps)) < bandwidth * voxelsize
Burning ¶
Expansion on Combust
燃料が燃えると、その燃料の分だけ直接Divergenceフィールドに加算されます。 これは、化学反応による瞬間的な加熱とモル変化(物質量の変化)を考慮します。
Temp Gain on Combust
1単位分の燃料が燃えた時のTemperatureフィールドに加算する量。 酸素には限りがあるので、燃料全体が酸素不足で燃えることができない時は、ここには1よりも大きい値を指定することが多いです。
Diffusion Rate
新鮮な酸素がないと、燃料は燃え尽きて燃焼残存物に代わり、もう何も反応しなくなります。 Diffusion(拡散)は、燃料と燃焼残存物が空気を入れ替えることができるので、拡散火炎が生成します。
Visualize ¶
主なフィールドには、単純な視覚化オプションが用意されています。 これらのオプションは、Pyroソルバからエクスポートして細かく処理することもできます。
Use Timestep
このノードを適用するために、現行のソルバタイムステップを使用するかどうか決めます。
設定した場合、現行のタイムステップサイズがスケールで乗算されて、このノードの時間の増分値に使用されます。 設定しなかった場合、 Time Scale には積分する絶対仮想時間を指定します。
実際のリアルタイムとマイクロソルバ時間とのリンクを無効にすることで、別々の仮想時間でオペレーションを実行することができます。
Time Scale
このマイクロソルバに使用するタイムステップをこの値でスケールします。 これにより、他とは異なる速度で動作するシミュレーションなどの非現実的な効果を表現することができます。
同様に、ソルバをメインのタイムステップとは関係なく評価する必要がある場合に役に立ちます。