
:html_theme.sidebar_secondary.remove:

.. py:currentmodule:: cantera


.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples/python/reactors/reactor1.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_python_reactors_reactor1.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_python_reactors_reactor1.py:


Constant-pressure, adiabatic kinetics simulation
================================================

Requires: cantera >= 3.2.0, matplotlib >= 2.0

.. tags:: Python, combustion, reactor network, plotting

.. GENERATED FROM PYTHON SOURCE LINES 9-62



.. image-sg:: /examples/python/reactors/images/sphx_glr_reactor1_001.png
   :alt: reactor1
   :srcset: /examples/python/reactors/images/sphx_glr_reactor1_001.png, /examples/python/reactors/images/sphx_glr_reactor1_001_2_00x.png 2.00x
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    Initializing reactor network.
    Reactor 0: 12 variables.
                  0 sensitivity params.
    Number of equations: 12
    Maximum time step:                0
    t [s]      T [K]      P [Pa]     u [J/kg]      
     1.000e-05   1001.000 101325.000  620761.940774
     2.000e-05   1001.000 101325.000  620761.940024
     3.000e-05   1001.000 101325.000  620761.937443
     4.000e-05   1001.000 101325.000  620761.932033
     5.000e-05   1001.000 101325.000  620761.922252
     6.000e-05   1001.000 101325.000  620761.905713
     7.000e-05   1001.000 101325.000  620761.878726
     8.000e-05   1001.000 101325.000  620761.835581
     9.000e-05   1001.001 101325.000  620761.767439
     1.000e-04   1001.001 101325.000  620761.660610
     1.100e-04   1001.001 101325.000  620761.493868
     1.200e-04   1001.002 101325.000  620761.234254
     1.300e-04   1001.003 101325.000  620760.830472
     1.400e-04   1001.005 101325.000  620760.202400
     1.500e-04   1001.008 101325.000  620759.224211
     1.600e-04   1001.012 101325.000  620757.696676
     1.700e-04   1001.019 101325.000  620755.300456
     1.800e-04   1001.030 101325.000  620751.514427
     1.900e-04   1001.048 101325.000  620745.466071
     2.000e-04   1001.076 101325.000  620735.641820
     2.100e-04   1001.124 101325.000  620719.290355
     2.200e-04   1001.204 101325.000  620691.110443
     2.300e-04   1001.349 101325.000  620640.174258
     2.400e-04   1001.623 101325.000  620542.301923
     2.500e-04   1002.182 101325.000  620340.607806
     2.600e-04   1003.397 101325.000  619897.679385
     2.700e-04   1006.134 101325.000  618893.720137
     2.800e-04   1012.324 101325.000  616618.265942
     2.900e-04   1026.776 101325.000  611310.136421
        Advance limit triggered for component 1 (dt = 6.515e-06): y_start =     1026.78, y_end =     1046.78, delta =          20, limit =        20
     2.965e-04   1046.776 101325.000  603978.054304
        Advance limit triggered for component 1 (dt = 3.798e-06): y_start =     1046.78, y_end =     1066.78, delta =          20, limit =        20
     3.003e-04   1066.776 101325.000  596662.364799
        Advance limit triggered for component 1 (dt = 2.583e-06): y_start =     1066.78, y_end =     1086.78, delta =          20, limit =        20
     3.029e-04   1086.776 101325.000  589362.909407
        Advance limit triggered for component 1 (dt = 1.903e-06): y_start =     1086.78, y_end =     1106.78, delta =          20, limit =        20
     3.048e-04   1106.776 101325.000  582079.500809
        Advance limit triggered for component 1 (dt = 1.475e-06): y_start =     1106.78, y_end =     1126.78, delta =          20, limit =        20
     3.063e-04   1126.776 101325.000  574811.988170
        Advance limit triggered for component 1 (dt = 1.184e-06): y_start =     1126.78, y_end =     1146.78, delta =          20, limit =        20
     3.075e-04   1146.776 101325.000  567560.278394
        Advance limit triggered for component 1 (dt = 9.768e-07): y_start =     1146.78, y_end =     1166.78, delta =          20, limit =        20
     3.084e-04   1166.776 101325.000  560324.346194
        Advance limit triggered for component 1 (dt = 8.233e-07): y_start =     1166.78, y_end =     1186.78, delta =          20, limit =        20
     3.093e-04   1186.776 101325.000  553104.239841
        Advance limit triggered for component 1 (dt = 7.066e-07): y_start =     1186.78, y_end =     1206.78, delta =          20, limit =        20
     3.100e-04   1206.776 101325.000  545900.085173
        Advance limit triggered for component 1 (dt = 6.159e-07): y_start =     1206.78, y_end =     1226.78, delta =          20, limit =        20
     3.106e-04   1226.776 101325.000  538712.089213
        Advance limit triggered for component 1 (dt = 5.443e-07): y_start =     1226.78, y_end =     1246.78, delta =          20, limit =        20
     3.111e-04   1246.776 101325.000  531540.544227
        Advance limit triggered for component 1 (dt = 4.871e-07): y_start =     1246.78, y_end =     1266.78, delta =          20, limit =        20
     3.116e-04   1266.776 101325.000  524385.833020
        Advance limit triggered for component 1 (dt = 4.411e-07): y_start =     1266.78, y_end =     1286.78, delta =          20, limit =        20
     3.121e-04   1286.776 101325.000  517248.435831
        Advance limit triggered for component 1 (dt =  4.04e-07): y_start =     1286.78, y_end =     1306.78, delta =          20, limit =        20
     3.125e-04   1306.776 101325.000  510128.939265
        Advance limit triggered for component 1 (dt = 3.739e-07): y_start =     1306.78, y_end =     1326.78, delta =          20, limit =        20
     3.128e-04   1326.776 101325.000  503028.047510
        Advance limit triggered for component 1 (dt = 3.497e-07): y_start =     1326.78, y_end =     1346.78, delta =          20, limit =        20
     3.132e-04   1346.776 101325.000  495946.595945
        Advance limit triggered for component 1 (dt = 3.305e-07): y_start =     1346.78, y_end =     1366.78, delta =          20, limit =        20
     3.135e-04   1366.776 101325.000  488885.567138
        Advance limit triggered for component 1 (dt = 3.156e-07): y_start =     1366.78, y_end =     1386.78, delta =          20, limit =        20
     3.138e-04   1386.776 101325.000  481846.108852
        Advance limit triggered for component 1 (dt = 3.045e-07): y_start =     1386.78, y_end =     1406.78, delta =          20, limit =        20
     3.141e-04   1406.776 101325.000  474829.553176
        Advance limit triggered for component 1 (dt = 2.969e-07): y_start =     1406.78, y_end =     1426.78, delta =          20, limit =        20
     3.144e-04   1426.776 101325.000  467837.434987
        Advance limit triggered for component 1 (dt = 2.926e-07): y_start =     1426.78, y_end =     1446.78, delta =          20, limit =        20
     3.147e-04   1446.776 101325.000  460871.506441
        Advance limit triggered for component 1 (dt = 2.916e-07): y_start =     1446.78, y_end =     1466.78, delta =          20, limit =        20
     3.150e-04   1466.776 101325.000  453933.741845
        Advance limit triggered for component 1 (dt = 2.939e-07): y_start =     1466.78, y_end =     1486.78, delta =          20, limit =        20
     3.153e-04   1486.776 101325.000  447026.323811
        Advance limit triggered for component 1 (dt = 2.995e-07): y_start =     1486.78, y_end =     1506.78, delta =          20, limit =        20
     3.156e-04   1506.776 101325.000  440151.597122
        Advance limit triggered for component 1 (dt = 3.085e-07): y_start =     1506.78, y_end =     1526.78, delta =          20, limit =        20
     3.159e-04   1526.776 101325.000  433311.972208
        Advance limit triggered for component 1 (dt = 3.213e-07): y_start =     1526.78, y_end =     1546.78, delta =          20, limit =        20
     3.162e-04   1546.776 101325.000  426509.758673
        Advance limit triggered for component 1 (dt = 3.378e-07): y_start =     1546.78, y_end =     1566.78, delta =          20, limit =        20
     3.166e-04   1566.776 101325.000  419746.917419
        Advance limit triggered for component 1 (dt =  3.58e-07): y_start =     1566.78, y_end =     1586.78, delta =          20, limit =        20
     3.169e-04   1586.776 101325.000  413024.746733
        Advance limit triggered for component 1 (dt = 3.818e-07): y_start =     1586.78, y_end =     1606.78, delta =          20, limit =        20
     3.173e-04   1606.776 101325.000  406343.567421
        Advance limit triggered for component 1 (dt = 4.087e-07): y_start =     1606.78, y_end =     1626.78, delta =          20, limit =        20
     3.177e-04   1626.776 101325.000  399702.527137
        Advance limit triggered for component 1 (dt = 4.382e-07): y_start =     1626.78, y_end =     1646.78, delta =          20, limit =        20
     3.182e-04   1646.776 101325.000  393099.652721
        Advance limit triggered for component 1 (dt = 4.698e-07): y_start =     1646.78, y_end =     1666.78, delta =          20, limit =        20
     3.186e-04   1666.776 101325.000  386532.193479
        Advance limit triggered for component 1 (dt = 5.032e-07): y_start =     1666.78, y_end =     1686.78, delta =          20, limit =        20
     3.191e-04   1686.776 101325.000  379997.146385
        Advance limit triggered for component 1 (dt = 5.381e-07): y_start =     1686.78, y_end =     1706.78, delta =          20, limit =        20
     3.197e-04   1706.776 101325.000  373491.756601
        Advance limit triggered for component 1 (dt = 5.747e-07): y_start =     1706.78, y_end =     1726.78, delta =          20, limit =        20
     3.202e-04   1726.776 101325.000  367013.827612
        Advance limit triggered for component 1 (dt = 6.132e-07): y_start =     1726.78, y_end =     1746.78, delta =          20, limit =        20
     3.209e-04   1746.776 101325.000  360561.803488
        Advance limit triggered for component 1 (dt = 6.539e-07): y_start =     1746.78, y_end =     1766.78, delta =          20, limit =        20
     3.215e-04   1766.776 101325.000  354134.688531
        Advance limit triggered for component 1 (dt =  6.97e-07): y_start =     1766.78, y_end =     1786.78, delta =          20, limit =        20
     3.222e-04   1786.776 101325.000  347731.897764
        Advance limit triggered for component 1 (dt = 7.429e-07): y_start =     1786.78, y_end =     1806.78, delta =          20, limit =        20
     3.230e-04   1806.776 101325.000  341353.108160
        Advance limit triggered for component 1 (dt = 7.918e-07): y_start =     1806.78, y_end =     1826.78, delta =          20, limit =        20
     3.237e-04   1826.776 101325.000  334998.144255
        Advance limit triggered for component 1 (dt = 8.441e-07): y_start =     1826.78, y_end =     1846.78, delta =          20, limit =        20
     3.246e-04   1846.776 101325.000  328666.904428
        Advance limit triggered for component 1 (dt = 8.999e-07): y_start =     1846.78, y_end =     1866.78, delta =          20, limit =        20
     3.255e-04   1866.776 101325.000  322359.319543
        Advance limit triggered for component 1 (dt = 9.597e-07): y_start =     1866.78, y_end =     1886.78, delta =          20, limit =        20
     3.264e-04   1886.776 101325.000  316075.332823
        Advance limit triggered for component 1 (dt = 1.024e-06): y_start =     1886.78, y_end =     1906.78, delta =          20, limit =        20
     3.275e-04   1906.776 101325.000  309814.891116
        Advance limit triggered for component 1 (dt = 1.092e-06): y_start =     1906.78, y_end =     1926.78, delta =          20, limit =        20
     3.286e-04   1926.776 101325.000  303577.941711
        Advance limit triggered for component 1 (dt = 1.166e-06): y_start =     1926.78, y_end =     1946.78, delta =          20, limit =        20
     3.297e-04   1946.776 101325.000  297364.431218
        Advance limit triggered for component 1 (dt = 1.244e-06): y_start =     1946.78, y_end =     1966.78, delta =          20, limit =        20
     3.310e-04   1966.776 101325.000  291174.305216
        Advance limit triggered for component 1 (dt = 1.329e-06): y_start =     1966.78, y_end =     1986.78, delta =          20, limit =        20
     3.323e-04   1986.776 101325.000  285007.508155
        Advance limit triggered for component 1 (dt =  1.42e-06): y_start =     1986.78, y_end =     2006.78, delta =          20, limit =        20
     3.337e-04   2006.776 101325.000  278863.983281
        Advance limit triggered for component 1 (dt = 1.518e-06): y_start =     2006.78, y_end =     2026.78, delta =          20, limit =        20
     3.352e-04   2026.776 101325.000  272743.672394
        Advance limit triggered for component 1 (dt = 1.624e-06): y_start =     2026.78, y_end =     2046.78, delta =          20, limit =        20
     3.369e-04   2046.776 101325.000  266646.516152
        Advance limit triggered for component 1 (dt = 1.738e-06): y_start =     2046.78, y_end =     2066.78, delta =          20, limit =        20
     3.386e-04   2066.776 101325.000  260572.453704
        Advance limit triggered for component 1 (dt = 1.861e-06): y_start =     2066.78, y_end =     2086.78, delta =          20, limit =        20
     3.405e-04   2086.776 101325.000  254521.422740
        Advance limit triggered for component 1 (dt = 1.994e-06): y_start =     2086.78, y_end =     2106.78, delta =          20, limit =        20
     3.425e-04   2106.776 101325.000  248493.359552
        Advance limit triggered for component 1 (dt = 2.139e-06): y_start =     2106.78, y_end =     2126.78, delta =          20, limit =        20
     3.446e-04   2126.776 101325.000  242488.198677
        Advance limit triggered for component 1 (dt = 2.295e-06): y_start =     2126.78, y_end =     2146.78, delta =          20, limit =        20
     3.469e-04   2146.776 101325.000  236505.873051
        Advance limit triggered for component 1 (dt = 2.466e-06): y_start =     2146.78, y_end =     2166.78, delta =          20, limit =        20
     3.494e-04   2166.776 101325.000  230546.313895
        Advance limit triggered for component 1 (dt = 2.652e-06): y_start =     2166.78, y_end =     2186.78, delta =          20, limit =        20
     3.520e-04   2186.776 101325.000  224609.450574
        Advance limit triggered for component 1 (dt = 2.855e-06): y_start =     2186.78, y_end =     2206.78, delta =          20, limit =        20
     3.549e-04   2206.776 101325.000  218695.210597
        Advance limit triggered for component 1 (dt = 3.077e-06): y_start =     2206.78, y_end =     2226.78, delta =          20, limit =        20
     3.579e-04   2226.776 101325.000  212803.519543
        Advance limit triggered for component 1 (dt = 3.321e-06): y_start =     2226.78, y_end =     2246.78, delta =          20, limit =        20
     3.613e-04   2246.776 101325.000  206934.300937
        Advance limit triggered for component 1 (dt = 3.589e-06): y_start =     2246.78, y_end =     2266.78, delta =          20, limit =        20
     3.648e-04   2266.776 101325.000  201087.476107
        Advance limit triggered for component 1 (dt = 3.885e-06): y_start =     2266.78, y_end =     2286.78, delta =          20, limit =        20
     3.687e-04   2286.776 101325.000  195262.964229
        Advance limit triggered for component 1 (dt = 4.214e-06): y_start =     2286.78, y_end =     2306.78, delta =          20, limit =        20
     3.729e-04   2306.776 101325.000  189460.682241
        Advance limit triggered for component 1 (dt =  4.58e-06): y_start =     2306.78, y_end =     2326.78, delta =          20, limit =        20
     3.775e-04   2326.776 101325.000  183680.544603
        Advance limit triggered for component 1 (dt = 4.989e-06): y_start =     2326.78, y_end =     2346.78, delta =          20, limit =        20
     3.825e-04   2346.776 101325.000  177922.463287
        Advance limit triggered for component 1 (dt = 5.448e-06): y_start =     2346.78, y_end =     2366.78, delta =          20, limit =        20
     3.880e-04   2366.776 101325.000  172186.347738
        Advance limit triggered for component 1 (dt = 5.969e-06): y_start =     2366.78, y_end =     2386.78, delta =          20, limit =        20
     3.939e-04   2386.776 101325.000  166472.104816
        Advance limit triggered for component 1 (dt = 6.562e-06): y_start =     2386.78, y_end =     2406.78, delta =          20, limit =        20
     4.005e-04   2406.776 101325.000  160779.638708
        Advance limit triggered for component 1 (dt = 7.245e-06): y_start =     2406.78, y_end =     2426.78, delta =          20, limit =        20
     4.077e-04   2426.776 101325.000  155108.850838
        Advance limit triggered for component 1 (dt = 8.038e-06): y_start =     2426.78, y_end =     2446.78, delta =          20, limit =        20
     4.158e-04   2446.776 101325.000  149459.639779
        Advance limit triggered for component 1 (dt = 8.974e-06): y_start =     2446.78, y_end =     2466.78, delta =          20, limit =        20
     4.248e-04   2466.776 101325.000  143831.901544
     4.348e-04   2486.776 101325.000  138225.529479
     4.448e-04   2504.372 101325.000  133310.620965
     4.548e-04   2520.073 101325.000  128938.720989
     4.648e-04   2534.132 101325.000  125035.219474
     4.748e-04   2546.754 101325.000  121539.434896
     4.848e-04   2558.111 101325.000  118401.214132
     4.948e-04   2568.347 101325.000  115578.516116
     5.048e-04   2577.585 101325.000  113035.661416
     5.148e-04   2585.932 101325.000  110742.042753
     5.248e-04   2593.479 101325.000  108671.158635
     5.348e-04   2600.308 101325.000  106799.880165
     5.448e-04   2606.490 101325.000  105107.885203
     5.548e-04   2612.089 101325.000  103577.216108
     5.648e-04   2617.161 101325.000  102191.929161
     5.748e-04   2621.758 101325.000  100937.813011
     5.848e-04   2625.923 101325.000   99802.158601
     5.948e-04   2629.699 101325.000   98773.570632
     6.048e-04   2633.121 101325.000   97841.809566
     6.148e-04   2636.224 101325.000   96997.657671
     6.248e-04   2639.036 101325.000   96232.805737
     6.348e-04   2641.586 101325.000   95539.754067
     6.448e-04   2643.898 101325.000   94911.728145
     6.548e-04   2645.994 101325.000   94342.603624
     6.648e-04   2647.894 101325.000   93826.840786
     6.748e-04   2649.616 101325.000   93359.426350
     6.848e-04   2651.178 101325.000   92935.821798
     6.948e-04   2652.593 101325.000   92551.917191
     7.048e-04   2653.877 101325.000   92203.989879
     7.148e-04   2655.040 101325.000   91888.667478
     7.248e-04   2656.094 101325.000   91602.894572
     7.348e-04   2657.050 101325.000   91343.902231
     7.448e-04   2657.917 101325.000   91109.181444
     7.548e-04   2658.702 101325.000   90896.458311
     7.648e-04   2659.414 101325.000   90703.671985
     7.748e-04   2660.059 101325.000   90528.954713
     7.848e-04   2660.644 101325.000   90370.613708
     7.948e-04   2661.174 101325.000   90227.114665
     8.048e-04   2661.654 101325.000   90097.066989
     8.148e-04   2662.089 101325.000   89979.210296
     8.248e-04   2662.484 101325.000   89872.402243
     8.348e-04   2662.842 101325.000   89775.607454
     8.448e-04   2663.166 101325.000   89687.887535
     8.548e-04   2663.459 101325.000   89608.391974
     8.648e-04   2663.726 101325.000   89536.349935
     8.748e-04   2663.967 101325.000   89471.062782
     8.848e-04   2664.186 101325.000   89411.897340
     8.948e-04   2664.384 101325.000   89358.279748
     9.048e-04   2664.563 101325.000   89309.689922
     9.148e-04   2664.726 101325.000   89265.656507
     9.248e-04   2664.874 101325.000   89225.752327
     9.348e-04   2665.007 101325.000   89189.590232
     9.448e-04   2665.128 101325.000   89156.819367
     9.548e-04   2665.238 101325.000   89127.121755
     9.648e-04   2665.338 101325.000   89100.209230
     9.748e-04   2665.428 101325.000   89075.820637
     9.848e-04   2665.510 101325.000   89053.719303
     9.948e-04   2665.584 101325.000   89033.690744
     1.005e-03   2665.651 101325.000   89015.540585






