Flow123d  jenkins-Flow123d-windows32-release-multijob-51
che_read.cc
Go to the documentation of this file.
1 #include "che_semchem.h"
2 #include "io/read_ini.h"
3 #include <cstring>
4 
5 extern struct TS_prm G_prm;
6 extern struct TS_lat *P_lat;
7 extern struct TS_che *P_che;
8 
9 // Cte CHEMIE-OBECNE ze souboru parametru .ich
10 void ctiich_obecne( void )
11 {
12  int i;
13  const char *section = "Semchem_module";
14  char buffer[ 1024 ];
15  char *pString;
16 
17  G_prm.pocet_latekvefazi = OptGetInt("Transport", "N_substances", NULL );
18  if (G_prm.pocet_latekvefazi < 1){
19  printf("\nNumber of aqueous species must be higher then 1.");
20  exit(133);
21  }
22 /*------------------------------------------------------------------*/
23  G_prm.T = OptGetDbl(section,"Temperature","0.0");
24  if ( G_prm.T <= 0.0 )
25  {
26  printf("\nTeplota musi byt kladna!");
27  exit(133);
28  }
29 /*------------------------------------------------------------------*/
30  G_prm.TGf = OptGetDbl(section,"Temperature_Gf","-1.0");
31  if ( G_prm.TGf == -1.0 )
32  {
33  G_prm.TGf = G_prm.T;
34  }
35  if ( G_prm.T <= 0.0 )
36  {
37  printf("\nTeplota pro zadani dGf musi byt kladna!");
38  exit(133);
39  }
40 /*------------------------------------------------------------------*/
41  G_prm.epsilon = OptGetDbl(section,"Epsilon","0.0");
42  if ( G_prm.epsilon<= 0.0 )
43  {
44  printf("\nEpsilon musi byt kladne!");
45  exit(133);
46  }
47 /*------------------------------------------------------------------*/
48  pString = strcpy(buffer,OptGetStr(section, "Error_norm_type", "Absolute"));
49  if ( pString == NULL )
50  {
51  printf("\nChybi typ normy!");
52  exit(133);
53  }
54  G_prm.abs_norma = -1;
55  if ( strcmp( buffer, "relative" ) == 0 ) G_prm.abs_norma = 0;
56  if ( strcmp( buffer, "Relative" ) == 0 ) G_prm.abs_norma = 0;
57  if ( strcmp( buffer, "rel" ) == 0 ) G_prm.abs_norma = 0;
58  if ( strcmp( buffer, "Rel" ) == 0 ) G_prm.abs_norma = 0;
59  if ( strcmp( buffer, "r" ) == 0 ) G_prm.abs_norma = 0;
60  if ( strcmp( buffer, "R" ) == 0 ) G_prm.abs_norma = 0;
61  if ( strcmp( buffer, "0" ) == 0 ) G_prm.abs_norma = 0;
62  if ( strcmp( buffer, "absolute" ) == 0 ) G_prm.abs_norma = 1;
63  if ( strcmp( buffer, "Absolute" ) == 0 ) G_prm.abs_norma = 1;
64  if ( strcmp( buffer, "abs" ) == 0 ) G_prm.abs_norma = 1;
65  if ( strcmp( buffer, "Abs" ) == 0 ) G_prm.abs_norma = 1;
66  if ( strcmp( buffer, "a" ) == 0 ) G_prm.abs_norma = 1;
67  if ( strcmp( buffer, "A" ) == 0 ) G_prm.abs_norma = 1;
68  if ( strcmp( buffer, "1" ) == 0 ) G_prm.abs_norma = 1;
69  if (G_prm.abs_norma == -1)
70  {
71  printf("\nTyp normy neni platny!");
72  exit(133);
73  }
74  G_prm.omega = 1.0;
75 /*------------------------------------------------------------------*/
76  pString = strcpy(buffer,OptGetStr(section,"Scaling","No"));
77  if ( pString == NULL )
78  {
79  printf("\nChybi definice skalovani!");
80  exit(133);
81  }
82  G_prm.skaluj_matici = -1;
83  if ( strcmp( buffer, "N" ) == 0 ) G_prm.skaluj_matici = 0;
84  if ( strcmp( buffer, "Ne" ) == 0 ) G_prm.skaluj_matici = 0;
85  if ( strcmp( buffer, "No" ) == 0 ) G_prm.skaluj_matici = 0;
86  if ( strcmp( buffer, "0" ) == 0 ) G_prm.skaluj_matici = 0;
87  if ( strcmp( buffer, "A" ) == 0 ) G_prm.skaluj_matici = 1;
88  if ( strcmp( buffer, "Ano" ) == 0 ) G_prm.skaluj_matici = 1;
89  if ( strcmp( buffer, "Y" ) == 0 ) G_prm.skaluj_matici = 1;
90  if ( strcmp( buffer, "Yes" ) == 0 ) G_prm.skaluj_matici = 1;
91  if ( strcmp( buffer, "1" ) == 0 ) G_prm.skaluj_matici = 1;
92  if (G_prm.skaluj_matici == -1)
93  {
94  printf("\nSkalovani matice neni platne!");
95  exit(133);
96  }
97 /*-----------------------------------------------*/
98  G_prm.Afi = OptGetDbl(section,"Param_Afi","-1.0");
99  if ( G_prm.Afi < 0.0 )
100  {
101  printf("\nAfi musi byt nezaporne!");
102  exit(133);
103  }
104 /*------------------------------------------------------------------*/
105  G_prm.b = OptGetDbl(section,"Param_b","0.0");
106  if ( G_prm.b <= 0.0 )
107  {
108  printf("\nb musi byt kladne!");
109  exit(133);
110  }
111 /*------------------------------------------------------------------*/
112  G_prm.cas_kroku = OptGetInt(section,"Time_steps","0");
113  if ( G_prm.cas_kroku <= 0 )
114  {
115  printf("\nPocet casovych kroku musi byt kladny!");
116  exit(133);
117  }
118 /*------------------------------------------------------------------*/
119  G_prm.vypisy = OptGetInt(section,"Output_precission","0");
120 /*------------------------------------------------------------------*/
121  i = OptGetInt(section, "Number_of_further_species","0");
122  if ( i < 0 )
123  {
124  printf("\nPocet dalsich latek nesmi byt zaporny!");
125  exit(133);
126  }
129  {
130  printf ("Celkovy pocet latek muze byt maximalne %d!\n", MAX_POC_LATEK);
131  exit(121);
132  }
133 /*------------------------------------------------------------------*/
134  G_prm.deleni_RK = OptGetInt(section,"Slow_kinetics_substeps","1");
135  if ( G_prm.deleni_RK < 1 )
136  {
137  printf("\nPocet kroku pomale kinetiky musi byt kladny!");
138  exit(133);
139  }
140 }
141 /********************************************************************/
142 /* Cte LATKY_VE_FAZI ze souboru parametru .ich */
143 /********************************************************************/
144 void ctiich_latkyvefazi( void )
145 {
146  char buffer[1024];
147  int j;
148  char nazev[30], *pom_buf;
149  const char *separators = " ,\t";
150 
151 // Alokace seznamu latek
152  P_lat = (TS_lat *)malloc( (G_prm.pocet_latek)*sizeof( TS_lat ) );
153  if ( P_lat == NULL )
154  {
155  printf ("Malo pameti!\n");
156  exit(0);
157  }
158 // Nacteni obsahu seznamu latek
159 /*-----------------------------------------------*/
160  sprintf( nazev, "Aqueous_species" );
161  {
162  for (j=0; j<G_prm.pocet_latekvefazi; j++)
163  {
164  strcpy(P_lat[j].nazev,"");
165  }
166  }
167 /*-----------------------------------------------*/
168  strcpy(buffer,OptGetStr(nazev,"dGf","<NeplatnyNazev>"));
169  pom_buf = strtok( buffer, separators );
170  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
171  {
172  pom_buf = NULL;
173  }
174  for (j=0; j<G_prm.pocet_latekvefazi; j++)
175  {
176  if ( pom_buf == NULL )
177  {
178  printf("\nChybi dGf %d. latky ve fazi!", j+1);
179  exit(133);
180  }
181  P_lat[j].dGf = atof(pom_buf);
182  printf("\n P_lat[%d].dGf %f\n",j,P_lat[j].dGf);
183  pom_buf = strtok( NULL, separators );
184  }
185  if ( pom_buf != NULL )
186  {
187  printf("\nPrilis mnoho dGf pro latky ve fazi!");
188  exit(133);
189  }
190 /*-----------------------------------------------*/
191  strcpy(buffer,OptGetStr(nazev,"dHf","<NeplatnyNazev>"));
192  pom_buf = strtok( buffer, separators );
193  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
194  {
195  for (j=0; j<G_prm.pocet_latekvefazi; j++)
196  {
197  P_lat[j].dHf = 0.0;
198  }
199  pom_buf = NULL;
200  }
201  else for (j=0; j<G_prm.pocet_latekvefazi; j++)
202  {
203  if ( pom_buf == NULL )
204  {
205  printf("\nChybi dHf %d. latky ve fazi!", j+1);
206  exit(133);
207  }
208  P_lat[j].dHf = atof(pom_buf);
209  pom_buf = strtok( NULL, separators );
210  }
211  if ( pom_buf != NULL )
212  {
213  printf("\nPrilis mnoho dHf pro latky ve fazi!");
214  exit(133);
215  }
216 /*-----------------------------------------------*/
217  strcpy(buffer,OptGetStr(nazev,"Molar_mass","<NeplatnyNazev>"));
218  pom_buf = strtok( buffer, separators );
219  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
220  {
221  pom_buf = NULL;
222  }
223  for (j=0; j<G_prm.pocet_latekvefazi; j++)
224  {
225  if ( pom_buf == NULL )
226  {
227  printf("\nChybi molarni hmotnost %d. latky ve fazi!", j+1);
228  exit(133);
229  }
230  P_lat[j].M = atof(pom_buf);
231  pom_buf = strtok( NULL, separators );
232  }
233  if ( pom_buf != NULL )
234  {
235  printf("\nPrilis mnoho molarnich hmotnosti pro latky ve fazi!");
236  exit(133);
237  }
238 /*-----------------------------------------------*/
239  strcpy(buffer,OptGetStr(nazev,"El_charge","<NeplatnyNazev>"));
240  pom_buf = strtok( buffer, separators );
241  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
242  {
243  pom_buf = NULL;
244  }
245  for (j=0; j<G_prm.pocet_latekvefazi; j++)
246  {
247  if ( pom_buf == NULL )
248  {
249  printf("\nChybi naboj %d. latky ve fazi!", j+1);
250  exit(133);
251  }
252  P_lat[j].Q = atoi(pom_buf);
253  pom_buf = strtok( NULL, separators );
254  }
255  if ( pom_buf != NULL )
256  {
257  printf("\nPrilis mnoho naboju pro latky ve fazi!");
258  exit(133);
259  }
260 /*-----------------------------------------------*/
261  for (j=0; j<G_prm.pocet_latekvefazi; j++)
262  {
263  P_lat[j].typ_sorpce = 0; //Sorption has been suppressed in semchem module.
264  }
265 /*-----------------------------------------------*/
266 }
267 // Cte DALSI_LATKY ze souboru parametru .ini
268 void ctiich_dalsilatky( void )
269 {
270  char buffer[1024];
271  int j;
272  char nazev[30], *pom_buf;
273  const char* separators = " ,\t";
274 
275  if (G_prm.pocet_latekvefazi == 0)
276  {
277  return;
278  }
279 // Nacteni obsahu seznamu latek
280  sprintf( nazev, "Further_species" );
281  strcpy(buffer,OptGetStr(nazev,"Specie_name","<NeplatnyNazev>"));
282  pom_buf = strtok( buffer, separators );
283  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
284  {
286  {
287  sprintf( P_lat[j].nazev, "Dalsi_latka_%d", j+1-G_prm.pocet_latek );
288  }
289  }
290  else
291  {
293  {
294  if ( pom_buf == NULL )
295  {
296  printf("\nChybi nazev %d. dalsi latky!", j+1-G_prm.pocet_latek);
297  exit(133);
298  }
299  strcpy (P_lat[j].nazev, pom_buf);
300  pom_buf = strtok( NULL, separators );
301  }
302  if ( pom_buf != NULL )
303  {
304  printf("\nPrilis mnoho nazvu dalsich latek!");
305  exit(133);
306  }
307  }
308 /*-----------------------------------------------*/
309  strcpy(buffer,OptGetStr(nazev,"dGf","<NeplatnyNazev>"));
310  pom_buf = strtok( buffer, separators );
311  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
312  {
313  pom_buf = NULL;
314  }
316  {
317  if ( pom_buf == NULL )
318  {
319  printf("\nChybi dGf %d. dalsi latky!", j+1-G_prm.pocet_latek);
320  exit(133);
321  }
322  P_lat[j].dGf = atof(pom_buf);
323  pom_buf = strtok( NULL, separators );
324  }
325  if ( pom_buf != NULL )
326  {
327  printf("\nPrilis mnoho dGf pro dalsi latky!");
328  exit(133);
329  }
330 /*-----------------------------------------------*/
331  strcpy(buffer,OptGetStr(nazev,"dHf","<NeplatnyNazev>"));
332  pom_buf = strtok( buffer, separators );
333  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
334  {
336  {
337  P_lat[j].dHf = 0.0;
338  }
339  pom_buf = NULL;
340  }
341  else for (j=G_prm.pocet_latekvefazi;j<G_prm.pocet_latek; j++)
342  {
343  if ( pom_buf == NULL )
344  {
345  printf("\nChybi dHf %d. dalsi latky!", j+1-G_prm.pocet_latek);
346  exit(133);
347  }
348  P_lat[j].dHf = atof(pom_buf);
349  pom_buf = strtok( NULL, separators );
350  }
351  if ( pom_buf != NULL )
352  {
353  printf("\nPrilis mnoho dHf pro dalsi latky!");
354  exit(133);
355  }
356 /*-----------------------------------------------*/
357  strcpy(buffer,OptGetStr(nazev,"Molar_mass","<NeplatnyNazev>"));
358  pom_buf = strtok( buffer, separators );
359  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
360  {
361  pom_buf = NULL;
362  }
364  {
365  if ( pom_buf == NULL )
366  {
367  printf("\nChybi molarni hmotnost %d. dalsi latky!", j+1-G_prm.pocet_latek);
368  exit(133);
369  }
370  P_lat[j].M = atof(pom_buf);
371  pom_buf = strtok( NULL, separators );
372  }
373  if ( pom_buf != NULL )
374  {
375  printf("\nPrilis mnoho molarnich hmotnosti pro dalsi latky!");
376  exit(133);
377  }
378 /*-----------------------------------------------*/
379  strcpy(buffer,OptGetStr(nazev,"Activity","<NeplatnyNazev>"));
380  pom_buf = strtok( buffer, separators );
381  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 )
382  {
383  pom_buf = NULL;
384  }
386  {
387  if ( pom_buf == NULL )
388  {
389  printf("\nChybi aktivita %d. dalsi latky!", j+1-G_prm.pocet_latek);
390  exit(133);
391  }
392  P_lat[j].aktivita = atof(pom_buf);
393  pom_buf = strtok( NULL, separators );
394  }
395  if ( pom_buf != NULL )
396  {
397  printf("\nPrilis mnoho aktivit pro dalsi latky!");
398  exit(133);
399  }
400 }
401 
402 // Cte REAKCE ze souboru parametru .ich
403 void ctiich_reakce( void )
404 {
405  char buffer[1024];
406  int i,j;
407  char nazev[30], *pom_buf;
408  const char* separators = " ,\t";
409  TS_che pom_che;
410  double max_poloc_rozp;
411 
412 // Zjisteni delky seznamu reakci
413  for ( i = 1;; ++i )
414  {
415  sprintf( nazev, "Reaction_%d", i );
416  strcpy(buffer,OptGetStr(nazev,"Reaction_type","<NeplatnyNazev>")); printf("probehlo zjisteni typu reakce %d: %s\n",i, buffer);
417  if ( strcmp( buffer, "<NeplatnyNazev>" ) == 0 ) break;
418  }
420  if ( i==1 )
421  {
422  printf("\nNeni definovana zadna reakce!");
423  exit(133);
424  }
425 // Alokace seznamu reakci
426  P_che = (TS_che *)malloc( (G_prm.celkovy_pocet_reakci)*sizeof( TS_che ) );
427  if ( P_che == NULL )
428  {
429  printf ("Malo pameti!\n");
430  exit(0);
431  }
432 // Nacteni obsahu seznamu reakci
434  G_prm.pocet_rozpadu = 0;
435  G_prm.pocet_pom_kin = 0;
436  max_poloc_rozp = 0.0;
437  for (i=0; i<G_prm.celkovy_pocet_reakci; i++)
438  {
439  sprintf( nazev, "Reaction_%d", i+1 );
440  sprintf(P_che[i].nazev,"Reaction_%d",i+1);
441 /*-----------------------------------------------*/
442  strcpy(buffer,OptGetStr(nazev,"Reaction_type","<NeplatnyTyp>"));
443  pom_buf = strtok( buffer, separators );
444  P_che[i].typ_reakce = -888;
445  if ( strcmp( pom_buf, "Radioactive_decay" ) == 0 ) P_che[i].typ_reakce = 4;
446  if ( strcmp( pom_buf, "radioactive_decay" ) == 0 ) P_che[i].typ_reakce = 4;
447  if ( strcmp( pom_buf, "Decay" ) == 0 ) P_che[i].typ_reakce = 4;
448  if ( strcmp( pom_buf, "decay" ) == 0 ) P_che[i].typ_reakce = 4;
449  if ( strcmp( pom_buf, "RD" ) == 0 ) P_che[i].typ_reakce = 4;
450  if ( strcmp( pom_buf, "rd" ) == 0 ) P_che[i].typ_reakce = 4;
451  if ( strcmp( pom_buf, "4" ) == 0 ) P_che[i].typ_reakce = 4;
452  if ( strcmp( pom_buf, "Slow_kinetics" ) == 0 ) P_che[i].typ_reakce = 3;
453  if ( strcmp( pom_buf, "slow_kinetics" ) == 0 ) P_che[i].typ_reakce = 3;
454  if ( strcmp( pom_buf, "3" ) == 0 ) P_che[i].typ_reakce = 3;
455  if ( strcmp( pom_buf, "Kinetics" ) == 0 ) P_che[i].typ_reakce = 1;
456  if ( strcmp( pom_buf, "kinetics" ) == 0 ) P_che[i].typ_reakce = 1;
457  if ( strcmp( pom_buf, "1" ) == 0 ) P_che[i].typ_reakce = 1;
458  if ( strcmp( pom_buf, "Equilibrium" ) == 0 ) P_che[i].typ_reakce = 0;
459  if ( strcmp( pom_buf, "equilibrium" ) == 0 ) P_che[i].typ_reakce = 0;
460  if ( strcmp( pom_buf, "0" ) == 0 ) P_che[i].typ_reakce = 0;
461  if (P_che[i].typ_reakce == -888)
462  {
463  printf("\nThe type of reaction nr. %d is not valid!", i);
464  exit(133);
465  }
466  if (P_che[i].typ_reakce==0)
467  {
469  }
470  if (P_che[i].typ_reakce==1)
471  {
473  }
474  if (P_che[i].typ_reakce==3)
475  {
477  }
478  if (P_che[i].typ_reakce==4)
479  {
481  }
483 /*------------------------------------------------------------------*/
484  strcpy(buffer,OptGetStr(nazev,"Stoichiometry",""));
485  pom_buf = strtok( buffer, separators );
486  for (j = 0; j<G_prm.pocet_latek; j++)
487  {
488  if ( pom_buf == NULL )
489  {
490  printf("\nChybi %d. stechometricky koeficient v %d. rovnici!", j+1, i+1);
491  exit(133);
492  }
493  P_che[i].stech_koef_p[j] = atoi( pom_buf );
494  printf("\nP_che[%d].stech_koef_p[%d]: %d",i,j,P_che[i].stech_koef_p[j]);
495  pom_buf = strtok( NULL, separators );
496  }
497  if ( pom_buf != NULL )
498  {
499  printf("\nV %d. rovnici je prilis mnoho stechiometrickych koeficientu!", i+1);
500  exit(133);
501  }
502 /*------------------------------------------------------------------*/
503  if ((P_che[i].typ_reakce==1)||(P_che[i].typ_reakce==3))
504  {
505  P_che[i].K = OptGetDbl(nazev,"Kinetic_constant","0.0");
506  if(P_che[i].typ_reakce==1)printf("\nKineticka konstanta v %d. rovnici ma hodnotu %f", i+1, P_che[i].K);
507  if ( P_che[i].K <= 0.0 )
508  {
509  printf("\nKineticka konstanta v %d. rovnici neni kladna!", i+1);
510  exit(133);
511  }
512 /*------------------------------------------------------------------*/
513  strcpy(buffer,OptGetStr(nazev,"Order_of_reaction",""));
514  pom_buf = strtok( buffer, separators );
515  for (j = 0; j<G_prm.pocet_latek; j++)
516  {
517  if(j < G_prm.pocet_latekvefazi)
518  {
519  if( pom_buf == NULL )
520  {
521  printf("\nChybi %d. mocnina pro kinetiku %d. rovnice!", j+1, i+1);
522  exit(133);
523  }
524  P_che[i].exponent[j] = atof( pom_buf );
525  printf("\nP_che[%d].exponent[%d]: %f",i,j,P_che[i].exponent[j]);
526  pom_buf = strtok( NULL, separators );
527  }
528  }
529  if ( pom_buf != NULL )
530  {
531  printf("\nV %d. rovnici je prilis mnoho exponentu pro kinetiku!", i+1);
532  exit(133);
533  }
534  }
535 /*------------------------------------------------------------------*/
536  if (P_che[i].typ_reakce==0)
537  {
538  P_che[i].K = OptGetDbl(nazev, "Equilibrium_constant","-1.0");
539  }
540 /*------------------------------------------------------------------*/
541  }
543  {
544  for (j=0; j<G_prm.celkovy_pocet_reakci; j++)
545  {
546  for (i=0; i<G_prm.celkovy_pocet_reakci-1; i++)
547  {
548  if (che_poradi(P_che[i].typ_reakce,max_poloc_rozp,P_che[i].K) > che_poradi(P_che[i+1].typ_reakce,max_poloc_rozp,P_che[i+1].K))
549  {
550  pom_che = P_che[i];
551  P_che[i] = P_che[i+1];
552  P_che[i+1] = pom_che;
553  }
554  }
555  }
556  }
557 }
558 
559 // Cte soubor parametru chemie .ICH
560 void ctiich( void )
561 {
562  printf("Cteni parametru (%s): \n", G_prm.jmeno_ich );
563  ctiich_obecne(); printf("probehla funkce ctiich_obecne()\n");
564  ctiich_latkyvefazi(); printf("probehla funkce ctiich_latkyvefazi()\n");
565  ctiich_dalsilatky(); printf("probehla funkce ctiich_dalsilatky()\n");
566  ctiich_reakce(); printf("probehla funkce ctiich_reakce()\n");
567  printf("O.K.\n" );
568 }
double omega
Definition: che_semchem.h:628
#define MAX_POC_LATEK
Definition: che_semchem.h:19
double K
Definition: che_semchem.h:657
int pocet_kinetik
Definition: che_semchem.h:620
int pocet_latekvefazi
Definition: che_semchem.h:616
int skaluj_matici
Definition: che_semchem.h:635
void ctiich_reakce(void)
Definition: che_read.cc:403
int typ_reakce
Definition: che_semchem.h:658
struct TS_prm G_prm
void ctiich_obecne(void)
Definition: che_read.cc:10
struct TS_lat * P_lat
int cas_kroku
Definition: che_semchem.h:632
double epsilon
Definition: che_semchem.h:627
int pocet_pom_kin
Definition: che_semchem.h:621
int pocet_reakci_pro_matici
Definition: che_semchem.h:618
double b
Definition: che_semchem.h:626
int vypisy
Definition: che_semchem.h:633
double Afi
Definition: che_semchem.h:625
int pocet_rovnovah
Definition: che_semchem.h:619
double M
Definition: che_semchem.h:644
void ctiich_latkyvefazi(void)
Definition: che_read.cc:144
char nazev[80]
Definition: che_semchem.h:655
int celkovy_pocet_reakci
Definition: che_semchem.h:617
double exponent[MAX_POC_LATEK]
Definition: che_semchem.h:659
double dGf
Definition: che_semchem.h:645
struct TS_che * P_che
double aktivita
Definition: che_semchem.h:648
double T
Definition: che_semchem.h:623
long int OptGetInt(const char *section, const char *key, const char *defval)
Definition: read_ini.cc:242
double OptGetDbl(const char *section, const char *key, const char *defval)
Definition: read_ini.cc:260
int abs_norma
Definition: che_semchem.h:636
int pocet_latek
Definition: che_semchem.h:615
float che_poradi(int typ_reakce, double max, double K)
double TGf
Definition: che_semchem.h:624
char jmeno_ich[MAXPATH]
Definition: che_semchem.h:614
int pocet_rozpadu
Definition: che_semchem.h:622
void ctiich(void)
Definition: che_read.cc:560
double dHf
Definition: che_semchem.h:646
int deleni_RK
Definition: che_semchem.h:634
int typ_sorpce
Definition: che_semchem.h:649
int stech_koef_p[MAX_POC_LATEK]
Definition: che_semchem.h:656
void ctiich_dalsilatky(void)
Definition: che_read.cc:268
char * OptGetStr(const char *section, const char *key, const char *defval)
Create new string from selected variable from ini file.
Definition: read_ini.cc:205