Difference between revisions of "Software for integrating ODEs"
Kevin Dunn (talk | contribs) m |
Kevin Dunn (talk | contribs) m |
||
Line 1: | Line 1: | ||
== Example == | == Example == | ||
Consider the pair of differential equations (covered in a class on [[Isothermal_reactor_design_-_2013|11 February]]: | Consider the pair of differential equations (covered in a class on [[Isothermal_reactor_design_-_2013|11 February]]): | ||
<rst> | <rst> | ||
<rst-options: 'toc' = False/> | |||
<rst-options: 'reset-figures' = False/> | |||
.. math:: | .. math:: | ||
Line 26: | Line 28: | ||
* :math:`r_A' = -k' \dfrac{(1-X)y}{(1+\varepsilon*X)}` | * :math:`r_A' = -k' \dfrac{(1-X)y}{(1+\varepsilon*X)}` | ||
* :math:`q = \dfrac{(1 + \varepsilon | * :math:`q = \dfrac{(1 + \varepsilon X)}{y}` | ||
* :math:`F_{A0} = 0.1362\,\text{mol.s}^{-1}` | * :math:`F_{A0} = 0.1362\,\text{mol.s}^{-1}` | ||
* :math:`k' = 0.0074\,\text{mol.s}^{-1}\text{.(kg catalyst)}^{-1}` | * :math:`k' = 0.0074\,\text{mol.s}^{-1}\text{.(kg catalyst)}^{-1}` | ||
* :math:`\alpha = 0.0367\,\text{kg}^{-1}` | * :math:`\alpha = 0.0367\,\text{kg}^{-1}` | ||
* :math:`\varepsilon = -0.15` | * :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 [[Isothermal_reactor_design_-_2013|11 February]]. Check the video out for a detailed explanation of the code. | |||
<syntaxhighlight lang="text"> | |||
# 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 | |||
</syntaxhighlight> | |||
== Python == | == Python == |
Revision as of 20:28, 22 February 2013
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
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]: