
: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/kinetics/reaction_path.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_kinetics_reaction_path.py>`
        to download the full example code.

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

.. _sphx_glr_examples_python_kinetics_reaction_path.py:


Viewing a reaction path diagram
===============================

This script uses Graphviz to generate an image. You must have Graphviz installed
and the program 'dot' must be on your path for this example to work.
Graphviz can be obtained from https://www.graphviz.org/ or (possibly) installed
using your operating system's package manager.

Requires: cantera >= 2.5.0, graphviz

.. tags:: Python, kinetics, reaction path analysis, pollutant formation

.. GENERATED FROM PYTHON SOURCE LINES 14-21

.. code-block:: Python


    from subprocess import run
    from pathlib import Path
    import graphviz

    import cantera as ct








.. GENERATED FROM PYTHON SOURCE LINES 22-27

Generate a Solution with a state where reactions are occurring
--------------------------------------------------------------

these lines can be replaced by any commands that generate
an object of a class derived from class Kinetics in some state.

.. GENERATED FROM PYTHON SOURCE LINES 27-36

.. code-block:: Python

    gas = ct.Solution('gri30.yaml')
    gas.TPX = 1300.0, ct.one_atm, 'CH4:0.4, O2:1, N2:3.76'
    r = ct.IdealGasReactor(gas, clone=False)
    net = ct.ReactorNet([r])
    T = r.T
    while T < 1900:
        net.step()
        T = r.T








.. GENERATED FROM PYTHON SOURCE LINES 37-39

Create a reaction path diagram following nitrogen
-------------------------------------------------

.. GENERATED FROM PYTHON SOURCE LINES 39-45

.. code-block:: Python

    element = 'N'

    diagram = ct.ReactionPathDiagram(gas, element)
    diagram.title = 'Reaction path diagram following {0}'.format(element)
    diagram.label_threshold = 0.01








.. GENERATED FROM PYTHON SOURCE LINES 46-48

Save the reaction path diagram
------------------------------

.. GENERATED FROM PYTHON SOURCE LINES 48-60

.. code-block:: Python

    dot_file = 'rxnpath.dot'
    img_file = 'rxnpath.png'
    img_path = Path.cwd().joinpath(img_file)

    diagram.write_dot(dot_file)
    print(diagram.get_data())

    print(f"Wrote graphviz input file to '{Path.cwd().joinpath(dot_file)}'.")

    run(f"dot {dot_file} -Tpng -o{img_file} -Gdpi=200".split())
    print(f"Wrote graphviz output file to '{img_path}'.")





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

 .. code-block:: none

    Reaction path diagram following N
    N N2 NO N2O NO2 NH HNO NH2 NNH CN NCO HCN HOCN HNCO H2CN HCNN HCNO NH3 
    N N2 1.13936e-09 -0.000533845
    N NO 0.000300184 -1.03679e-07
    N N2O 0 -0
    N NO2 0 -0
    N NH 4.09149e-06 -4.41285e-06
    N HNO 0 -0
    N NH2 0 -0
    N NNH 0 -0
    N CN 1.20328e-11 -1.56655e-07
    N NCO 1.11076e-08 -2.05062e-08
    N HCN 3.23962e-05 -5.08445e-16
    N HOCN 0 -0
    N HNCO 0 -0
    N H2CN 0.000149781 -3.54455e-10
    N HCNN 0 -0
    N HCNO 0 -0
    N NH3 0 -0
    N2 NO 5.70414e-06 -1.10823e-09
    N2 N2O 0.000145692 -3.72942e-05
    N2 NO2 0 -0
    N2 NH 9.40813e-08 -3.06047e-11
    N2 HNO 0 -0
    N2 NH2 0 -0
    N2 NNH 0.0276952 -0.0276657
    N2 CN 3.9784e-07 -1.36928e-12
    N2 NCO 2.92555e-13 -1.53055e-11
    N2 HCN 0.000527769 -1.04096e-11
    N2 HOCN 0 -0
    N2 HNCO 0 -0
    N2 H2CN 6.80155e-08 -2.26583e-11
    N2 HCNN 0.000461522 -0.000454416
    N2 HCNO 0 -0
    N2 NH3 0 -0
    NO N2O 7.38215e-11 -2.93791e-06
    NO NO2 4.49876e-06 -3.89249e-06
    NO NH 1.20808e-11 -2.41276e-06
    NO HNO 2.50109e-07 -6.57311e-06
    NO NH2 0 -0
    NO NNH 8.37192e-12 -6.178e-06
    NO CN 2.03722e-09 -3.68224e-11
    NO NCO 6.43101e-08 -9.29643e-07
    NO HCN 1.55513e-06 -1.72476e-11
    NO HOCN 0 -0
    NO HNCO 1.66291e-06 -3.37352e-15
    NO H2CN 7.1672e-08 -2.22251e-09
    NO HCNN 1.15827e-22 -4.63241e-08
    NO HCNO 2.32859e-06 -1.8529e-08
    NO NH3 0 -0
    N2O NO2 5.81137e-16 -8.92135e-14
    N2O NH 2.66741e-06 -6.62946e-11
    N2O HNO 0 -0
    N2O NH2 0 -0
    N2O NNH 0 -0
    N2O CN 0 -0
    N2O NCO 1.15901e-09 -7.61604e-12
    N2O HCN 0 -0
    N2O HOCN 0 -0
    N2O HNCO 0 -0
    N2O H2CN 0 -0
    N2O HCNN 0 -0
    N2O HCNO 0 -0
    N2O NH3 0 -0
    NO2 NH 0 -0
    NO2 HNO 0 -0
    NO2 NH2 0 -0
    NO2 NNH 0 -0
    NO2 CN 0 -0
    NO2 NCO 0 -0
    NO2 HCN 0 -0
    NO2 HOCN 0 -0
    NO2 HNCO 0 -0
    NO2 H2CN 0 -0
    NO2 HCNN 0 -0
    NO2 HCNO 0 -0
    NO2 NH3 0 -0
    NH HNO 8.43733e-06 -1.23156e-06
    NH NH2 9.64056e-07 -2.72002e-07
    NH NNH 8.37192e-12 -6.178e-06
    NH CN 0 -0
    NH NCO 1.69869e-08 -4.43863e-06
    NH HCN 1.08881e-10 -2.6395e-06
    NH HOCN 0 -0
    NH HNCO 7.78427e-09 -1.6655e-08
    NH H2CN 0 -0
    NH HCNN 0 -0
    NH HCNO 0 -0
    NH NH3 0 -0
    HNO NH2 4.97662e-09 -1.43104e-07
    HNO NNH 0 -0
    HNO CN 0 -0
    HNO NCO 0 -0
    HNO HCN 0 -0
    HNO HOCN 0 -0
    HNO HNCO 1.0528e-14 -7.00236e-12
    HNO H2CN 0 -0
    HNO HCNN 0 -0
    HNO HCNO 0 -0
    HNO NH3 0 -0
    NH2 NNH 0 -0
    NH2 CN 0 -0
    NH2 NCO 0 -0
    NH2 HCN 3.94178e-12 -4.62021e-08
    NH2 HOCN 0 -0
    NH2 HNCO 1.528e-08 -3.64735e-07
    NH2 H2CN 0 -0
    NH2 HCNN 0 -0
    NH2 HCNO 2.46016e-17 -9.50615e-09
    NH2 NH3 4.18521e-07 -8.15328e-08
    NNH CN 0 -0
    NNH NCO 0 -0
    NNH HCN 0 -0
    NNH HOCN 0 -0
    NNH HNCO 0 -0
    NNH H2CN 0 -0
    NNH HCNN 0 -0
    NNH HCNO 0 -0
    NNH NH3 0 -0
    CN NCO 5.18278e-06 -5.04132e-08
    CN HCN 3.08616e-06 -8.53235e-06
    CN HOCN 0 -0
    CN HNCO 0 -0
    CN H2CN 0 -0
    CN HCNN 0 -0
    CN HCNO 0 -0
    CN NH3 0 -0
    NCO HCN 1.13913e-07 -1.05684e-05
    NCO HOCN 0 -0
    NCO HNCO 4.94644e-06 -2.06259e-07
    NCO H2CN 0 -0
    NCO HCNN 0 -0
    NCO HCNO 0 -0
    NCO NH3 0 -0
    HCN HOCN 1.82786e-06 -3.74429e-07
    HCN HNCO 2.62298e-07 -5.17614e-10
    HCN H2CN 1.0752e-07 -0.000146264
    HCN HCNN 1.15827e-22 -4.63241e-08
    HCN HCNO 6.29685e-13 -2.07585e-08
    HCN NH3 0 -0
    HOCN HNCO 5.82964e-07 -5.61599e-09
    HOCN H2CN 0 -0
    HOCN HCNN 0 -0
    HOCN HCNO 0 -0
    HOCN NH3 0 -0
    HNCO H2CN 0 -0
    HNCO HCNN 0 -0
    HNCO HCNO 1.11756e-14 -1.86695e-07
    HNCO NH3 0 -0
    H2CN HCNN 0 -0
    H2CN HCNO 0 -0
    H2CN NH3 0 -0
    HCNN HCNO 0 -0
    HCNN NH3 0 -0
    HCNO NH3 0 -0

    Wrote graphviz input file to '/var/no-tmpfs/portage/sci-libs/cantera-3.2.0-r100/work/cantera-3.2.0/build/doc/samples/python/kinetics/rxnpath.dot'.
    Wrote graphviz output file to '/var/no-tmpfs/portage/sci-libs/cantera-3.2.0-r100/work/cantera-3.2.0/build/doc/samples/python/kinetics/rxnpath.png'.




.. GENERATED FROM PYTHON SOURCE LINES 61-63

View the reaction path diagram
------------------------------

.. GENERATED FROM PYTHON SOURCE LINES 63-64

.. code-block:: Python

    graphviz.Source(diagram.get_dot())



.. image-sg:: /examples/python/kinetics/images/sphx_glr_reaction_path_001.svg
   :alt: reaction path
   :srcset: /examples/python/kinetics/images/sphx_glr_reaction_path_001.svg
   :class: sphx-glr-single-img






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

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


.. _sphx_glr_download_examples_python_kinetics_reaction_path.py:

.. only:: html

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

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

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

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

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

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

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


.. only:: html

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

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