Software for integrating ODEs

From Introduction to Reactor Design: 3K4
Revision as of 20:28, 22 February 2013 by Kevin Dunn (talk | contribs)
Jump to navigation Jump to search

Example

Consider the pair of differential equations (covered in a class on 11 February):

<rst> <rst-options: 'toc' = False/> <rst-options: 'reset-figures' = False/> .. math::

\dfrac{dX}{dW} &= \dfrac{-r_A'}{F_{A0}} \ \dfrac{dy}{dW} &= -\dfrac{\alpha}{2y}\left(1 + \varepsilon X\right)

Some terminology (recap from your pre-requisite math courses)

* The independent variable is W * The two dependent variables (variables being integrated with respect to the independent variable) are X and y

Since there are two dependent variables, we require initial conditions for each variable. In this case:

* :math:`X(0) = 0.0` * :math:`y(0) = 1.0`

We also need to specify initial **and final conditions** for the independent variable:

* :math:`W` initially is 0.0 at the reactor entrance * :math:`W` finally is 20.0 kg at the reactor exit

But there are a few other unknowns we must first specify:

* :math:`r_A' = -k' \dfrac{(1-X)y}{(1+\varepsilon*X)}` * :math:`q = \dfrac{(1 + \varepsilon X)}{y}` * :math:`F_{A0} = 0.1362\,\text{mol.s}^{-1}` * :math:`k' = 0.0074\,\text{mol.s}^{-1}\text{.(kg catalyst)}^{-1}` * :math:`\alpha = 0.0367\,\text{kg}^{-1}` * :math:`\varepsilon = -0.15` </rst>

Polymath

Download and install Polymath from the CD/DVD included with your course textbook (Windows only; sorry Mac and Linux versions are not available).

Enter the following Polymath code (as demonstrated in class on 11 February. Check the video out for a detailed explanation of the code.

# Differential equations

d(y) / d(W) = -alpha/(2*y) * (1+eps*X) 
y(0) = 1.0
d(X) / d(W) = -rAdash / FA0 
X(0) = 0


# Constants
FA0   = 0.1362  # [mol/s]
kdash = 0.0074  # [mol/(kg catalyst . s)]
alpha = 0.0367  # [1/kg]
eps   = -0.15   # [-]

# Algebraic equations
rAdash = -kdash * (1-X)/(1+eps*X) * y
flow_ratio = (1 + eps*X)/y

# Initial and final values for independent variable:
W(0) = 0
W(f) = 20

Python

Mac computers

  • Start the built-in Mac program called Terminal
  • Type the following commands:
# first install "easy install" 
sudo easy_install ipython
sudo easy_install readline
sudo easy_install numpy
# Download and install "gfortran-4.2.3.dmg"
sudo easy_install scipy
ipython

and you should some something like:

Kevins-MacBook-Pro:~ kevin$ ipython
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: