Henfald til ligevægt

Simpelt eksempel på brug af chem


Idéen med dette eksempel er at vise hvordan chem bruges ved at integrere et simpelt reaktionssystem hvor man på forhånd ved hvad der vil ske. Det er selvfølgelig lidt kedeligt, men det giver mulighed for at ændre på inputfilen til chem og se hvilken effekt ændringerne har.

Du skal bruge to filer: inputfilen ligevaegt.des og gnuplotkommandofilen ligevaegt.gnu. (Gnuplotkommandofilen er lidt indviklet, og det er ikke menigen at man skal sætte sig ind i hvordan den fungerer.)

Gem de to filer i det katalog, hvor du arbejder med chemeksemplerne, og åben inputfilen til chem i en editor. Kig filen igennem og se hvordan den virker. Prøv derefter at lade chem køre filen:

> chem ligevaegt.des

Det skulle gerne give følgende output:

CHEMD v.1.00  Copyright(C): 2000 Preben Graae Sørensen
REACTION PARSING OK
END OF COMPILATION
START RUN
DATAFILE: chemdat
END RUN
>

Chem har nu læst inputfilen, skrevet et c-program der kan integrere de kemiske ligninger, kompileret dette program og til sidst kørt det. Dette har resulteret i en række filer:

chem.err    Her ender evt. fejludskrifter fra chem.
chem.log    Chems logfil. Her kan man i detaljer se hvordan inputfilen er blevet fortolket.
chem.mat    Hvis chem bruger Mathematica sker kaldet via denne fil. Når man bruger chemd er den altid tom.
chemc      Dette er det færdige c-program til integration af de kemiske differentialligninger.
chemc.c     Kildekoden til c-programmet chemc.
chemc.o     En objektfil der laves for at kunne kompilere det færdige program.
chemdat     Datafil med resultaterne af integrationen.

Normalt er det kun den sidste af disse filer der er interessant. Prøv at åbne den og se på dens indhold.

> emacs chemdat &

Første linie er en kommentar (der ikke læses af gnuplot):

# time  A  B  C

Den fortæller os, at første kolonne i datafilen er tiden, anden kolonne er koncentrationen af A, tredie kolonne er koncentrationen af B og fjerde kolonne er koncentrationen af C. Med gnuplots nøgleord "using" kan man nemt plotte indholdet af datafilen. F.eks. vil følgende kommandoer starte gnuplot og plotte [B] som funktion af tiden:

> gnuplot
gnuplot> plot 'chemdat' using 1:3 title '[B]' with lines

Til dette eksempel er der lavet en gnuplotkommandofil til at plotte resultaterne fra chem sammen med de forventede ligevægtsværdier for systemet. Den kræver at man først definerer kf og kr i gnuplot:

gnuplot> kf = 0.01
gnuplot> kr = 0.02

Når dette er gjort køres gnuplotkommandofilen med kommandoen

gnuplot> load 'ligevaegt.gnu'

Prøv nu at ændre på startkoncentrationerne og på hastighedskonstanterne i chems inputfil, og se at det giver fornuftige resultater. Husk at gemme den rettede inputfil inden du kører chem igen! Husk også at du skal ændre værdierne af kf og kr i gnuplot hvis du ændrer dem i chems inputfil.

Når du er fortrolig med chem, så skynd dig videre med et af de andre eksempler. Der er betydeligt mere kemi i dem.
 

Tips: du kan køre chem inde fra gnuplot med kommandoen

gnuplot> !chem ligevaegt.des

Tilsvarende kan du åbne emacs uden at forlade gnuplot:

gnuplot> ! emacs &

eller

gnuplot> ! emacs ligevaegt.des &