Cantera:反応器ネットワークの可視化

※Canteraバージョン:3.1.0

Cantera 3.1.0で反応器ネットワークを可視化できる機能が追加された。今回は、その可視化機能を使ってみる。

ここでは、入口(upstream)と出口(downstream)を持つIdealGasReactorの反応器を計算する。反応器は、壁面を通して外部(outside)との間で熱の授受がある。

Graphvizのインストール

可視化のために、python-graphvizをインストールしておく。Anaconda環境では、以下でインストールできる。

conda install python-graphviz

計算

ソースコード(GitHub)

# Simulation parameters
p = ct.one_atm  # pressure [Pa]
Tin = 1000.0  # inlet temperature [K]
comp_in = 'CH4:0.5, O2:1.0, N2:3.76'  # inlet component

Toutside = 300.0  # outside temperature [K] 
comp_outside = 'O2:1.0, N2:3.76'  # outside component
area_wall = 0.5  # heat transfer wall area [m2]
ht = 100.0  # heat transfer coef. [W/m2/K]

燃料はメタンで空気と混合しており、温度1000Kで流入する。壁の外側は300Kとする。

# define object
gas = ct.Solution('gri30.yaml')
gas.TPX = Tin, p, comp_in
mdot = 1.0 * gas.density

r = ct.IdealGasReactor(gas)
r.volume = 1.0

upstream = ct.Reservoir(gas, name='upstream')
downstream = ct.Reservoir(gas, name='downstream')
m = ct.MassFlowController(upstream, r, mdot=mdot)
v = ct.Valve(r, downstream, K=1.0)

gas.TPX = Toutside, p, comp_outside
outside = ct.Reservoir(gas, name='outside')
wall = ct.Wall(outside, r, U=ht)
wall.area = area_wall

sim = ct.ReactorNet([r])

反応器rと入口(upstream)はMassFlowControllerで接続し、質量流量を規定する。出口(downstream)はValveで接続する。壁の外側(outside)はWallで接続する。

反応器ネットワークをsimとする。

# solve
sim.advance_to_steady_state()

diagram = sim.draw(print_state=True, species="X")
diagram.view()

advance_to_steady_stateで定常計算する。

反応器ネットワークをdrawメソッドを使用して可視化し、diagramにオブジェクトを渡す。描画するには、viewメソッドを実行する。

viewが実行されるとpdfファイルが作成され表示される。

各オブジェクトの温度、圧力、組成などの状態、質量流量や熱移動量などが可視化されている。

スポンサーリンク
科学技術計算のご相談は「キャットテックラボ」へ

科学技術計算やCAEに関するご相談、計算用プログラムの開発などお困りのことは「株式会社キャットテックラボ」へお問い合わせください。

お問い合わせはこちら

フォローする

スポンサーリンク