Skip to content

Commit

Permalink
Add mole reactor science pages
Browse files Browse the repository at this point in the history
  • Loading branch information
anthony-walker authored and speth committed Aug 4, 2023
1 parent 875ef92 commit 21b3543
Show file tree
Hide file tree
Showing 5 changed files with 393 additions and 30 deletions.
69 changes: 69 additions & 0 deletions pages/science/reactors/constpresmolereactor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
.. title: Constant Pressure Reactor
.. has_math: true
.. jumbotron::

.. raw:: html

<h1 class="display-3">Constant Pressure Mole Reactor</h1>

.. class:: lead

This page shows the derivation of the governing equations used in
Cantera's Constant Pressure Mole Reactor model.

More information on the Constant Pressure Mole Reactor class can be found `here.
<{{% ct_docs doxygen/html/d5/d7d/classCantera_1_1ConstPressureMoleReactor.html %}}>`__

Constant Pressure Mole Reactor
******************************

For this reactor model, the pressure is held constant. The energy equation is
defined by the total enthalpy.

A Constant Pressure Reactor is defined by the two state variables:

- :math:`H`, the total enthalpy of the reactor's contents (in J)

- :math:`n_k`, the number of moles for each species (in kmol)

Using the definition of the total enthalpy:

.. math::
H = U + pV
\frac{d H}{d t} = \frac{d U}{d t} + p \frac{dV}{dt} + V \frac{dp}{dt}
Noting that :math:`dp/dt = 0` and substituting into the energy equation yields:

.. math::
\frac{dH}{dt} = \dot{Q} + \sum_{in} \dot{n}_{in} \bar{h}_{in}
- \bar{h} \sum_{out} \dot{n}_{out}
\tag{1}
Where the total specific enthalpy :math:`h` is defined as :math:`h = \sum_k{\bar{h}_k n_k}`.
The enthalpy terms in equation 2 appear due to enthalpy flowing in and out
of the reactor.
The rate of heat transfer :math:`\dot{Q}` can replace :math:`\frac{d U}{d t} + p \frac{dV}{dt}` in the above equation due to the first law
of thermodynamics, which states :math:`\dot{Q} = \dot{H}` in a closed system where
no work is done.
Positive :math:`\dot{Q}` represents heat addition to the system.

The moles of each species in the reactor's contents changes as a result of flow through
the reactor's inlets and outlets, and production of homogeneous gas phase species and reactions on the reactor :py:class:`Wall`.
The rate of moles of species :math:`k` generated through homogeneous phase
reactions is :math:`V \dot{\omega}_k`, and the total rate at which moles of species
:math:`k` is generated is:

.. math::
\frac{dn_k}{dt} = V \dot{\omega}_k + \sum_{in} \dot{n}_{in} - \sum_{out} \dot{n}_{out} + \dot{n}_{wall}
\tag{2}
Where the subscripts *in* and *out* refer to the sum of the superscripted property
over all inlets and outlets respectively. A dot above a variable signifies a time
derivative. Reactor *Walls* are defined `here. <{{% ct_docs sphinx/html/cython/zerodim.html#cantera.Wall %}}>`__

Equations 1-2 are the governing equations for a Constant Pressure Reactor.
62 changes: 62 additions & 0 deletions pages/science/reactors/idealgasconstpresmolereactor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
.. title: Ideal Gas Constant Pressure Mole Reactor
.. has_math: true
.. jumbotron::

.. raw:: html

<h1 class="display-3">Ideal Gas Constant Pressure
Mole Reactor</h1>

.. class:: lead

This page shows the derivation of the governing equations used in
Cantera's Ideal Gas Constant Pressure Mole Reactor model.

More information on the Ideal Gas Constant Pressure Mole Reactor class can
be found `here. <{{% ct_docs doxygen/html/de/daa/classCantera_1_1IdealGasConstPressureMoleReactor.html %}}>`__

Ideal Gas Constant Pressure Reactor
***********************************

An Ideal Gas Constant Pressure Mole Reactor is defined by the two state variables:

- :math:`T`, the temperature (in K)

- :math:`n_k`, the number of moles for each species (in kmol)

The energy equation in terms of temperature is necessary as we replaced enthalpy in the state vector with temperature.
We develop the equation for temperature by writing the total enthalpy in terms of the molar enthalpy and moles of each species.

.. math::
H = \sum_k \bar{h}_k(T) n_k(T)
\frac{dH}{dt} = \frac{dT}{dt}\sum_k n_k \bar{c_{p,k}} + \sum \bar{h}_k \dot{n}_k
After some manipulations yields an equation for the
temperature:

.. math::
\frac{dT}{dt} = \frac{\dot{Q} - \sum \bar{h}_k \dot{n}_k}{\sum_k n_k \bar{c}_{p,k} }
\tag{1}
The moles of each species in the reactor's contents changes as a result of flow through
the reactor's inlets and outlets, and production of homogeneous gas phase species and reactions on the reactor :py:class:`Wall`.
The rate of moles of species :math:`k` generated through homogeneous phase
reactions is :math:`V \dot{\omega}_k`, and the total rate at which moles of species
:math:`k` is generated is:

.. math::
\frac{dn_k}{dt} = V \dot{\omega}_k + \sum_{in} \dot{n}_{in} - \sum_{out} \dot{n}_{out} + \dot{n}_{wall}
\tag{2}
Where the subscripts *in* and *out* refer to the sum of the superscripted property
over all inlets and outlets respectively. A dot above a variable signifies a time
derivative. Reactor *Walls* are defined `here. <{{% ct_docs sphinx/html/cython/zerodim.html#cantera.Wall %}}>`__


