我正在使用Conda运行一个简单的python代码。 当我运行代码时,我得到了连接错误
我知道这个错误与numpy维度有关,我在谷歌上查过类似的答案。但是我无法解决代码中的错误
在代码中,当我在第31行添加alpha = f.thermal_conductivity/f.cp
和在第45行添加alpha
时,在第48行得到错误。并且错误是ValueError:串联轴的所有输入数组维度必须精确匹配,但是沿着维度0,索引0处的数组大小为12,索引1处的数组大小为159
但是当我删除alpha = f.thermal_conductivity/f.cp
和alpha
并简单地在第45行中添加f.thermal_conductivity/f.cp
时,效果很好
从这一点上,我理解我以错误的方式指定了alpha = f.thermal_conductivity/f.cp
谁能告诉我如何正确定义alpha,这样我就不会出现任何连接错误了
import cantera as ct
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
pressure = 221000 #Initial Pressure
T_fuel = 293.15 # fuel inlet temperature
T_ox = 1054 # oxidizer inlet temperature
fuel = 'H2:1' # fuel composition
oxidizer = 'O2:0.21, N2:0.606, H2O:0.184' # air composition
reaction_mechanism = 'h2o2.yaml' # Reaction Mechanism
mdot_f = 536.0 # kg/m^2/s
mdot_o = 958.75 # kg/m^2/s
#Setting a gas object
gas = ct.Solution(reaction_mechanism)
phi = gas.equivalence_ratio(fuel, oxidizer, basis='mass')
gas.mixture_fraction('H2:1','O2:0.21, N2:0.606, H2O:0.184',basis='mass',element='H')
width = 20 # Distance between inlets is 2 cm
loglevel = 1 # amount of diagnostic output (0 to 5)
#Setting a Flame object
f = ct.CounterflowDiffusionFlame(gas, width=width)
f.P = pressure
f.fuel_inlet.mdot = mdot_f
f.fuel_inlet.X = fuel
f.fuel_inlet.T = T_fuel
f.oxidizer_inlet.mdot = mdot_o
f.oxidizer_inlet.X = oxidizer
f.oxidizer_inlet.T = T_ox
f.transport_model = 'Multi'
Z = f.mixture_fraction
f.set_refine_criteria(ratio=2.0, slope=0.2, curve=0.2, prune=0.03)
alpha = f.thermal_conductivity/f.cp
file_name = 'initial_solution.csv'
print('Preparing data...')
data = np.transpose([\
Z('H'),\
f.grid,\
f.T,\
f.velocity,\
f.density,\
f.cp,\
f.viscosity,\
f.heat_release_rate,\
f.h,\
f.thermal_conductivity,\
alpha,\
])
for k in range(0, len(f.Y[:,0])):
data = np.c_[data,np.transpose(f.Y[k,:])]```
目前没有回答
相关问题 更多 >
编程相关推荐