|

.. code-block:: Python


    import sys

    import cantera as ct

    gas = ct.Solution('h2o2.yaml')
    gas.TPX = 1001.0, ct.one_atm, 'H2:2,O2:1,N2:4'
    r = ct.IdealGasConstPressureReactor(gas, clone=False)

    sim = ct.ReactorNet([r])
    sim.verbose = True

    # limit advance when temperature difference is exceeded
    delta_T_max = 20.
    r.set_advance_limit('temperature', delta_T_max)

    dt_max = 1.e-5
    t_end = 100 * dt_max
    states = ct.SolutionArray(gas, extra=['t'])

    print('{:10s} {:10s} {:10s} {:14s}'.format(
        't [s]', 'T [K]', 'P [Pa]', 'u [J/kg]'))
    while sim.time < t_end:
        sim.advance(sim.time + dt_max)
        states.append(r.phase.state, t=sim.time*1e3)
        print('{:10.3e} {:10.3f} {:10.3f} {:14.6f}'.format(
              sim.time, r.T, r.phase.P, r.phase.u))

    # Plot the results if matplotlib is installed.
    # See http://matplotlib.org/ to get it.
    if '--plot' in sys.argv[1:]:
        import matplotlib.pyplot as plt
        plt.clf()
        plt.subplot(2, 2, 1)
        plt.plot(states.t, states.T)
        plt.xlabel('Time (ms)')
        plt.ylabel('Temperature (K)')
        plt.subplot(2, 2, 2)
        plt.plot(states.t, states.X[:, gas.species_index('OH')])
        plt.xlabel('Time (ms)')
        plt.ylabel('OH Mole Fraction')
        plt.subplot(2, 2, 3)
        plt.plot(states.t, states.X[:, gas.species_index('H')])
        plt.xlabel('Time (ms)')
        plt.ylabel('H Mole Fraction')
        plt.subplot(2, 2, 4)
        plt.plot(states.t, states.X[:, gas.species_index('H2')])
        plt.xlabel('Time (ms)')
        plt.ylabel('H2 Mole Fraction')
        plt.tight_layout()
        plt.show()
    else:
        print("To view a plot of these results, run this script with the option --plot")


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 0.802 seconds)


.. _sphx_glr_download_examples_python_reactors_reactor1.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: reactor1.ipynb <reactor1.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: reactor1.py <reactor1.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: reactor1.zip <reactor1.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
