14-restricted_border_product_placement.mdl 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099
  1. /**************************************************************************
  2. * Test-14: Surface products placement in the presence of restrictive
  3. * region borders.
  4. *
  5. * The policy of surface products placement is described in detail
  6. * in the comments to the function "outcome_products_random()"
  7. * and "outcome_products_trimol_reaction_random()" and also
  8. * in policy document in "docs" folder.
  9. *
  10. * Expected results for objects:
  11. *
  12. * box_1: "box_1_r1.dat" positive, and "box_1_r3.dat" - zeroes
  13. * box_2: "box_2_r2.dat" - zeroes, and "box_2_r3.dat" - positive
  14. * box_3: "box_3_r1.dat" - positive, and "box_3_r2.dat" - positive
  15. * box_4: "box_4_r1.dat" - positive, and "box_4_r2.dat" - zeroes
  16. * box_5: "box_5_r3.dat" - positive, and "box_5_r4.dat" - zeroes
  17. * box_6: "box_6_r1.dat" - positive, and "box_6_r5.dat" - zeroes
  18. * box_7: "box_7_r1.dat" - positive, and "box_7_r3.dat" - zeroes
  19. * box_8: "box_8_r1.dat" - positive, and "box_8_r4.dat" - zeroes
  20. * box_9: "box_9_r1.dat" - positive, and "box_9_r2.dat" - zeroes
  21. * box_10: "box_10_r1.dat" - positive, and "box_10_r2.dat" - positive
  22. * box_11: "box_11_r1.dat" - positive, and "box_11_r2.dat" - zeroes
  23. * box_12: "box_12_r5.dat" - positive, and "box_12_r6.dat" - zeroes
  24. * box_13: "box_13_r1.dat" - positive, and "box_13_r3.dat" - zeroes
  25. * box_14: "box_14_r1.dat" - positive, and "box_14_r3.dat" - zeroes
  26. * box_15: "box_15_r1.dat" - positive, and "box_15_r2.dat" - zeroes
  27. * box_16: "box_16_r1.dat" - positive, and "box_16_r2.dat" - zeroes
  28. * box_17: "box_17_r1.dat" - positive, and "box_17_r2.dat" - zeroes
  29. * box_18: "box_18_r1.dat" - positive, and "box_18_r2.dat" - zeroes
  30. * box_19: "box_19_r1.dat" - positive, and "box_19_r2.dat" - zeroes
  31. *
  32. *
  33. * Author: Boris Kaminsky <[email protected]>
  34. * Date: 2011-08-24
  35. *
  36. **************************************************************************/
  37. basename = "14-restricted_border_product_placement"
  38. countdir = "dat/" & basename & "/"
  39. dt = 1e-6
  40. TIME_STEP = dt
  41. TIME_STEP_MAX = dt
  42. ITERATIONS = 100
  43. EFFECTOR_GRID_DENSITY = 10000
  44. VACANCY_SEARCH_DISTANCE = 1
  45. DEFINE_MOLECULES
  46. {
  47. /* reactants */
  48. u_A {DIFFUSION_CONSTANT_2D = 0}
  49. b_A {DIFFUSION_CONSTANT_2D = 0}
  50. b_B {DIFFUSION_CONSTANT_2D = 0}
  51. t_A {DIFFUSION_CONSTANT_2D = 0}
  52. t_B {DIFFUSION_CONSTANT_2D = 0}
  53. t_C {DIFFUSION_CONSTANT_2D = 0}
  54. /* products */
  55. D {DIFFUSION_CONSTANT_2D = 0}
  56. E {DIFFUSION_CONSTANT_2D = 0}
  57. F {DIFFUSION_CONSTANT_2D = 0}
  58. G {DIFFUSION_CONSTANT_2D = 0}
  59. K {DIFFUSION_CONSTANT_2D = 0}
  60. L {DIFFUSION_CONSTANT_2D = 0}
  61. }
  62. DEFINE_SURFACE_CLASSES
  63. {
  64. refl_u_A{
  65. REFLECTIVE = u_A;
  66. }
  67. refl_b_A{
  68. REFLECTIVE = b_A;
  69. }
  70. refl_b_B{
  71. REFLECTIVE = b_B;
  72. }
  73. refl_t_A{
  74. REFLECTIVE = t_A;
  75. }
  76. refl_t_B{
  77. REFLECTIVE = t_B;
  78. }
  79. refl_t_C{
  80. REFLECTIVE = t_C;
  81. }
  82. refl_b_AB{
  83. REFLECTIVE = b_A;
  84. REFLECTIVE = b_B;
  85. }
  86. refl_t_AB{
  87. REFLECTIVE = t_A;
  88. REFLECTIVE = t_B;
  89. }
  90. refl_t_ABC{
  91. REFLECTIVE = t_A;
  92. REFLECTIVE = t_B;
  93. REFLECTIVE = t_C;
  94. }
  95. }
  96. DEFINE_REACTIONS
  97. {
  98. u_A; -> D; + E; + F; + G; [1e5]
  99. b_A; + b_B; -> D; + E; + F; + G; [1e2]
  100. t_A; + t_B; + t_C; -> D; + E; + F; + G; + K; + L; [3e-2]
  101. }
  102. /* unimolecular reaction when reactant has restrictive region border property
  103. and is inside the restrictive region.
  104. */
  105. box_1 BOX
  106. {
  107. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  108. DEFINE_SURFACE_REGIONS
  109. {
  110. r1{
  111. ELEMENT_LIST = [RIGHT]
  112. MOLECULE_NUMBER{
  113. u_A' = 200
  114. }
  115. SURFACE_CLASS = refl_u_A
  116. }
  117. r2{
  118. ELEMENT_LIST = [TOP, RIGHT]
  119. SURFACE_CLASS = refl_u_A
  120. }
  121. r3{
  122. ELEMENT_LIST = [TOP,BOTTOM,LEFT,FRONT,BACK]
  123. }
  124. }
  125. }
  126. /* unimolecular reaction when reactant has restrictive region border property
  127. and is outside the restrictive region.
  128. */
  129. box_2 BOX
  130. {
  131. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  132. DEFINE_SURFACE_REGIONS
  133. {
  134. r1{
  135. ELEMENT_LIST = [RIGHT]
  136. MOLECULE_NUMBER{
  137. u_A' = 300
  138. }
  139. }
  140. r2{
  141. ELEMENT_LIST = [TOP,BOTTOM]
  142. SURFACE_CLASS = refl_u_A
  143. }
  144. r3{
  145. ELEMENT_LIST = [LEFT, RIGHT, FRONT,BACK]
  146. }
  147. }
  148. TRANSLATE = [0.5, 0, 0]
  149. }
  150. /* unimolecular reaction when reactant has NO restrictive region border property */
  151. box_3 BOX
  152. {
  153. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  154. DEFINE_SURFACE_REGIONS
  155. {
  156. r1{
  157. ELEMENT_LIST = [RIGHT]
  158. MOLECULE_NUMBER{
  159. u_A' = 200
  160. }
  161. }
  162. r2{
  163. ELEMENT_LIST = [TOP,BOTTOM,LEFT,FRONT,BACK]
  164. }
  165. }
  166. TRANSLATE = [1.0, 0, 0]
  167. }
  168. /* bimolecular reaction when all reactants have restrictive
  169. region border property and located inside the restrictive region
  170. (simple geometry) */
  171. box_4 BOX
  172. {
  173. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  174. DEFINE_SURFACE_REGIONS
  175. {
  176. r1{
  177. ELEMENT_LIST = [RIGHT]
  178. MOLECULE_NUMBER{
  179. b_A' = 200
  180. }
  181. MOLECULE_NUMBER{
  182. b_B' = 200
  183. }
  184. SURFACE_CLASS = refl_b_AB
  185. }
  186. r2{
  187. ELEMENT_LIST = [TOP,BOTTOM,LEFT,FRONT,BACK]
  188. }
  189. }
  190. TRANSLATE = [1.5, 0, 0]
  191. }
  192. /* bimolecular reaction when both reactants have restrictive
  193. region border properties and are located inside their restrictive regions
  194. (more complex geometry) */
  195. box_5 BOX
  196. {
  197. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  198. DEFINE_SURFACE_REGIONS
  199. {
  200. r1{
  201. ELEMENT_LIST = [RIGHT, TOP]
  202. MOLECULE_NUMBER{
  203. b_A' = 400
  204. }
  205. SURFACE_CLASS = refl_b_A
  206. }
  207. r2{
  208. ELEMENT_LIST = [RIGHT, BOTTOM]
  209. MOLECULE_NUMBER{
  210. b_B' = 400
  211. }
  212. SURFACE_CLASS = refl_b_B
  213. }
  214. r3{
  215. ELEMENT_LIST = [RIGHT]
  216. }
  217. r4{
  218. ELEMENT_LIST = [TOP, BOTTOM, LEFT, FRONT, BACK]
  219. }
  220. }
  221. TRANSLATE = [2.0, 0, 0]
  222. }
  223. /* bimolecular reaction when both reactants have restrictive
  224. region border properties and are located outside their restrictive regions
  225. */
  226. box_6 BOX
  227. {
  228. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  229. DEFINE_SURFACE_REGIONS
  230. {
  231. r1{
  232. ELEMENT_LIST = [RIGHT]
  233. MOLECULE_NUMBER{
  234. b_A' = 150
  235. }
  236. }
  237. r2{
  238. ELEMENT_LIST = [TOP, BOTTOM]
  239. SURFACE_CLASS = refl_b_A
  240. }
  241. r3{
  242. ELEMENT_LIST = [RIGHT, BOTTOM]
  243. MOLECULE_NUMBER{
  244. b_B' = 300
  245. }
  246. }
  247. r4{
  248. ELEMENT_LIST = [FRONT, BACK]
  249. SURFACE_CLASS = refl_b_B
  250. }
  251. r5{
  252. ELEMENT_LIST = [TOP, BOTTOM, LEFT, FRONT, BACK]
  253. }
  254. }
  255. TRANSLATE = [2.5, 0, 0]
  256. }
  257. /* bimolecular reaction when both reactants have restrictive
  258. region border properties and are located one inside and another
  259. outside their respective restrictive regions.
  260. */
  261. box_7 BOX
  262. {
  263. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  264. DEFINE_SURFACE_REGIONS
  265. {
  266. r1{
  267. ELEMENT_LIST = [RIGHT]
  268. MOLECULE_NUMBER{
  269. b_A' = 200
  270. }
  271. MOLECULE_NUMBER{
  272. b_B' = 200
  273. }
  274. SURFACE_CLASS = refl_b_A
  275. }
  276. r2{
  277. ELEMENT_LIST = [BACK]
  278. SURFACE_CLASS = refl_b_B
  279. }
  280. r3{
  281. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  282. }
  283. }
  284. TRANSLATE = [3.0, 0, 0]
  285. }
  286. /* bimolecular reaction when only one reactant have restrictive
  287. region border properties and is located inside it's restrictive regions.
  288. */
  289. box_8 BOX
  290. {
  291. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  292. DEFINE_SURFACE_REGIONS
  293. {
  294. r1{
  295. ELEMENT_LIST = [RIGHT]
  296. MOLECULE_NUMBER{
  297. b_A' = 150
  298. }
  299. SURFACE_CLASS = refl_b_A
  300. }
  301. r2{
  302. ELEMENT_LIST = [RIGHT, TOP]
  303. SURFACE_CLASS = refl_b_A
  304. }
  305. r3{
  306. ELEMENT_LIST = [RIGHT, BOTTOM]
  307. MOLECULE_NUMBER{
  308. b_B' = 300
  309. }
  310. }
  311. r4{
  312. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  313. }
  314. }
  315. TRANSLATE = [3.5, 0, 0]
  316. }
  317. /* bimolecular reaction when only one reactant have restrictive
  318. region border properties and is located outside it's restrictive regions.
  319. */
  320. box_9 BOX
  321. {
  322. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  323. DEFINE_SURFACE_REGIONS
  324. {
  325. r1{
  326. ELEMENT_LIST = [RIGHT]
  327. MOLECULE_NUMBER{
  328. b_A' = 150
  329. }
  330. }
  331. r2{
  332. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  333. SURFACE_CLASS = refl_b_A
  334. }
  335. r3{
  336. ELEMENT_LIST = [RIGHT, BOTTOM]
  337. MOLECULE_NUMBER{
  338. b_B' = 300
  339. }
  340. }
  341. }
  342. TRANSLATE = [4.0, 0, 0]
  343. }
  344. /* bimolecular reaction when both reactants have NO restrictive region border properties */
  345. box_10 BOX
  346. {
  347. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  348. DEFINE_SURFACE_REGIONS
  349. {
  350. r1{
  351. ELEMENT_LIST = [TOP]
  352. MOLECULE_NUMBER{
  353. b_A' = 200
  354. }
  355. MOLECULE_NUMBER{
  356. b_B' = 200
  357. }
  358. }
  359. r2{
  360. ELEMENT_LIST = [BOTTOM, LEFT, RIGHT, FRONT, BACK]
  361. }
  362. }
  363. TRANSLATE = [4.5, 0, 0]
  364. }
  365. /* trimolecular reaction when all reactants have restrictive
  366. region border property and are located inside the restrictive region
  367. (simple geometry) */
  368. box_11 BOX
  369. {
  370. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  371. DEFINE_SURFACE_REGIONS
  372. {
  373. r1{
  374. ELEMENT_LIST = [RIGHT]
  375. MOLECULE_NUMBER{
  376. t_A' = 100
  377. }
  378. MOLECULE_NUMBER{
  379. t_B' = 100
  380. }
  381. MOLECULE_NUMBER{
  382. t_C' = 100
  383. }
  384. SURFACE_CLASS = refl_t_ABC
  385. }
  386. r2{
  387. ELEMENT_LIST = [TOP,BOTTOM,LEFT,FRONT,BACK]
  388. }
  389. }
  390. TRANSLATE = [5.0, 0, 0]
  391. }
  392. /* trimolecular reaction when all reactants have restrictive
  393. region border properties and are located outside their restrictive regions
  394. */
  395. box_12 BOX
  396. {
  397. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  398. DEFINE_SURFACE_REGIONS
  399. {
  400. r1{
  401. ELEMENT_LIST = [RIGHT]
  402. MOLECULE_NUMBER{
  403. t_A' = 150
  404. }
  405. MOLECULE_NUMBER{
  406. t_B' = 150
  407. }
  408. MOLECULE_NUMBER{
  409. t_C' = 150
  410. }
  411. }
  412. r2{
  413. ELEMENT_LIST = [BOTTOM]
  414. SURFACE_CLASS = refl_t_A
  415. }
  416. r3{
  417. ELEMENT_LIST = [FRONT]
  418. SURFACE_CLASS = refl_t_B
  419. }
  420. r4{
  421. ELEMENT_LIST = [BACK]
  422. SURFACE_CLASS = refl_t_C
  423. }
  424. r5{
  425. ELEMENT_LIST = [TOP]
  426. }
  427. r6{
  428. ELEMENT_LIST = [BOTTOM, FRONT, BACK]
  429. }
  430. }
  431. TRANSLATE = [5.5, 0, 0]
  432. }
  433. /* trimolecular reaction when all reactants have restrictive
  434. region border properties and two reactants are located inside their
  435. restrictive regions and one is located outside its restrictive region.
  436. */
  437. box_13 BOX
  438. {
  439. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  440. DEFINE_SURFACE_REGIONS
  441. {
  442. r1{
  443. ELEMENT_LIST = [RIGHT]
  444. MOLECULE_NUMBER{
  445. t_A' = 125
  446. }
  447. MOLECULE_NUMBER{
  448. t_B' = 125
  449. }
  450. MOLECULE_NUMBER{
  451. t_C' = 125
  452. }
  453. SURFACE_CLASS = refl_t_AB
  454. }
  455. r2{
  456. ELEMENT_LIST = [BACK]
  457. SURFACE_CLASS = refl_t_C
  458. }
  459. r3{
  460. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  461. }
  462. }
  463. TRANSLATE = [6.0, 0, 0]
  464. }
  465. /* trimolecular reaction when all reactants have restrictive
  466. region border properties and one reactant is located inside its
  467. restrictive regions and two are located outside its restrictive regions.
  468. */
  469. box_14 BOX
  470. {
  471. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  472. DEFINE_SURFACE_REGIONS
  473. {
  474. r1{
  475. ELEMENT_LIST = [RIGHT]
  476. MOLECULE_NUMBER{
  477. t_A' = 125
  478. }
  479. MOLECULE_NUMBER{
  480. t_B' = 125
  481. }
  482. MOLECULE_NUMBER{
  483. t_C' = 125
  484. }
  485. SURFACE_CLASS = refl_t_C
  486. }
  487. r2{
  488. ELEMENT_LIST = [BACK]
  489. SURFACE_CLASS = refl_t_AB
  490. }
  491. r3{
  492. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  493. }
  494. }
  495. TRANSLATE = [6.5, 0, 0]
  496. }
  497. /* trimolecular reaction when only two reactants have restrictive
  498. region border properties and both reactants are located inside its
  499. restrictive regions.
  500. */
  501. box_15 BOX
  502. {
  503. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  504. DEFINE_SURFACE_REGIONS
  505. {
  506. r1{
  507. ELEMENT_LIST = [RIGHT]
  508. MOLECULE_NUMBER{
  509. t_A' = 125
  510. }
  511. MOLECULE_NUMBER{
  512. t_B' = 125
  513. }
  514. MOLECULE_NUMBER{
  515. t_C' = 125
  516. }
  517. SURFACE_CLASS = refl_t_AB
  518. }
  519. r2{
  520. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  521. }
  522. }
  523. TRANSLATE = [7.0, 0, 0]
  524. }
  525. /* trimolecular reaction when only two reactants have restrictive
  526. region border properties and both reactants are located outside its
  527. restrictive regions.
  528. */
  529. box_16 BOX
  530. {
  531. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  532. DEFINE_SURFACE_REGIONS
  533. {
  534. r1{
  535. ELEMENT_LIST = [RIGHT]
  536. MOLECULE_NUMBER{
  537. t_A' = 125
  538. }
  539. MOLECULE_NUMBER{
  540. t_B' = 125
  541. }
  542. MOLECULE_NUMBER{
  543. t_C' = 125
  544. }
  545. }
  546. r2{
  547. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  548. SURFACE_CLASS = refl_t_AB
  549. }
  550. }
  551. TRANSLATE = [7.5, 0, 0]
  552. }
  553. /* trimolecular reaction when only two reactants have restrictive
  554. region border properties and one is located inside and another
  555. outside its restrictive regions.
  556. */
  557. box_17 BOX
  558. {
  559. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  560. DEFINE_SURFACE_REGIONS
  561. {
  562. r1{
  563. ELEMENT_LIST = [RIGHT]
  564. MOLECULE_NUMBER{
  565. t_A' = 125
  566. }
  567. MOLECULE_NUMBER{
  568. t_B' = 125
  569. }
  570. MOLECULE_NUMBER{
  571. t_C' = 125
  572. }
  573. SURFACE_CLASS = refl_t_A
  574. }
  575. r2{
  576. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  577. SURFACE_CLASS = refl_t_B
  578. }
  579. }
  580. TRANSLATE = [8.0, 0, 0]
  581. }
  582. /* trimolecular reaction when only one reactant have restrictive
  583. region border properties and is located inside its restrictive regions.
  584. */
  585. box_18 BOX
  586. {
  587. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  588. DEFINE_SURFACE_REGIONS
  589. {
  590. r1{
  591. ELEMENT_LIST = [RIGHT]
  592. MOLECULE_NUMBER{
  593. t_A' = 125
  594. }
  595. MOLECULE_NUMBER{
  596. t_B' = 125
  597. }
  598. MOLECULE_NUMBER{
  599. t_C' = 125
  600. }
  601. SURFACE_CLASS = refl_t_A
  602. }
  603. r2{
  604. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  605. }
  606. }
  607. TRANSLATE = [8.5, 0, 0]
  608. }
  609. /* trimolecular reaction when only one reactant have restrictive
  610. region border properties and is located outside its restrictive regions.
  611. */
  612. box_19 BOX
  613. {
  614. CORNERS = [-0.1,-0.1,-0.1] , [0.1,0.1,0.1]
  615. DEFINE_SURFACE_REGIONS
  616. {
  617. r1{
  618. ELEMENT_LIST = [RIGHT]
  619. MOLECULE_NUMBER{
  620. t_A' = 125
  621. }
  622. MOLECULE_NUMBER{
  623. t_B' = 125
  624. }
  625. MOLECULE_NUMBER{
  626. t_C' = 125
  627. }
  628. }
  629. r2{
  630. ELEMENT_LIST = [TOP, BOTTOM, FRONT, BACK]
  631. SURFACE_CLASS = refl_t_A
  632. }
  633. }
  634. TRANSLATE = [9.0, 0, 0]
  635. }
  636. INSTANTIATE world OBJECT
  637. {
  638. box_1 OBJECT box_1 {}
  639. box_2 OBJECT box_2 {}
  640. box_3 OBJECT box_3 {}
  641. box_4 OBJECT box_4 {}
  642. box_5 OBJECT box_5 {}
  643. box_6 OBJECT box_6 {}
  644. box_7 OBJECT box_7 {}
  645. box_8 OBJECT box_8 {}
  646. box_9 OBJECT box_9 {}
  647. box_10 OBJECT box_10 {}
  648. box_11 OBJECT box_11 {}
  649. box_12 OBJECT box_12 {}
  650. box_13 OBJECT box_13 {}
  651. box_14 OBJECT box_14 {}
  652. box_15 OBJECT box_15 {}
  653. box_16 OBJECT box_16 {}
  654. box_17 OBJECT box_17 {}
  655. box_18 OBJECT box_18 {}
  656. box_19 OBJECT box_19 {}
  657. }
  658. REACTION_DATA_OUTPUT
  659. {
  660. ITERATION_LIST = [[ 90 TO 100 STEP 1]]
  661. HEADER = "# "
  662. {
  663. COUNT ["D;", world.box_1[r1]]: "r1_D",
  664. COUNT ["E;", world.box_1[r1]]: "r1_E",
  665. COUNT ["F;", world.box_1[r1]]: "r1_F",
  666. COUNT ["G;", world.box_1[r1]]: "r1_G"
  667. } => countdir & "box_1_r1.dat"
  668. {
  669. COUNT ["D;", world.box_1[r3]]: "r3_D",
  670. COUNT ["E;", world.box_1[r3]]: "r3_E",
  671. COUNT ["F;", world.box_1[r3]]: "r3_F",
  672. COUNT ["G;", world.box_1[r3]]: "r3_G"
  673. } => countdir & "box_1_r3.dat"
  674. {
  675. COUNT ["D;", world.box_2[r2]]: "r2_D",
  676. COUNT ["E;", world.box_2[r2]]: "r2_E",
  677. COUNT ["F;", world.box_2[r2]]: "r2_F",
  678. COUNT ["G;", world.box_2[r2]]: "r2_G"
  679. } => countdir & "box_2_r2.dat"
  680. {
  681. COUNT ["D;", world.box_2[r3]]: "r3_D",
  682. COUNT ["E;", world.box_2[r3]]: "r3_E",
  683. COUNT ["F;", world.box_2[r3]]: "r3_F",
  684. COUNT ["G;", world.box_2[r3]]: "r3_G"
  685. } => countdir & "box_2_r3.dat"
  686. {
  687. COUNT ["D;", world.box_3[r1]]: "r1_D",
  688. COUNT ["E;", world.box_3[r1]]: "r1_E",
  689. COUNT ["F;", world.box_3[r1]]: "r1_F",
  690. COUNT ["G;", world.box_3[r1]]: "r1_G"
  691. } => countdir & "box_3_r1.dat"
  692. {
  693. COUNT ["D;", world.box_3[r2]]: "r2_D",
  694. COUNT ["E;", world.box_3[r2]]: "r2_E",
  695. COUNT ["F;", world.box_3[r2]]: "r2_F",
  696. COUNT ["G;", world.box_3[r2]]: "r2_G"
  697. } => countdir & "box_3_r2.dat"
  698. {
  699. COUNT ["D;", world.box_4[r1]]: "r1_D",
  700. COUNT ["E;", world.box_4[r1]]: "r1_E",
  701. COUNT ["F;", world.box_4[r1]]: "r1_F",
  702. COUNT ["G;", world.box_4[r1]]: "r1_G"
  703. } => countdir & "box_4_r1.dat"
  704. {
  705. COUNT ["D;", world.box_4[r2]]: "r2_D",
  706. COUNT ["E;", world.box_4[r2]]: "r2_E",
  707. COUNT ["F;", world.box_4[r2]]: "r2_F",
  708. COUNT ["G;", world.box_4[r2]]: "r2_G"
  709. } => countdir & "box_4_r2.dat"
  710. {
  711. COUNT ["D;", world.box_5[r3]]: "r3_D",
  712. COUNT ["E;", world.box_5[r3]]: "r3_E",
  713. COUNT ["F;", world.box_5[r3]]: "r3_F",
  714. COUNT ["G;", world.box_5[r3]]: "r3_G"
  715. } => countdir & "box_5_r3.dat"
  716. {
  717. COUNT ["D;", world.box_5[r4]]: "r4_D",
  718. COUNT ["E;", world.box_5[r4]]: "r4_E",
  719. COUNT ["F;", world.box_5[r4]]: "r4_F",
  720. COUNT ["G;", world.box_5[r4]]: "r4_G"
  721. } => countdir & "box_5_r4.dat"
  722. {
  723. COUNT ["D;", world.box_6[r1]]: "r1_D",
  724. COUNT ["E;", world.box_6[r1]]: "r1_E",
  725. COUNT ["F;", world.box_6[r1]]: "r1_F",
  726. COUNT ["G;", world.box_6[r1]]: "r1_G"
  727. } => countdir & "box_6_r1.dat"
  728. {
  729. COUNT ["D;", world.box_6[r5]]: "r5_D",
  730. COUNT ["E;", world.box_6[r5]]: "r5_E",
  731. COUNT ["F;", world.box_6[r5]]: "r5_F",
  732. COUNT ["G;", world.box_6[r5]]: "r5_G"
  733. } => countdir & "box_6_r5.dat"
  734. {
  735. COUNT ["D;", world.box_7[r1]]: "r1_D",
  736. COUNT ["E;", world.box_7[r1]]: "r1_E",
  737. COUNT ["F;", world.box_7[r1]]: "r1_F",
  738. COUNT ["G;", world.box_7[r1]]: "r1_G"
  739. } => countdir & "box_7_r1.dat"
  740. {
  741. COUNT ["D;", world.box_7[r3]]: "r3_D",
  742. COUNT ["E;", world.box_7[r3]]: "r3_E",
  743. COUNT ["F;", world.box_7[r3]]: "r3_F",
  744. COUNT ["G;", world.box_7[r3]]: "r3_G"
  745. } => countdir & "box_7_r3.dat"
  746. {
  747. COUNT ["D;", world.box_8[r1]]: "r1_D",
  748. COUNT ["E;", world.box_8[r1]]: "r1_E",
  749. COUNT ["F;", world.box_8[r1]]: "r1_F",
  750. COUNT ["G;", world.box_8[r1]]: "r1_G"
  751. } => countdir & "box_8_r1.dat"
  752. {
  753. COUNT ["D;", world.box_8[r4]]: "r4_D",
  754. COUNT ["E;", world.box_8[r4]]: "r4_E",
  755. COUNT ["F;", world.box_8[r4]]: "r4_F",
  756. COUNT ["G;", world.box_8[r4]]: "r4_G"
  757. } => countdir & "box_8_r4.dat"
  758. {
  759. COUNT ["D;", world.box_9[r1]]: "r1_D",
  760. COUNT ["E;", world.box_9[r1]]: "r1_E",
  761. COUNT ["F;", world.box_9[r1]]: "r1_F",
  762. COUNT ["G;", world.box_9[r1]]: "r1_G"
  763. } => countdir & "box_9_r1.dat"
  764. {
  765. COUNT ["D;", world.box_9[r2]]: "r2_D",
  766. COUNT ["E;", world.box_9[r2]]: "r2_E",
  767. COUNT ["F;", world.box_9[r2]]: "r2_F",
  768. COUNT ["G;", world.box_9[r2]]: "r2_G"
  769. } => countdir & "box_9_r2.dat"
  770. {
  771. COUNT ["D;", world.box_10[r1]]: "r1_D",
  772. COUNT ["E;", world.box_10[r1]]: "r1_E",
  773. COUNT ["F;", world.box_10[r1]]: "r1_F",
  774. COUNT ["G;", world.box_10[r1]]: "r1_G"
  775. } => countdir & "box_10_r1.dat"
  776. {
  777. COUNT ["D;", world.box_10[r2]]: "r2_D",
  778. COUNT ["E;", world.box_10[r2]]: "r2_E",
  779. COUNT ["F;", world.box_10[r2]]: "r2_F",
  780. COUNT ["G;", world.box_10[r2]]: "r2_G"
  781. } => countdir & "box_10_r2.dat"
  782. {
  783. COUNT ["D;", world.box_11[r1]]: "r1_D",
  784. COUNT ["E;", world.box_11[r1]]: "r1_E",
  785. COUNT ["F;", world.box_11[r1]]: "r1_F",
  786. COUNT ["G;", world.box_11[r1]]: "r1_G",
  787. COUNT ["K;", world.box_11[r1]]: "r1_K",
  788. COUNT ["L;", world.box_11[r1]]: "r1_L"
  789. } => countdir & "box_11_r1.dat"
  790. {
  791. COUNT ["D;", world.box_11[r2]]: "r2_D",
  792. COUNT ["E;", world.box_11[r2]]: "r2_E",
  793. COUNT ["F;", world.box_11[r2]]: "r2_F",
  794. COUNT ["G;", world.box_11[r2]]: "r2_G",
  795. COUNT ["K;", world.box_11[r2]]: "r2_K",
  796. COUNT ["L;", world.box_11[r2]]: "r2_L"
  797. } => countdir & "box_11_r2.dat"
  798. {
  799. COUNT ["D;", world.box_12[r6]]: "r6_D",
  800. COUNT ["E;", world.box_12[r6]]: "r6_E",
  801. COUNT ["F;", world.box_12[r6]]: "r6_F",
  802. COUNT ["G;", world.box_12[r6]]: "r6_G",
  803. COUNT ["K;", world.box_12[r6]]: "r6_K",
  804. COUNT ["L;", world.box_12[r6]]: "r6_L"
  805. } => countdir & "box_12_r6.dat"
  806. {
  807. COUNT ["D;", world.box_12[r5]]: "r5_D",
  808. COUNT ["E;", world.box_12[r5]]: "r5_E",
  809. COUNT ["F;", world.box_12[r5]]: "r5_F",
  810. COUNT ["G;", world.box_12[r5]]: "r5_G",
  811. COUNT ["K;", world.box_12[r5]]: "r5_K",
  812. COUNT ["L;", world.box_12[r5]]: "r5_L"
  813. } => countdir & "box_12_r5.dat"
  814. {
  815. COUNT ["D;", world.box_13[r1]]: "r1_D",
  816. COUNT ["E;", world.box_13[r1]]: "r1_E",
  817. COUNT ["F;", world.box_13[r1]]: "r1_F",
  818. COUNT ["G;", world.box_13[r1]]: "r1_G",
  819. COUNT ["K;", world.box_13[r1]]: "r1_K",
  820. COUNT ["L;", world.box_13[r1]]: "r1_L"
  821. } => countdir & "box_13_r1.dat"
  822. {
  823. COUNT ["D;", world.box_13[r3]]: "r3_D",
  824. COUNT ["E;", world.box_13[r3]]: "r3_E",
  825. COUNT ["F;", world.box_13[r3]]: "r3_F",
  826. COUNT ["G;", world.box_13[r3]]: "r3_G",
  827. COUNT ["K;", world.box_13[r3]]: "r3_K",
  828. COUNT ["L;", world.box_13[r3]]: "r3_L"
  829. } => countdir & "box_13_r3.dat"
  830. {
  831. COUNT ["D;", world.box_14[r1]]: "r1_D",
  832. COUNT ["E;", world.box_14[r1]]: "r1_E",
  833. COUNT ["F;", world.box_14[r1]]: "r1_F",
  834. COUNT ["G;", world.box_14[r1]]: "r1_G",
  835. COUNT ["K;", world.box_14[r1]]: "r1_K",
  836. COUNT ["L;", world.box_14[r1]]: "r1_L"
  837. } => countdir & "box_14_r1.dat"
  838. {
  839. COUNT ["D;", world.box_14[r3]]: "r3_D",
  840. COUNT ["E;", world.box_14[r3]]: "r3_E",
  841. COUNT ["F;", world.box_14[r3]]: "r3_F",
  842. COUNT ["G;", world.box_14[r3]]: "r3_G",
  843. COUNT ["K;", world.box_14[r3]]: "r3_K",
  844. COUNT ["L;", world.box_14[r3]]: "r3_L"
  845. } => countdir & "box_14_r3.dat"
  846. {
  847. COUNT ["D;", world.box_15[r1]]: "r1_D",
  848. COUNT ["E;", world.box_15[r1]]: "r1_E",
  849. COUNT ["F;", world.box_15[r1]]: "r1_F",
  850. COUNT ["G;", world.box_15[r1]]: "r1_G",
  851. COUNT ["K;", world.box_15[r1]]: "r1_K",
  852. COUNT ["L;", world.box_15[r1]]: "r1_L"
  853. } => countdir & "box_15_r1.dat"
  854. {
  855. COUNT ["D;", world.box_15[r2]]: "r2_D",
  856. COUNT ["E;", world.box_15[r2]]: "r2_E",
  857. COUNT ["F;", world.box_15[r2]]: "r2_F",
  858. COUNT ["G;", world.box_15[r2]]: "r2_G",
  859. COUNT ["K;", world.box_15[r2]]: "r2_K",
  860. COUNT ["L;", world.box_15[r2]]: "r2_L"
  861. } => countdir & "box_15_r2.dat"
  862. {
  863. COUNT ["D;", world.box_16[r1]]: "r1_D",
  864. COUNT ["E;", world.box_16[r1]]: "r1_E",
  865. COUNT ["F;", world.box_16[r1]]: "r1_F",
  866. COUNT ["G;", world.box_16[r1]]: "r1_G",
  867. COUNT ["K;", world.box_16[r1]]: "r1_K",
  868. COUNT ["L;", world.box_16[r1]]: "r1_L"
  869. } => countdir & "box_16_r1.dat"
  870. {
  871. COUNT ["D;", world.box_16[r2]]: "r2_D",
  872. COUNT ["E;", world.box_16[r2]]: "r2_E",
  873. COUNT ["F;", world.box_16[r2]]: "r2_F",
  874. COUNT ["G;", world.box_16[r2]]: "r2_G",
  875. COUNT ["K;", world.box_16[r2]]: "r2_K",
  876. COUNT ["L;", world.box_16[r2]]: "r2_L"
  877. } => countdir & "box_16_r2.dat"
  878. {
  879. COUNT ["D;", world.box_17[r1]]: "r1_D",
  880. COUNT ["E;", world.box_17[r1]]: "r1_E",
  881. COUNT ["F;", world.box_17[r1]]: "r1_F",
  882. COUNT ["G;", world.box_17[r1]]: "r1_G",
  883. COUNT ["K;", world.box_17[r1]]: "r1_K",
  884. COUNT ["L;", world.box_17[r1]]: "r1_L"
  885. } => countdir & "box_17_r1.dat"
  886. {
  887. COUNT ["D;", world.box_17[r2]]: "r2_D",
  888. COUNT ["E;", world.box_17[r2]]: "r2_E",
  889. COUNT ["F;", world.box_17[r2]]: "r2_F",
  890. COUNT ["G;", world.box_17[r2]]: "r2_G",
  891. COUNT ["K;", world.box_17[r2]]: "r2_K",
  892. COUNT ["L;", world.box_17[r2]]: "r2_L"
  893. } => countdir & "box_17_r2.dat"
  894. {
  895. COUNT ["D;", world.box_18[r1]]: "r1_D",
  896. COUNT ["E;", world.box_18[r1]]: "r1_E",
  897. COUNT ["F;", world.box_18[r1]]: "r1_F",
  898. COUNT ["G;", world.box_18[r1]]: "r1_G",
  899. COUNT ["K;", world.box_18[r1]]: "r1_K",
  900. COUNT ["L;", world.box_18[r1]]: "r1_L"
  901. } => countdir & "box_18_r1.dat"
  902. {
  903. COUNT ["D;", world.box_18[r2]]: "r2_D",
  904. COUNT ["E;", world.box_18[r2]]: "r2_E",
  905. COUNT ["F;", world.box_18[r2]]: "r2_F",
  906. COUNT ["G;", world.box_18[r2]]: "r2_G",
  907. COUNT ["K;", world.box_18[r2]]: "r2_K",
  908. COUNT ["L;", world.box_18[r2]]: "r2_L"
  909. } => countdir & "box_18_r2.dat"
  910. {
  911. COUNT ["D;", world.box_19[r1]]: "r1_D",
  912. COUNT ["E;", world.box_19[r1]]: "r1_E",
  913. COUNT ["F;", world.box_19[r1]]: "r1_F",
  914. COUNT ["G;", world.box_19[r1]]: "r1_G",
  915. COUNT ["K;", world.box_19[r1]]: "r1_K",
  916. COUNT ["L;", world.box_19[r1]]: "r1_L"
  917. } => countdir & "box_19_r1.dat"
  918. {
  919. COUNT ["D;", world.box_19[r2]]: "r2_D",
  920. COUNT ["E;", world.box_19[r2]]: "r2_E",
  921. COUNT ["F;", world.box_19[r2]]: "r2_F",
  922. COUNT ["G;", world.box_19[r2]]: "r2_G",
  923. COUNT ["K;", world.box_19[r2]]: "r2_K",
  924. COUNT ["L;", world.box_19[r2]]: "r2_L"
  925. } => countdir & "box_19_r2.dat"
  926. }