Cantera Surf PFR接口

2024-04-28 02:01:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python Cantera 2.4中编程,氨(NH3)的催化分解相当于表面PFR(surf_PFR)

然而,当我定义接口时,我会根据我试图修复它所做的更改引发几种错误。我的猜测是,我在用我发现的物种和机制制作的.cti文件中遗漏了一些东西

出现以下错误(均与接口相关):

错误1: 回溯(最近一次呼叫最后一次): surf=ct.Interface(cti_文件,'Catalyst',[gas]) 文件“interfaces\cython\cantera\base.pyx”,第29行,在cantera.\u cantera.\u SolutionBase.cinit 文件“interfaces\cython\cantera\base.pyx”,第75行,在cantera.\u cantera.\u SolutionBase.\u init\u cti\u xml中 TypeError:无法将str转换为cantera.\u cantera.\u SolutionBase 进程已完成,退出代码为1 我必须补充一点,在这个错误中,我没有在安装文件夹中找到base.pyx文件来检查构造函数,但这不应该是根本原因

错误2: “未找到相气。提供的相为:催化剂”

错误3: surf=ct.Interface(cti_文件,'Catalyst',[gas]) 文件“interfaces\cython\cantera\base.pyx”,第29行,在cantera.\u cantera.\u SolutionBase.cinit 文件“interfaces\cython\cantera\base.pyx”,第78行,在cantera.\u cantera.\u SolutionBase.\u init\u cti\u xml中 运行时错误:错误的动态\u转换

我只是用我自己的ammonium.cti文件(附件)修改了surf_pfr.py文件,并按照相同的模式从其他人那里创建了cti,所以我不知道是什么导致了错误,我想让另一双眼睛来仔细检查

CTI文件:

# Ammonia decomposition mechanism under a catalyst and high temperature
 
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
 
ideal_gas(name = "gas",
          elements = "N H",
          species = """H2 N2 N H NH NH2 NH3 NNH N2H2 N2H3 N2H4""",
          options = ['skip_undeclared_elements',
                     'skip_undeclared_species'],
          reactions = "all",
          transport = "Mix",
          initial_state = state(temperature = 800.0, pressure = OneAtm)
          )
 
stoichiometric_solid(name = 'bed',
           elements = 'Ni',
           density = (8.9, 'g/cm3'),
           options = ['skip_undeclared_elements', 'skip_undeclared_species'],
           species = 'NI')
 
ideal_interface(name = "Catalyst",
                elements = " Ni ",
                species = """ NI """,
                phases = "gas",
                site_density = 3e-3,
                reactions = "all",
                initial_state = state(temperature = 900.0,
                                      coverages = 'NI:1'),
                options = ['skip_undeclared_elements', 'skip_undeclared_species'],
                )
 
#-------------------------------------------------------------------------------
#  CATALYST DATA
#-------------------------------------------------------------------------------
 
species(name = "NI",
    atoms = " Ni:1 ",
    thermo = (
       NASA( [  300.00,  1000.00], [  2.776665400E+00,  -7.522063800E-04,
                4.325611300E-06,  -5.473128700E-09,   2.110756500E-12,
                5.090908300E+04,   6.168232530E+00] ),
       NASA( [ 1000.00,  5000.00], [  3.206149000E+00,  -2.096992300E-04,
               -2.283644800E-08,   1.508521100E-11,  -1.000444500E-15,
                5.070812600E+04,   3.531716230E+00] )
             )
    # note = "J12/76"
       )
#-------------------------------------------------------------------------------
#  N H SPECIES DATA
#-------------------------------------------------------------------------------
 
species(name = "NH3",
    atoms = " N:1  H:3 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  4.286027400E+00,  -4.660523000E-03,
                2.171851300E-05,  -2.280888700E-08,   8.263804600E-12,
               -6.741728500E+03,  -6.253727700E-01] ),
       NASA( [ 1000.00,  6000.00], [  2.634452100E+00,   5.666256000E-03,
               -1.727867600E-06,   2.386716100E-10,  -1.257878600E-14,
               -6.544695800E+03,   6.566292800E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     2.92,
                     well_depth =   481.00,
                     dipole =     1.47,
                     rot_relax =    10.00),
    note = "J 6/77"
       )
 
species(name = "H2",
    atoms = " H:2 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  2.344331120E+00,   7.980520750E-03,
               -1.947815100E-05,   2.015720940E-08,  -7.376117610E-12,
               -9.179351730E+02,   6.830102380E-01] ),
       NASA( [ 1000.00,  3500.00], [  3.337279200E+00,  -4.940247310E-05,
                4.994567780E-07,  -1.795663940E-10,   2.002553760E-14,
               -9.501589220E+02,  -3.205023310E+00] )
             ),
    transport = gas_transport(
                     geom = "linear",
                     diam =     2.92,
                     well_depth =    38.00,
                     polar =     0.79,
                     rot_relax =   280.00),
    note = "TPIS78"
       )
 
