Chem er et program til integration af kemiske hastighedsudtryk.
Det vil sige, at programmet udregner hvordan et kemisk system vil udvikle
sig i tiden ud fra de differentialligninger, som man har valgt at beskrive
systemet med og de begyndelsesbetingelser man har angivet. Når programmet
køres læser ("parser") det først en tekstfil, der beskriver
reaktionssystemet. Ud fra dette genereres et c-program, der efterfølgende
integrerer systemet og skriver resultaterne ned i en tekstfil.
I praksis laver man først tekstfilen der beskriver ens reaktionssystem med emacs (eller en anden editor). Den kunne f.eks. hedde "reaktionssystem.des". Herefter køres chem med denne fil som input. I vores eksempel ville det se sådan ud:
> chem reaktionssystem.des
CHEMD v.e1.00 Copyright(C): 2001 Preben Graae Sørensen
REACTION PARSING OK
END OF COMPILATION
START RUN
DATAFILE: chemdat
END RUN
>
Resultaterne af den numeriske integration findes nu i tekstfilen "chemdat" som f.eks. kan plottes med gnuplot. Mere information om hvordan chem virker findes her.
Hjælp: Chem vil ikke starte, "command not found".
1:
A -> B;
v> = k1*[A];
2: X
+ 2Y -> 2Z;
v> = k*[X]*[Y]**2;
3: X
+ 2Y -> 2Z;
k> = k;
4: S1 + S2
<=> P1 + P2; k> = k4f; k< = k4r;
MM:
S -> P;
v> = Vmax*[S]/(Km + [S]);
[AMP] = Atotal - [ATP] - [ADP];
På samme måde kan man angive en formel for en parameter, således at denne løbende udregnes:
energycharge = ([ATP] + 0.5*[ADP])/([ATP]
+ [ADP] + [AMP]);
1) hjælpeparametreDe enkelte elementer gennemgåes i detaljer herunder.
2) parameterdefinitioner
3) reaktionsbeskrivelser
4) støkiometriske bånd
5) begyndelseskoncentrationer
datafile = "filename";
Angiver navnet på outputfilen. Hvis denne hjælpeparameter
ikke angives placeres chems output i filen "chemdat".
stime = 0;
Starttid for integrationen. Hvis intet angives sættes stime
til nul.
dtime = 0.1;
Tidsskridt for udskrift til outputfilen. Bestemmer udelukkende hvor
ofte der skrives ud, og har ingen indflydelse på integrationens tidsskridt.
Hvis intet angives sættes dtime
til en.
etime = 400;
Sluttidspunkt for integrationen. Bestemmer hvor længe der skal
integreres. Hvis intet angives integreres til tiden 10.
epsr = 1.0E-10;
Ønsket relativ nøjagtighed af integrationen. Se Numerical
Recipes for detaljer.Kan udelades.
epsa = 1.0E-18;
Ønsket absolut nøjagtighed af integrationen. Se Numerical
Recipes for detaljer.Kan udelades.
modestiff = 1;
Angiver hvilken integrationsmetode der skal anvendes. Kan udelades.
(1: BDF til stive systemer . 0: ADAMS til systemer der ikke er stive. Hvis
intet angives bruges "modestiff = 1;".)
T = 273.15;
k1 = 7.9E13;
Man kan også angive en liste af parameterværdier. Systemet integreres så en gang med hver parameterværdi i listen. Alt output placeres i den samme outputfil, hvor de forskellige kørsler er adskildt af to blanke linier. Dette betyder, at man kan plotte resultaterne af de enkelte kørsler hver for sig ved hjælp af gnuplots plottefunktions nøgleord "index". Parameterlisten kan angives på to måder. Enten angives alle de ønskede parameterværdier efter hinanden adskildt af komma:
T = 268.15, 273.15, 278.15, 283.15;
eller også angives et interval af parameterværdier på formen startværdi : slutværdi : skridtlængde. F.eks. har
T = 268.15 : 283.15 : 5;
den samme virkning som den foregående parametertildeling.
x' = 1.23*x*y;
[A](0) = 2.5E-3;
Hvis man ikke angiver en begyndelsesværdi for en variabel sættes dens startværdi til nul. Man kan ikke direkte lave en liste af begyndelseskoncentrationer, men det kan gøres indirekte ved at sætte en begyndelsesværdi lig med en parameter, som så kan varieres.