Equations 1-2 are the governing equations for an Ideal Gas Constant Pressure
Reactor.
65 changes: 65 additions & 0 deletions pages/science/reactors/idealgasmolereactor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
.. title: Ideal Gas Mole Reactor
.. has_math: true
.. jumbotron::

.. raw:: html

<h1 class="display-3">Ideal Gas Mole Reactor</h1>
.. class:: lead

This page shows the derivation of the governing equations used in
Cantera's Ideal Gas Mole Reactor model.

More information on the Ideal Gas Mole Reactor class can be found `here.
<{{% ct_docs doxygen/html/d0/d03/classCantera_1_1IdealGasMoleReactor.html %}}>`__

Ideal Gas Mole Reactor
**********************

An Ideal Gas Mole Reactor is defined by the three state variables:

- :math:`T`, the temperature (in K)

- :math:`V`, the reactor volume (in m\ :sup:`3`)

- :math:`n_k`, the number of moles for each species (in kmol)

The energy equation in terms of temperature is necessary as we replaced internal energy in the state vector with temperature.
We develop the equation for temperature by writing the total enthalpy in terms of the molar enthalpy and moles of each species.

.. math::
U = \sum_k \bar{u}_k(T) n_k(T)
\frac{dU}{dt} = \frac{dT}{dt}\sum_k n_k \bar{c_{v,k}} + \sum \bar{u}_k \dot{n}_k
After some manipulations yields an equation for the
temperature:

.. math::
\frac{dT}{dt} = \frac{\dot{Q} - \sum \bar{u}_k \dot{n}_k}{\sum_k n_k \bar{c}_{p,k} }
\tag{1}
The reactor volume changes as a function of time due to the motion of one or
more walls:

.. math::
\frac{dV}{dt} = \sum_w f_w A_w v_w(t)
\tag{2}
Where :math:`f_w = \pm 1` indicates the facing of the wall (whether moving the wall increases or decreases the volume of the reactor), :math:`A_w` is the surface area of the wall, and :math:`v_w(t)` is the velocity of the wall as a function of time.

Finally, the moles of each species in the reactor's contents changes as a result of flow through the reactor's inlets and outlets, and production of homogeneous gas phase species and reactions on the reactor :py:class:`Wall`.
The rate of moles of species :math:`k` generated through homogeneous phase
reactions is :math:`V \dot{\omega}_k`, and the total rate at which moles of species
:math:`k` is generated is:

.. math::
\frac{dn_k}{dt} = V \dot{\omega}_k + \sum_{in} \dot{n}_{in} - \sum_{out} \dot{n}_{out} + \dot{n}_{wall}
\tag{3}
Equations 1-3 are the governing equations for an Ideal Gas Mole Reactor.
73 changes: 73 additions & 0 deletions pages/science/reactors/molereactor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
.. title: Mole Reactor
.. has_math: true
.. jumbotron::

.. raw:: html

<h1 class="display-3">Mole Reactor</h1>

.. class:: lead

This page shows the derivation of the governing equations used in
Cantera's Mole Reactor model.

More information on the Mole Reactor class can be found `here.
<{{% ct_docs doxygen/html/da/d29/classCantera_1_1MoleReactor.html %}}>`__

Mole Reactor
************

A homogeneous zero-dimensional reactor. By default, they are closed (no inlets or outlets),
have fixed volume, and have adiabatic, chemically-inert walls. These properties may all be
changed by adding appropriate components such as :py:class:`Wall`, :py:class:`MassFlowController`
and :py:class:`Valve`.

A Mole Reactor is defined by the three state variables:

- :math:`U`, the total internal energy of the reactors contents (in J)

- :math:`V`, the reactor volume (in m\ :sup:`3`)

- :math:`n_k`, the number of moles for each species (in kmol)

The equation for the total internal energy is found by writing the first law
for an open system:

.. math::
\frac{dU}{dt} = - p \frac{dV}{dt} + \dot{Q} +
\sum_{in} \dot{n}_{in} \bar{h}_{in} - \bar{h} \sum_{out} \dot{n}_{out}
\tag{3}
Where :math:`\dot{Q}` is the net rate of heat addition to the system.

The reactor volume changes as a function of time due to the motion of one or
more walls:

.. math::
\frac{dV}{dt} = \sum_w f_w A_w v_w(t)
\tag{2}
where :math:`f_w = \pm 1` indicates the facing of the wall (whether moving the wall increases or
decreases the volume of the reactor), :math:`A_w` is the
surface area of the wall, and :math:`v_w(t)` is the velocity of the wall as a
function of time.

The moles of each species in the reactor's contents changes as a result of flow through
the reactor's inlets and outlets, and production of homogeneous gas phase species and reactions on the reactor :py:class:`Wall`.
The rate of moles of species :math:`k` generated through homogeneous phase
reactions is :math:`V \dot{\omega}_k`, and the total rate at which moles of species
:math:`k` is generated is:

.. math::
\frac{dn_k}{dt} = V \dot{\omega}_k + \sum_{in} \dot{n}_{in} - \sum_{out} \dot{n}_{out} + \dot{n}_{wall}
\tag{3}
Where the subscripts *in* and *out* refer to the sum of the superscripted property
over all inlets and outlets respectively. A dot above a variable signifies a time
derivative. Reactor *Walls* are defined `here. <{{% ct_docs sphinx/html/cython/zerodim.html#cantera.Wall %}}>`__

Equations 1-3 are the governing equations for a Mole Reactor.
Loading

0 comments on commit 21b3543

Please sign in to comment.