※Canteraバージョン:3.1.0
Cantera 3.1.0で反応器ネットワークを可視化できる機能が追加された。今回は、その可視化機能を使ってみる。
ここでは、入口(upstream)と出口(downstream)を持つIdealGasReactorの反応器を計算する。反応器は、壁面を通して外部(outside)との間で熱の授受がある。
Graphvizのインストール
可視化のために、python-graphvizをインストールしておく。Anaconda環境では、以下でインストールできる。
conda install python-graphviz
計算
# 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ファイルが作成され表示される。

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