reaction
|
a.e,
a.m,
a.p,
a.s,
bail.c,
derivs.c,
errors,
extract.c,
extracter.c,
initial.c,
inlist.c,
lastchange,
makefile,
parse.c,
posting1,
rates.c,
reader.c,
readme,
reprint.c,
rxn.c,
rxn.h,
select.c,
setfiles.c,
wr_results.c,
wr_species.c,
|
|
|
From: whitbeck@wrc.unr.edu ()
Path: wrc.unr.edu!whitbeck
Newsgroups: sci.chem,sci.engr.chem
Subject: Chemical Kinetics Simulation- FREE
Expires:
References:
Sender:
Reply-To: whitbeck@wrc.unr.edu ()
Followup-To:
Distribution: world
Organization: DRI-WRC Reno
Keywords:
From: whitbeck@wrc.unr.edu ()
Path: wrc.unr.edu!whitbeck
Newsgroups: sci.chem,sci.engr.chem
Subject: Chemical Kinetics Simulation- FREE
Expires:
References:
Sender:
Reply-To: whitbeck@wrc.unr.edu ()
Followup-To:
Distribution: world
Organization: DRI-WRC Reno
Keywords:
A while back someone asked in sci.chem about chemical kinetics
simulation software.
At the time I offered a FORTRAN listing of a rather complete
program (easy input, simulation, sensitivity analysis, and least
squares fitting of the model to exptl data). However I got no
takers (the offer still stands!- send mail). Perhaps the problem
was that of typing in some 3000+ lines of FORTRAN from the listing?
Well I hacked out a simpler program that just does the simulation.
It is written in C for the Sun 3|4 computers (should port to other
platforms- I ported an intermediate version to GEMDOS (1040ST) with
no great difficulty).
The code uses lsoda as the core integrater = livermore solver
for ordinary differential equations, with automatic method switching
for stiff and nonstiff problems by Linda R. Petzold and Alan C.
Hindmarsh, computing and mathematics research division, l-316
lawrence livermore national laboratory (lsoda.f is available at
netlib@research.att.com, the C port was provided by Hon Wah Tam
Wolfram Research, Inc. tam@wri.com).
INPUT:
two files
root.m where root can be your choice of names
This file contains a reaction mechanism (free
format) like:
2.0 a -> b
0.15 b -> c
0.80 b + c -> d + d
the first field is a rate constant in 'F' or 'E' format (e.g. 1.00e-09)
then a list of reactants and products separated by '->' (required).
The specie names can be anything, eg CH3O2, NO2, PABA etc. There
are some restrictions on name lengths (10 chars) and some tokens
are 'special'.
root.p is a file containing the integration
parameters again in a free format. It looks like:
0.0 6 .1 1.0E-9
a 1.0 1.0e-10 1.0e-6
b 0.0 1.0e-10 1.0e-8
You simply provide (first line) starting time, stopping time,
output interval, and a solution tolerance value (a default value
for solution accuracy- to be explained in the package).
This line is followed by one or more lines to initialize specie
values (a,b,c,d in the example). No entry is required if the
initial value is zero and the default tolerance is acceptable.
Otherwise give the species name, starting value, absolute
tolerance, relative tolerance (explained in the package).
The program REACT sucks in these two files and spits out a file
named root.r (again root is from your input file name; i.e.
REACT A produces A.r from A.[m,p]). This file contains the answers!
To facilitate printing and plotting the package contains 3 post
processors:
SELECT reads root.e, a file containing the species to be printed.
if root.e contains the lines
a b d
c b
then a table is printed with the headings
TIME a b d
then a table is printed with the headings
TIME c b
a sample from the above example might be:
3 reacions involving 4 species
a b c d
time a b c
0.0000e+00 1.0000e+00 0.0000e+00 0.0000e+00
1.0000e-01 8.1873e-01 1.7987e-01 1.3925e-03
2.0000e-01 6.7032e-01 3.2439e-01 5.1475e-03
3.0000e-01 5.4881e-01 4.3989e-01 1.0669e-02
4.0000e-01 4.4933e-01 5.3151e-01 1.7433e-02
....
6.0000e+00 6.1442e-06 2.4471e-01 1.7167e-01
EXTRACT same as select but no table headings, useful with unix
tools like dm, awk, etc.
EXTRACTER dumps all the data (prints to stdout) in ASCII
starting with time.
A fifth file root.s contains the list of species that goes with
root.r so that root.m does not have to be reprocessed to make these
tables.
==================================================================
I have just finished this code and it may be a little rough around
the edges but I will place it on the net for free distribution and
use subject to the following:
a) there is interest (people want it, justifying the use of the
net)
b) a site can be found that offers either a mailserver or anonymous
FTP for distribution. I dont have anon ftp here (security
conscious!) and the source code is quite large (several hundred K,
3100+ lines of code!).
For those who want & use the code I ask that
1) you keep the original distribution intact and make it freely
available to those who ask for copies
2) if you commercialize it you charge only for the convience of
compiling it for a target machine and any post-processing software
you provide AND that you let me know (the profits are yours- maybe
you could provide a copy of the finished product gratis :-)
3) give credit where credit is due
4) mail diff files to me or a designated 'maintainer' to keep the
program in a defined state
5) change the name of any hacked over copy so as to not cause
confusion
===============================================================
WHY?
Why not?
Seriously, I am releasing the software so that it can be used in
teaching and research. If you put it to use please let me know.
If there are improvements that you need or make, please let me
know.
If someone hacks up a realtime or post- X11 graphics support I
would be especially greatfull!
An MSDOS port would be appreciated I'm sure (I may finish the 1040ST
port anyway which would be very similar).
DO YA WANT IT?
NO: do nothing
YES: send mail, if the mail bounces post to sci.engr.chem and I'll
look there (or sci.chem if you dont get sci.engr.chem)
I'll make a 'users' list. If the list is small I'll make
arrangements to get you copies of the code. If it is large I'll try
and find an ftp site to serve as its home. PLEASE MENTION IN YOUR
MAIL (a) do you have a unix box (BSD 4.3) or not, (b) can handle
unix compress, tar, uudecode or not, cat ftp to/from your site to
get the code or not, can act as a 'beta tester' (run some tought
problems thru it) or not.
PLEASE POST THIS WHERE ANY INTERESTED COLLEAGUES MAY SPOT IT!
___________________________________________________________
|Mike Whitbeck | whitbeck@unssun.unr.edu |
|Desert Research Inst. | whitbeck@wheeler.wrc.unr.edu |
|POB 60220 | whitbeck@sanjuan.UUCP |
|RENO, NV 89506 | 702-673-7348 |
|__________________________|______________________________|
All academics have the potential for being insatiable...
but the chemists are the most expensive and insatiable among the
expensive and insatiable. - J. Martin in "To Rise Above Principle"
|