species(name = "N2",
    atoms = " N:2 ",
    thermo = (
       NASA( [  300.00,  1000.00], [  3.298677000E+00,   1.408240400E-03,
               -3.963222000E-06,   5.641515000E-09,  -2.444854000E-12,
               -1.020899900E+03,   3.950372000E+00] ),
       NASA( [ 1000.00,  5000.00], [  2.926640000E+00,   1.487976800E-03,
               -5.684760000E-07,   1.009703800E-10,  -6.753351000E-15,
               -9.227977000E+02,   5.980528000E+00] )
             ),
    transport = gas_transport(
                     geom = "linear",
                     diam =     3.62,
                     well_depth =    97.53,
                     polar =     1.76,
                     rot_relax =     4.00),
    note = "121286"
       )
 
species(name = "NH2",
    atoms = " N:1  H:2 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  4.204002900E+00,  -2.106138500E-03,
                7.106834800E-06,  -5.611519700E-09,   1.644071700E-12,
                2.188591000E+04,  -1.418424800E-01] ),
       NASA( [ 1000.00,  6000.00], [  2.834742100E+00,   3.207308200E-03,
               -9.339080400E-07,   1.370295300E-10,  -7.920614400E-15,
                2.217195700E+04,   6.520416300E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     2.65,
                     well_depth =    80.00,
                     polar =     2.26,
                     rot_relax =     4.00),
    note = "And89"
       )
 
species(name = "NH",
    atoms = " N:1  H:1 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  3.492908500E+00,   3.117919800E-04,
               -1.489048400E-06,   2.481644200E-09,  -1.035696700E-12,
                4.188062900E+04,   1.848327800E+00] ),
       NASA( [ 1000.00,  6000.00], [  2.783692800E+00,   1.329843000E-03,
               -4.247804700E-07,   7.834850100E-11,  -5.504447000E-15,
                4.212084800E+04,   5.740779900E+00] )
             ),
    transport = gas_transport(
                     geom = "linear",
                     diam =     2.65,
                     well_depth =    80.00,
                     rot_relax =     4.00),
    note = "And94"
       )
 
species(name = "NNH",
    atoms = " N:2  H:1 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  4.344692700E+00,  -4.849707200E-03,
                2.005945900E-05,  -2.172646400E-08,   7.946953900E-12,
                2.879197300E+04,   2.977941000E+00] ),
       NASA( [ 1000.00,  6000.00], [  3.766754400E+00,   2.891508200E-03,
               -1.041662000E-06,   1.684259400E-10,  -1.009189600E-14,
                2.865069700E+04,   4.470506700E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     3.80,
                     well_depth =    71.40,
                     rot_relax =     1.00),
    note = "T07/93"
       )
 
species(name = "N2H4",
    atoms = " N:2  H:4 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  3.834721490E+00,  -6.491295550E-04,
                3.768484630E-05,  -5.007091820E-08,   2.033620640E-11,
                1.008939250E+04,   5.752720300E+00] ),
       NASA( [ 1000.00,  6000.00], [  4.939573570E+00,   8.750171870E-03,
               -2.993990580E-06,   4.672784180E-10,  -2.730685990E-14,
                9.282655480E+03,  -2.694397720E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     3.53,
                     well_depth =    205,
                     rot_relax =     1.00),
    # note = "L 5/90"
       )
 
species(name = "N2H2",
    atoms = " N:2  H:2 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  4.344692700E+00,  -4.849707200E-03,
                2.005945900E-05,  -2.172646400E-08,   7.946953900E-12,
                2.879197300E+04,   2.977941000E+00] ),
       NASA( [ 1000.00,  6000.00], [  3.766754400E+00,   2.891508200E-03,
               -1.041662000E-06,   1.684259400E-10,  -1.009189600E-14,
                2.865069700E+04,   4.470506700E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     3.45,
                     well_depth =    71.40,
                     rot_relax =     1.00),
    note = "T07/93"
       )       
 
 
species(name = "N2H3",
    atoms = " N:2  H:3 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  3.834721490E+00,  -6.491295550E-04,
                3.768484630E-05,  -5.007091820E-08,   2.033620640E-11,
                1.008939250E+04,   5.752720300E+00] ),
       NASA( [ 1000.00,  6000.00], [  4.939573570E+00,   8.750171870E-03,
               -2.993990580E-06,   4.672784180E-10,  -2.730685990E-14,
                9.282655480E+03,  -2.694397720E+00] )
             ),
    transport = gas_transport(
                     geom = "nonlinear",
                     diam =     3.45,
                     well_depth =    200,
                     rot_relax =     1.00),
    note = "T07/93"
       )
 
 
