04-surface.mdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. /****************************************************************************
  2. * Test 04: All surface rxn types, simple test of equilibrium and reaction
  3. * rates.
  4. *
  5. * A quantitative test of the basic *-surface reaction types (uni, bi)
  6. * in various combinations with surface (and some volume) molecules and
  7. * always with surface class as one of the reactants.
  8. * This test is completely identical to the test "03-surface"
  9. * except that we add surface class to all reactions and we do not
  10. * test for trimolecular reactions.
  11. *
  12. *
  13. *
  14. * Authors: Jed Wing <[email protected]> and Boris Kaminsky <[email protected]>
  15. * Date: 2008-12-05, 2010-11-29, 2012-06-20
  16. ****************************************************************************/
  17. basename = "04-surface"
  18. countdir = "dat/" & basename & "/"
  19. vizdir = "./viz_dat/" & basename & "/"
  20. iterations = 10000
  21. timestep = 1e-6
  22. boxdims = 0.25
  23. voldiffconst = 2.0e-6
  24. surfdiffconst = 2.0e-6
  25. num_u = 1000
  26. num_b = 1000
  27. sa = 6*(2*boxdims)^2
  28. boxvol = 8*boxdims*boxdims*boxdims
  29. eq_b = num_b / 2
  30. rf_ss = 0.1*1e6 * (sa / eq_b) / eq_b
  31. // Set reverse rates to expect approx 1 rxn every 10 timesteps
  32. rr_u = 2.0e2
  33. rr_b = 2.0e2
  34. // Compute forward rates to give equilibrium of 50% reacted
  35. c_b = (num_b / 2. / boxvol) * 1e15 / 6.022e23
  36. rf_u = rr_u
  37. rf_b = rr_b / c_b
  38. VACANCY_SEARCH_DISTANCE = 2
  39. ITERATIONS = iterations
  40. TIME_STEP = timestep
  41. TIME_STEP_MAX = 1.0
  42. INCLUDE_FILE = "volmols.mdl"
  43. INCLUDE_FILE = "surfmols.mdl"
  44. DEFINE_MOLECULES {
  45. A_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  46. C_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  47. D_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  48. E_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  49. F_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  50. G_u {DIFFUSION_CONSTANT_2D = surfdiffconst}
  51. A_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  52. C_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  53. D_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  54. E_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  55. F_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  56. G_b {DIFFUSION_CONSTANT_2D = surfdiffconst}
  57. }
  58. DEFINE_SURFACE_CLASS my_surf{ }
  59. DEFINE_REACTIONS {
  60. /* 0 Volume reactants */
  61. S_u, @ my_surf; -> B_u, [rf_u] : fwd_u /* unimol */
  62. S_b1, + S_b2, @ my_surf; -> B_b, [rf_ss] : fwd_b /* bimol */
  63. S_bt1, + S_bt2,@ my_surf; -> B_bt, [rf_ss] : fwd_bt /* bimol (via trimol code) */
  64. S_b3, + S_b4to, @ my_surf; -> B_b2, [rf_ss] : fwd_b2 /* bimol (1 target only) */
  65. S_bt3, + S_bt4to, @ my_surf; -> B_bt2, [rf_ss] : fwd_bt2 /* bimol (1 target only, via trimol code) */
  66. B_u, @ my_surf; -> S_u, [rr_u] : rev_u
  67. B_b, @ my_surf; -> S_b1, + S_b2, [rr_b] : rev_b
  68. B_bt,@ my_surf; -> S_bt1, + S_bt2, [rr_b] : rev_bt
  69. B_b2, @ my_surf; -> S_b3, + S_b4to, [rr_b] : rev_b2
  70. B_bt2,@ my_surf; -> S_bt3, + S_bt4to, [rr_b] : rev_bt2
  71. /* 1 Volume reactant */
  72. V_b1, + S_vb2' @ my_surf; -> B_vb' [rf_b] : fwd_vb /* bimol */
  73. V_bt1, + S_vbt2'@ my_surf; -> B_vbt' [rf_b] : fwd_vbt /* bimol (via trimol code) */
  74. V_b3, + S_vb4to' @ my_surf; -> B_vb2' [rf_b] : fwd_vb2 /* bimol (1 target only) */
  75. V_bt3, + S_vbt4to' @ my_surf; -> B_vbt2' [rf_b] : fwd_vbt2 /* bimol (1 target only, via trimol code) */
  76. B_vb' @ my_surf; -> V_b1, + S_vb2' [rr_b] : rev_vb
  77. B_vbt' @ my_surf; -> V_bt1, + S_vbt2' [rr_b] : rev_vbt
  78. B_vb2' @ my_surf; -> V_b3, + S_vb4to' [rr_b] : rev_vb2
  79. B_vbt2'@ my_surf; -> V_bt3, + S_vbt4to' [rr_b] : rev_vbt2
  80. /* these reactions will happen simultaneously
  81. we will check relative rxn rates between them */
  82. A_u, -> C_u, [rf_u] : fwd_AC_u1 /* (1) */
  83. C_u, -> A_u, [rr_u] : rev_AC_u1 /* (2) */
  84. A_u, @ my_surf' -> C_u, [rf_u] : fwd_AC_u2 /* (3) */
  85. C_u, @ my_surf' -> A_u, [rr_u] : rev_AC_u2 /* (4) */
  86. A_u; @ my_surf' -> C_u, [rf_u] : fwd_AC_u3 /* (5) */
  87. C_u; @ my_surf' -> A_u, [rr_u] : rev_AC_u3 /* (6) */
  88. /* these reactions will happen simultaneously
  89. we will check relative rxn rates between them */
  90. D_u, -> E_u, [rf_u] : fwd_DE_u1 /* (7) */
  91. E_u, -> D_u, [rr_u] : rev_DE_u1 /* (8) */
  92. D_u, @ my_surf' -> E_u, [0.5*rf_u] : fwd_DE_u2 /* (9) */
  93. E_u, @ my_surf' -> D_u, [0.5*rr_u] : rev_DE_u2 /* (10) */
  94. D_u; @ my_surf' -> E_u, [0.3*rf_u] : fwd_DE_u3 /* (11) */
  95. E_u; @ my_surf' -> D_u, [0.3*rr_u] : rev_DE_u3 /* (12) */
  96. /* these reactions will happen simultaneously
  97. we will check relative rxn rates between them */
  98. F_u, -> G_u, [0.3*rf_u] : fwd_FG_u1 /* (13) */
  99. G_u, -> F_u, [0.3*rr_u] : rev_FG_u1 /* (14) */
  100. F_u, @ my_surf' -> G_u, [0.5*rf_u] : fwd_FG_u2 /* (15) */
  101. G_u, @ my_surf' -> F_u, [0.5*rr_u] : rev_FG_u2 /* (16) */
  102. F_u; @ my_surf' -> G_u, [rf_u] : fwd_FG_u3 /* (17) */
  103. G_u; @ my_surf' -> F_u, [rr_u] : rev_FG_u3 /* (18) */
  104. /* these reactions will happen simultaneously
  105. we will check relative rxn rates between them */
  106. A_b, + C_b, -> D_b, [rf_ss] : fwd_AC_b1 /* (19) */
  107. A_b, + C_b, @ my_surf' -> D_b, [rf_ss] : fwd_AC_b2 /* (20) */
  108. A_b; + C_b; @ my_surf' -> D_b, [rf_ss] : fwd_AC_b3 /* (21) */
  109. D_b; @ my_surf' -> A_b, + C_b, [rr_b] : rev_AC_b3 /* (22) */
  110. /* these reactions will happen simultaneously
  111. we will check relative rxn rates between them */
  112. E_b, + F_b, -> G_b, [rf_ss] : fwd_EF_b1 /* (23) */
  113. E_b, + F_b, @ my_surf' -> G_b, [0.5*rf_ss] : fwd_EF_b2 /* (24) */
  114. E_b; + F_b; @ my_surf' -> G_b, [0.3*rf_ss] : fwd_EF_b3 /* (25) */
  115. G_b; @ my_surf' -> E_b, + F_b, [rr_b] : rev_EF_b3 /* (26) */
  116. }
  117. little_box BOX
  118. {
  119. CORNERS = [-boxdims, -boxdims, -boxdims], [boxdims, boxdims, boxdims]
  120. DEFINE_SURFACE_REGIONS {
  121. whole_mesh {
  122. ELEMENT_LIST = [ALL_ELEMENTS]
  123. SURFACE_CLASS = my_surf
  124. }
  125. }
  126. }
  127. /* Starting X position for box placement */
  128. x = 0
  129. fuzz = 0.01
  130. xleft = x - boxdims - fuzz
  131. /* S_u @ my_surf; <-> B_u */
  132. case1 OBJECT
  133. {
  134. kosmos OBJECT little_box {}
  135. release_site_r RELEASE_SITE { SHAPE = case1.kosmos MOLECULE = S_u' NUMBER_TO_RELEASE = num_u / 2 }
  136. release_site_p RELEASE_SITE { SHAPE = case1.kosmos MOLECULE = B_u' NUMBER_TO_RELEASE = num_u / 2 }
  137. TRANSLATE = [x, 0, 0]
  138. }
  139. x = x + 2*boxdims + fuzz
  140. /* S_b1 + S_b2 @ my_surf; <-> B_b */
  141. case2 OBJECT
  142. {
  143. kosmos OBJECT little_box {}
  144. release_site_r1 RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = S_b1' NUMBER_TO_RELEASE = num_b / 2 }
  145. release_site_r2 RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = S_b2' NUMBER_TO_RELEASE = num_b / 2 }
  146. release_site_p RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = B_b' NUMBER_TO_RELEASE = num_b / 2 }
  147. TRANSLATE = [x, 0, 0]
  148. }
  149. x = x + 2*boxdims + fuzz
  150. /* S_bt1 + S_bt2 @ my_surf; <-> B_bt */
  151. case3 OBJECT
  152. {
  153. kosmos OBJECT little_box {}
  154. release_site_r1 RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = S_bt1' NUMBER_TO_RELEASE = num_b / 2 }
  155. release_site_r2 RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = S_bt2' NUMBER_TO_RELEASE = num_b / 2 }
  156. release_site_p RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = B_bt' NUMBER_TO_RELEASE = num_b / 2 }
  157. TRANSLATE = [x, 0, 0]
  158. }
  159. x = x + 2*boxdims + fuzz
  160. /* S_b3 + S_b4to @ my_surf; <-> B_b2 */
  161. case4 OBJECT
  162. {
  163. kosmos OBJECT little_box {}
  164. release_site_r1 RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = S_b3' NUMBER_TO_RELEASE = num_b / 2 }
  165. release_site_r2 RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = S_b4to' NUMBER_TO_RELEASE = num_b / 2 }
  166. release_site_p RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = B_b2' NUMBER_TO_RELEASE = num_b / 2 }
  167. TRANSLATE = [x, 0, 0]
  168. }
  169. x = x + 2*boxdims + fuzz
  170. /* S_bt3 + S_bt4to @ my_surf; <-> B_bt2 */
  171. case5 OBJECT
  172. {
  173. kosmos OBJECT little_box {}
  174. release_site_r1 RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = S_bt3' NUMBER_TO_RELEASE = num_b / 2 }
  175. release_site_r2 RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = S_bt4to' NUMBER_TO_RELEASE = num_b / 2 }
  176. release_site_p RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = B_bt2' NUMBER_TO_RELEASE = num_b / 2 }
  177. TRANSLATE = [x, 0, 0]
  178. }
  179. x = x + 2*boxdims + fuzz
  180. /* V_b1 + S_vb2 @ my_surf; <-> B_vb */
  181. case9 OBJECT
  182. {
  183. kosmos OBJECT little_box {}
  184. release_site_r1 RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = V_b1 NUMBER_TO_RELEASE = num_b / 2 }
  185. release_site_r2 RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = S_vb2' NUMBER_TO_RELEASE = num_b / 2 }
  186. release_site_p RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = B_vb' NUMBER_TO_RELEASE = num_b / 2 }
  187. TRANSLATE = [x, 0, 0]
  188. }
  189. x = x + 2*boxdims + fuzz
  190. /* V_bt1 + S_vbt2 @ my_surf; <-> B_vbt */
  191. case10 OBJECT
  192. {
  193. kosmos OBJECT little_box {}
  194. release_site_r1 RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = V_bt1 NUMBER_TO_RELEASE = num_b / 2 }
  195. release_site_r2 RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = S_vbt2' NUMBER_TO_RELEASE = num_b / 2 }
  196. release_site_p RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = B_vbt' NUMBER_TO_RELEASE = num_b / 2 }
  197. TRANSLATE = [x, 0, 0]
  198. }
  199. x = x + 2*boxdims + fuzz
  200. /* V_b3 + S_vb4to @ my_surf; <-> B_vb2 */
  201. case11 OBJECT
  202. {
  203. kosmos OBJECT little_box {}
  204. release_site_r1 RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = V_b3 NUMBER_TO_RELEASE = num_b / 2 }
  205. release_site_r2 RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = S_vb4to' NUMBER_TO_RELEASE = num_b / 2 }
  206. release_site_p RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = B_vb2' NUMBER_TO_RELEASE = num_b / 2 }
  207. TRANSLATE = [x, 0, 0]
  208. }
  209. x = x + 2*boxdims + fuzz
  210. /* V_bt3 + S_vbt4to @ my_surf; <-> B_vbt2 */
  211. case12 OBJECT
  212. {
  213. kosmos OBJECT little_box {}
  214. release_site_r1 RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = V_bt3 NUMBER_TO_RELEASE = num_b / 2 }
  215. release_site_r2 RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = S_vbt4to' NUMBER_TO_RELEASE = num_b / 2 }
  216. release_site_p RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = B_vbt2' NUMBER_TO_RELEASE = num_b / 2 }
  217. TRANSLATE = [x, 0, 0]
  218. }
  219. x = x + 2*boxdims + fuzz
  220. /* reactions (1) - (6) */
  221. case13 OBJECT
  222. {
  223. kosmos OBJECT little_box {}
  224. release_site_r1 RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = A_u, NUMBER_TO_RELEASE = num_u / 2 }
  225. release_site_r2 RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = C_u, NUMBER_TO_RELEASE = num_u / 2 }
  226. TRANSLATE = [x, 0, 0]
  227. }
  228. x = x + 2*boxdims + fuzz
  229. /* reactions (7) - (12) */
  230. case14 OBJECT
  231. {
  232. kosmos OBJECT little_box {}
  233. release_site_r1 RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = D_u, NUMBER_TO_RELEASE = num_u }
  234. release_site_r2 RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = E_u, NUMBER_TO_RELEASE = num_u }
  235. TRANSLATE = [x, 0, 0]
  236. }
  237. x = x + 2*boxdims + fuzz
  238. /* reactions (13) - (18) */
  239. case15 OBJECT
  240. {
  241. kosmos OBJECT little_box {}
  242. release_site_r1 RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = F_u, NUMBER_TO_RELEASE = num_u }
  243. release_site_r2 RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = G_u, NUMBER_TO_RELEASE = num_u }
  244. TRANSLATE = [x, 0, 0]
  245. }
  246. x = x + 2*boxdims + fuzz
  247. /* reactions (19) - (22) */
  248. case16 OBJECT
  249. {
  250. kosmos OBJECT little_box {}
  251. release_site_r1 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = A_b, NUMBER_TO_RELEASE = num_b/2 }
  252. release_site_r2 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = C_b, NUMBER_TO_RELEASE = num_b/2 }
  253. release_site_r3 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = D_b, NUMBER_TO_RELEASE = num_b/2 }
  254. TRANSLATE = [x, 0, 0]
  255. }
  256. x = x + 2*boxdims + fuzz
  257. /* reactions (23) - (26) */
  258. case17 OBJECT
  259. {
  260. kosmos OBJECT little_box {}
  261. release_site_r1 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = E_b, NUMBER_TO_RELEASE = num_b / 2 }
  262. release_site_r2 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = F_b, NUMBER_TO_RELEASE = num_b / 2 }
  263. release_site_r3 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = G_b, NUMBER_TO_RELEASE = num_b / 2 }
  264. TRANSLATE = [x, 0, 0]
  265. }
  266. x = x + 2*boxdims + fuzz
  267. xright = x + boxdims
  268. PARTITION_X = [ [ xleft TO xright STEP 0.025 ] ]
  269. PARTITION_Y = [ [ -boxdims-fuzz TO boxdims+fuzz STEP 0.025 ] ]
  270. PARTITION_Z = [ [ -boxdims-fuzz TO boxdims+fuzz STEP 0.025 ] ]
  271. INSTANTIATE multiverse OBJECT {
  272. b1 OBJECT case1 {}
  273. b2 OBJECT case2 {}
  274. b3 OBJECT case3 {}
  275. b4 OBJECT case4 {}
  276. b5 OBJECT case5 {}
  277. b9 OBJECT case9 {}
  278. b10 OBJECT case10 {}
  279. b11 OBJECT case11 {}
  280. b12 OBJECT case12 {}
  281. b13 OBJECT case13 {}
  282. b14 OBJECT case14 {}
  283. b15 OBJECT case15 {}
  284. b16 OBJECT case16 {}
  285. b17 OBJECT case17 {}
  286. }
  287. REACTION_DATA_OUTPUT {
  288. OUTPUT_BUFFER_SIZE = 50
  289. STEP = timestep*10
  290. HEADER = "# "
  291. {
  292. COUNT[S_u,WORLD] : "S_u",
  293. COUNT[S_b1,WORLD] : "S_b1",
  294. COUNT[S_b2,WORLD] : "S_b2",
  295. COUNT[S_b3,WORLD] : "S_b3",
  296. COUNT[S_b4to,WORLD] : "S_b4",
  297. COUNT[S_bt1,WORLD] : "S_bt1",
  298. COUNT[S_bt2,WORLD] : "S_bt2",
  299. COUNT[S_bt3,WORLD] : "S_bt3",
  300. COUNT[S_bt4to,WORLD] : "S_bt4",
  301. COUNT[V_b1,WORLD] : "V_b1",
  302. COUNT[S_vb2,WORLD] : "S_vb2",
  303. COUNT[V_bt1,WORLD] : "V_bt1",
  304. COUNT[S_vbt2,WORLD] : "S_vbt2",
  305. COUNT[V_b3,WORLD] : "V_b3",
  306. COUNT[S_vb4to,WORLD] : "S_vb4",
  307. COUNT[V_bt3,WORLD] : "V_bt3",
  308. COUNT[S_vbt4to,WORLD] : "S_vbt4",
  309. COUNT[B_u,WORLD] : "B_u",
  310. COUNT[B_b,WORLD] : "B_b",
  311. COUNT[B_b2,WORLD] : "B_b2",
  312. COUNT[B_bt,WORLD] : "B_bt",
  313. COUNT[B_bt2,WORLD] : "B_bt2",
  314. COUNT[B_vb,WORLD] : "B_vb",
  315. COUNT[B_vbt,WORLD] : "B_vbt",
  316. COUNT[B_vb2,WORLD] : "B_vb2",
  317. COUNT[B_vbt2,WORLD] : "B_vbt2"
  318. } => countdir & "V_out.dat"
  319. {
  320. COUNT[fwd_u,WORLD] : "fwd_u",
  321. COUNT[fwd_b,WORLD] : "fwd_b",
  322. COUNT[fwd_bt,WORLD] : "fwd_bt",
  323. COUNT[fwd_b2,WORLD] : "fwd_b2",
  324. COUNT[fwd_bt2,WORLD] : "fwd_bt2",
  325. COUNT[fwd_vb,WORLD] : "fwd_vb",
  326. COUNT[fwd_vbt,WORLD] : "fwd_vbt",
  327. COUNT[fwd_vb2,WORLD] : "fwd_vb2",
  328. COUNT[fwd_vbt2,WORLD] : "fwd_vbt2",
  329. COUNT[rev_u,WORLD] : "rev_u",
  330. COUNT[rev_b,WORLD] : "rev_b",
  331. COUNT[rev_bt,WORLD] : "rev_bt",
  332. COUNT[rev_b2,WORLD] : "rev_b2",
  333. COUNT[rev_bt2,WORLD] : "rev_bt2",
  334. COUNT[rev_vb,WORLD] : "rev_vb",
  335. COUNT[rev_vbt,WORLD] : "rev_vbt",
  336. COUNT[rev_vb2,WORLD] : "rev_vb2",
  337. COUNT[rev_vbt2,WORLD] : "rev_vbt2"
  338. } => countdir & "rxn_out.dat"
  339. {
  340. COUNT[A_u,WORLD] : "A_u",
  341. COUNT[C_u,WORLD] : "C_u"
  342. } => countdir & "b13_u_out.dat"
  343. {
  344. COUNT[fwd_AC_u1,WORLD] : "fwd_AC_u1",
  345. COUNT[rev_AC_u1,WORLD] : "rev_AC_u1",
  346. COUNT[fwd_AC_u2,WORLD] : "fwd_AC_u2",
  347. COUNT[rev_AC_u2,WORLD] : "rev_AC_u2",
  348. COUNT[fwd_AC_u3,WORLD] : "fwd_AC_u3",
  349. COUNT[rev_AC_u3,WORLD] : "rev_AC_u3"
  350. } => countdir & "b13_u_rxn_out.dat"
  351. {
  352. COUNT[D_u,WORLD] : "D_u",
  353. COUNT[E_u,WORLD] : "E_u"
  354. } => countdir & "b14_u_out.dat"
  355. {
  356. COUNT[fwd_DE_u1,WORLD] : "fwd_DE_u1",
  357. COUNT[rev_DE_u1,WORLD] : "rev_DE_u1",
  358. COUNT[fwd_DE_u2,WORLD] : "fwd_DE_u2",
  359. COUNT[rev_DE_u2,WORLD] : "rev_DE_u2",
  360. COUNT[fwd_DE_u3,WORLD] : "fwd_DE_u3",
  361. COUNT[rev_DE_u3,WORLD] : "rev_DE_u3"
  362. } => countdir & "b14_u_rxn_out.dat"
  363. {
  364. COUNT[F_u,WORLD] : "F_u",
  365. COUNT[G_u,WORLD] : "G_u"
  366. } => countdir & "b15_u_out.dat"
  367. {
  368. COUNT[fwd_FG_u1,WORLD] : "fwd_FG_u1",
  369. COUNT[rev_FG_u1,WORLD] : "rev_FG_u1",
  370. COUNT[fwd_FG_u2,WORLD] : "fwd_FG_u2",
  371. COUNT[rev_FG_u2,WORLD] : "rev_FG_u2",
  372. COUNT[fwd_FG_u3,WORLD] : "fwd_FG_u3",
  373. COUNT[rev_FG_u3,WORLD] : "rev_FG_u3"
  374. } => countdir & "b15_u_rxn_out.dat"
  375. {
  376. COUNT[fwd_AC_b1,WORLD] : "fwd_AC_b1",
  377. COUNT[fwd_AC_b2,WORLD] : "fwd_AC_b2",
  378. COUNT[fwd_AC_b3,WORLD] : "fwd_AC_b3"
  379. } => countdir & "b16_b_rxn_out.dat"
  380. {
  381. COUNT[fwd_EF_b1,WORLD] : "fwd_EF_b1",
  382. COUNT[fwd_EF_b2,WORLD] : "fwd_EF_b2",
  383. COUNT[fwd_EF_b3,WORLD] : "fwd_EF_b3"
  384. } => countdir & "b17_b_rxn_out.dat"
  385. }