species(name = "N",
    atoms = " N:1 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  2.500000000E+00,   0.000000000E+00,
                0.000000000E+00,   0.000000000E+00,   0.000000000E+00,
                5.610463700E+04,   4.193908700E+00] ),
       NASA( [ 1000.00,  6000.00], [  2.415942900E+00,   1.748906500E-04,
               -1.190236900E-07,   3.022624500E-11,  -2.036098200E-15,
                5.613377300E+04,   4.649609600E+00] )
             ),
    transport = gas_transport(
                     geom = "atom",
                     diam =     3.30,
                     well_depth =    71.40),
    note = "L 6/88"
       )
 
species(name = "H",
    atoms = " H:1 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  2.500000000E+00,   7.053328190E-13,
               -1.995919640E-15,   2.300816320E-18,  -9.277323320E-22,
                2.547365990E+04,  -4.466828530E-01] ),
       NASA( [ 1000.00,  3500.00], [  2.500000010E+00,  -2.308429730E-11,
                1.615619480E-14,  -4.735152350E-18,   4.981973570E-22,
                2.547365990E+04,  -4.466829140E-01] )
             ),
    transport = gas_transport(
                     geom = "atom",
                     diam =     2.05,
                     well_depth =   145.00),
    note = "L 7/88"
       )
 
#-------------------------------------------------------------------------------
#  Reaction data
#-------------------------------------------------------------------------------
 
# Reaction 1
surface_reaction('NH3 + NI <=> NH + H2 + NI', [ 6.3e14, 0, 391*238.846 ])
 
# Reaction 2
reaction('NH3 + NH <=> 2 NH2', [ 3.16e14, 0, 112.08*238. ] )
 
# Reaction 3
reaction('NH2 + NH <=> NH3 + N', [ 1e13, 0, 8.37*238.846] )
 
# Reaction 4
reaction('NH3 + NH2 <=> N2H3 + H2', [ 1e11, 0.5, 90.43*238.846 ] )
 
# Reaction 5
reaction('NH + H2 <=> NH2 + H', [ 1e14, 0, 84.03*238.846 ] )
 
# Reaction 6
reaction('NH + H <=> N + H2', [ 3.2e13, 0, 1.36*238.846 ] )
 
# Reaction 7
three_body_reaction('N2H3 + NI <=> NH2 + NH + NI', [5E16, 0, 251.21*238.846])
 
# Reaction 8
three_body_reaction('N2H3 + NI <=> N2H2 + H + NI', [1e17, 0, 138.16*238.846])
 
# Reaction 9
three_body_reaction('N2H2 + NI <=> NNH + H + NI', [5e16, 0, 209.34*238.846])
 
# Reaction 10
three_body_reaction('NNH + NI <=> N2 + H + NI', [1e13, 0.5, 12.81*238.846])
 
# Reaction 11
reaction('N2H2 + NH2 <=> NH3 + NNH', [8.8E-2, 4.05, -6.75*238.846])
 
# Reaction 12
reaction('N2H2 + H <=> NNH + H2', [85e3, 2.63, -0.963*238.846])
 
# Reaction 13
reaction('2 NH2 + NI <=> N2H4 + NI', [4.23e16, 0, 0])
 
# Reaction 14
falloff_reaction('N2H4 (+ M) <=> 2 NH2 (+ M)',
        kf = [5e14, 0, 251.21*238.846],
        kf0 = [1.5e15, 0, 163.28*238.846])
 
# Reaction 15
three_body_reaction('N2H4 + NI <=> N2H3 + H + NI', [1e15, 0, 266.28*238.846])
 
# Reaction 16
reaction('N2H4 + NH <=> NH2 + N2H3', [1e9, 1.5, 8.37*238.846])
 
# Reaction 17
reaction('N2H4 + H <=> N2H3 + H2', [7e12, 0, 10.47*238.846])
 
# Reaction 18
reaction('N2H4 + N <=> N2H3 + NH', [1e10, 1, 8.37*238.846])
 
# Reaction 19
reaction('N2H4 + NH2 <=> N2H3 + NH3', [1.8e6, 1.71, -5.78*238.846])
 
# Reaction 20
reaction('NH3 + H <=> NH2 + H2', [5.42e5, 2.4, 41.53*238.846])
 
# Reaction 21
reaction('2 H + NI <=> H2 + NI', [3.51e17, 0, 0])

第二个问题(更多出于好奇)如果三体反应将M视为未定义的催化剂,比如说催化剂,那么我如何在cti文件中定义我的催化剂(Ni)。是因为我没有定义其他元素的覆盖率/效率值(默认为一个)

提前感谢您的帮助 ~JC


Tags: 文件namethermonasanotetransportspeciesgas